使用量角器选中一个复选框

Yan*_*aim 1 javascript angularjs angularjs-e2e protractor

我有一个简单的复选框,我想使用量角器(AngularJS)进行检查。

我试过了:

$('.checkbox-class-name').click();
Run Code Online (Sandbox Code Playgroud)

但这无济于事。选择器正在工作(找到我的元素),但单击没有运气。我也尝试过:

it('should test something if checkbox is checked', function (done) {
   myPage.navigate();
   $('.checkbox-class-name').click().then(function() {
     //expect something here
     done();   
   })
});
Run Code Online (Sandbox Code Playgroud)

但这不起作用(它进入“ then”内部,但是如果我暂停浏览器,我会看到未选中该复选框)

我究竟做错了什么?

编辑我的HTML代码:

<div ng-if="vm._getTermsAndConditionsFlag()">
   <input class="checkbox-class-name" id="checkbox-name"
          ng-model="vm.termsAndConditionsChecked" type="checkbox">
   <label for="checkbox-name" >I agree to the terms & conditions</label>
</div>
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 5

首先,检查这是否是唯一与选择器匹配的元素,并且您实际上在查找所需的复选框。另外,尝试移至该元素,然后单击:

var checkbox = $('.checkbox-class-name');
browser.actions().mouseMove(checkbox).click().perform();
Run Code Online (Sandbox Code Playgroud)

或者,滚动到element的视图

browser.executeScript("arguments[0].scrollIntoView();", checkbox.getWebElement());
checkbox.click();
Run Code Online (Sandbox Code Playgroud)

或者,通过JavaScript单击(不过要理解其中的含义):

browser.executeScript("arguments[0].click();", checkbox.getWebElement());
Run Code Online (Sandbox Code Playgroud)