在量角器中对复选框调用 "click()" 失败
Calling "click()" on checkboxes fails in protractor
在我的一个测试用例中,我必须点击复选框
我试过了:-
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 & width)
browser.actions().mouseMove(cb).click().perform();// nothing happens
或者,您可以使用 element(locator).click()
单击复选框
function setCheckBoxTo(locator, value){
var checkbox = element(locator);
checkbox.isChecked().then(function(selected){
if(selected !== value){
checkbox.click();
}
}
}
通过删除自定义样式表单复选框解决了这个问题,在我的例子中,真正的复选框被复选框覆盖,看起来像 div,因为这个元素对于量角器是不可见的,这只发生在检查的情况下-boxes 因为我也在使用 select2.js 作为 select boxes。
在我的一个测试用例中,我必须点击复选框
我试过了:-
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 & width)
browser.actions().mouseMove(cb).click().perform();// nothing happens
或者,您可以使用 element(locator).click()
function setCheckBoxTo(locator, value){
var checkbox = element(locator);
checkbox.isChecked().then(function(selected){
if(selected !== value){
checkbox.click();
}
}
}
通过删除自定义样式表单复选框解决了这个问题,在我的例子中,真正的复选框被复选框覆盖,看起来像 div,因为这个元素对于量角器是不可见的,这只发生在检查的情况下-boxes 因为我也在使用 select2.js 作为 select boxes。