【问题标题】:Check a checkbox using protractor使用量角器检查复选框
【发布时间】:2016-01-25 21:10:46
【问题描述】:

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

我试过了:

$('.checkbox-class-name').click();

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

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

但它不起作用(它进入了“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>

【问题讨论】:

    标签: javascript angularjs protractor angularjs-e2e


    【解决方案1】:

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

    var checkbox = $('.checkbox-class-name');
    browser.actions().mouseMove(checkbox).click().perform();
    

    或者,滚动到元素的视图

    browser.executeScript("arguments[0].scrollIntoView();", checkbox.getWebElement());
    checkbox.click();
    

    或者,通过 JavaScript 点击(尽管理解 implications):

    browser.executeScript("arguments[0].click();", checkbox.getWebElement());
    

    【讨论】:

    • 谢谢。 1. 这是唯一的类(唯一的),并且选择器正在工作(测试了“isPresent”并得到了真)。 2. Trued 移动它 - 没用):
    • @YanivEfraim 好的,谢谢,更新了更多选项。
    • 这对我有用,谢谢你的解决方案。这就是我如何实现这个 PageOR.lblShowDisabledReq.​​isDisplayed().then(data => { if (data == true) { console.log ("Show disable is present"); browser.actions().mouseMove(PageOR.chckShowDisabledReq).click().perform(); this.scrollpage.scrollDown(); console.log("Show disable is clicked"); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    相关资源
    最近更新 更多