在量角器中对复选框调用 "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();
        }
    }
}

引用here author

通过删除自定义样式表单复选框解决了这个问题,在我的例子中,真正的复选框被复选框覆盖,看起来像 div,因为这个元素对于量角器是不可见的,这只发生在检查的情况下-boxes 因为我也在使用 select2.js 作为 select boxes。