<select class="form-control ng-pristine" ng-model="conf.pinnedOriginalTransaction.net" name="categoryId" style="width:90%;" ng-options="key as value for (key, value) in categoryIdList" ng-change="validateForAction()" required="">..
我遇到过一种情况,在我的表单中,当仅从下拉列表中选择某个值时,我需要单击的按钮就会被启用。 手动完成时效果很好,但是当自动选择 Web 元素时,尽管选择了所需值,但启用按钮的 Angular JS 函数不会被触发。
根据我对此的研究,我设法编写代码来手动触发函数 JS ScriptExecutor,但仍然遇到空指针异常。下面给出了自动代码。
Select dropdown = new Select(webelement);
log.info(webelement);
dropdown.selectByVisibleText(sValue);
js.executeScript("arguments[0].validateForAction(true);",webelement);
最佳答案
首先,您需要确保所有 pendingRequests
均已完成。
你可以使用这个 JS 来实现:
var injector = window.angular.element('body').injector();
var $http = injector.get('$http');
return ($http.pendingRequests.length === 0);
希望这对您有帮助!
关于javascript - 当 Selenium 中自动下拉菜单时,无法触发 Angular ng-change 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56690012/