#javascript #protractor #end-to-end
#javascript #транспортир #сквозной
Вопрос:
в одном из моих тестовых случаев я должен выполнить щелчок по флажку
я пытался : —
var cb = element(by.css('#port' text));
cb.click() // failed
и
browser.actions().mouseMove(cb).click().perform();
кто-нибудь сталкивался с подобной проблемой, есть ли какой-либо другой обходной путь для этого
обновлено — опробовано с жестко закодированными значениями:
Шаблон
<input type="checkbox" style="min-width:50px;" id="port32201295-a833-45ea-8268-7c4bc0aa9887" ng-checked="port.checked" ng-disabled="port.disabled" ng-click="getSelectedPorts($event,port);
submenu.network.minimizeMaximizePops($event)">
JS
var cb = element(by.css('#port32201295-a833-45ea-8268-7c4bc0aa9887'));
cb.click() // failed(element is not visible | but element is visible have height amp; width)
browser.actions().mouseMove(cb).click().perform();// nothing happens
Комментарии:
1. Можете ли вы вставить весь код, возможно, текст не определен?
2. я также пробовал с жестко закодированным значением, и синтаксической ошибки нет, я сталкиваюсь с проблемой только с флажками
3. Вызов .click () для флажка должен работать нормально, я считаю, что проблема здесь в том, что ваш селектор не выбирает элемент. Вы пробовали зайти в инструменты разработчика браузера и выполнить там инструкцию?
4. @TomNijs я обновил вопрос, а также запустил $ (‘#port32201295-a833-45ea-8268-7c4bc0aa9887’) в firebug, который фиксирует правый флажок
5. Может быть, происходит анимация (даже очень короткая) прямо перед тем, как вы пытаетесь щелкнуть флажок?
Ответ №1:
В качестве альтернативы вы можете использовать для щелчка флажка с помощью element(locator).click()
function setCheckBoxTo(locator, value){
var checkbox = element(locator);
checkbox.isChecked().then(function(selected){
if(selected !== value){
checkbox.click();
}
}
}
Ответ №2:
Исправлена эта проблема путем удаления флажка формы пользовательских стилей, в моем случае реальный флажок переопределяется флажком, похожим на div, поскольку этот элемент не виден для транспортира, это происходит только в случае флажков, потому что я также использую select2.js для полей выбора.