在Selenium中自动下拉菜单时,无法触发角度ng-change功能

时间:2019-06-20 16:09:31

标签: javascript html angularjs selenium dom-events

<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函数,但仍然遇到Null Pointer异常。自动代码如下。

Select dropdown = new Select(webelement);
                log.info(webelement);
                dropdown.selectByVisibleText(sValue);
                js.executeScript("arguments[0].validateForAction(true);",webelement);

1 个答案:

答案 0 :(得分:1)

首先,您需要确保完成所有pendingRequests

您可以为此使用此JS:

var injector = window.angular.element('body').injector();
var $http = injector.get('$http');
return ($http.pendingRequests.length === 0);

希望这对您有帮助!