为什么checkbox.click()不适合我?

时间:2017-09-07 10:29:46

标签: checkbox click protractor

我需要点击默认选中的复选框。这是我的元素:

    <input type="checkbox" name="filterMethods" id="filterMethods" ng-model="globalFilters.methods" class="ng-valid ng-touched ng-dirty ng-valid-parse ng-not-empty" style="">

当我手动取消选中复选框时,ng-not-empty会更改为ng-empty。

这就是我试图取消选中此复选框的方式:

    element(by.css('input[name=filterMethods]')).click();

这没有显示任何错误,但元素未取消选中。有人可以建议我怎么能让它运作?我在该块中有六个这样的复选框。我需要检查并取消选中它们中的每一个以测试过滤器功能。请提出实现相同目标的最佳方法。

2 个答案:

答案 0 :(得分:0)

您缺少属性值周围的引号。试试这个: element(by.css('input[name="filterMethods"]')).click();

但我不确定为什么在这种情况下你不会使用Id,因为你拥有它。

element(by.css('#filterMethods')).click();

或者您甚至可以使用该模型: element(by.model('globalFilters.methods')).click();

答案 1 :(得分:0)

我认为您的测试执行速度比测试代码快。你有没有尝试过承诺?

element(by.css('input[name=filterMethods]')).then(function(arg){
   arg.click()
});

或者您可以尝试等一段时间:

browser.sleep(35000).then(function(){
 element(by.css('input[name=filterMethods]')).then(function(arg){
   arg.click()
 })
})