如何通过单击来自javascript外部的复选框来更新AngularJS模型
How to get AngularJS model updated by clicking checkbox from outside javascript?
- 我有 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);
-
proxy
WebElement
- 此方法在单击其他测试用例中的链接时有效
结果:该复选框在 javascript 运行后已被取消/选中,但模型的 row.selected
变量尚未取消/选中。
触发两次点击可以解决自动测试的问题。
这意味着复选框在视觉上最终处于初始状态,因为它被单击了两次(选中和取消选中或取消选中并选中)。
模型将更新,就好像复选框只被单击过一次一样。
AngularJS中可能存在与 https://github.com/angular/angular.js/issues/3470 有关的问题
相关文章:
- 材质设计精简版:如何更新复选框值
- 根据复选框值更新第一个标题列
- 如何在Knockout.js中选中复选框时更新视图模型及其依赖项
- 引导复选框-x 选中时未正确更新 DOM - 如何验证表单
- 单击“角度”复选框时更新不相关的字段
- 基于复选框 Jquery 更新文本框
- 根据复选框选择 jQuery 更新文本框
- 更新 url 而不重新加载,具体取决于使用 jquery/javascript 选择的复选框
- 选中复选框后变量未更新
- 复选框仅在第二次单击后更新模型
- 无法更新复选框的动态列表
- Javascript错误,根据其他复选框的结果更新复选框/按钮
- 如何使用 rails3-jquery-autocomplete 更新复选框/单选按钮
- 使用 Javascript 更新复选框选择时的输入字段
- 选中了“标签更新”复选框
- 在 iOS 的 JavaScript 功能中选中的更新复选框
- MVC 3:如何在选择下拉列表项时更新复选框列表
- 我想让jquery更新复选框使用ajax
- 如何在不取消复选框的情况下通过Ajax更新复选框列表
- 启用rails提交按钮更新复选框状态的有效方法