0
- 我有我需要測試的AngularJS應用程序
- 我無法修改它。
- 我寫我的硒/ Java測試,使用JavascriptExecutor爲JS執行
- 我需要從javascript點擊複選框(這是必要的),在我的測試
複選框:如何通過點擊外部javascript複選框來更新AngularJS模型?
<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
- 在其他測試用例 的鏈接時,這個方法工作
結果: 的複選框已被取消/檢查a在JavaScript運行但模型的row.selected
變量沒有。
AngularJS的問題,您需要更新模型,而不是直接使用點擊的方法。例如,請參閱http://stackoverflow.com/questions/15424910/angularjs-access-scope-from-outside-js-function。在你的案例中設置模型爲true。 – Navaneet
是不是有一個通用的方法?不同的ng模型將意味着爲應用中的每個頁面編寫特定的腳本,例如 – nnitramm