如何通过单击javascript外部的复选框更新AngularJS模型?

时间:2016-03-03 15:15:33

标签: javascript angularjs checkbox

  • 我需要测试AngularJS应用程序
  • 我无法修改它。
  • 我在Selenide / Java中编写测试,使用JavascriptExecutor进行JS执行
  • 我需要在我的测试
  • 中点击javascript(这是必要的)复选框

复选框:

<input class="ng-pristine ng-valid" type="checkbox" ng-model="row.selected">

问题:

如何在Angular的模型中触发更新row.selected变量的事件?

注意: 当人手在鼠标上单击时,AngularJS应用程序可以很好地工作。它没有任何问题。

我尝试了什么:

jsExecutor.executeScript(""
    + "angular.element(arguments[0]).trigger('click'); "
    + "return 'doesnt matter what';",proxy);
  • proxyWebElement
  • 此方法在单击其他测试用例中的链接时有效

结果: 在javascript运行后,该复选框已取消/已检查,但模型的row.selected变量尚未包含。

1 个答案:

答案 0 :(得分:0)

触发点击两次解决了自动测试问题。

这意味着复选框在初始状态下以可视方式结束,因为它被单击两次(选中并取消选中或取消选中并选中)。

模型更新,好像只复制了一次复选框。

AngularJS中可能存在与https://github.com/angular/angular.js/issues/3470

相关的问题