Невозможно активировать функцию углового изменения ng, когда в Selenium автоматизировано раскрытие - PullRequest
0 голосов
/ 20 июня 2019
<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="">..

Я столкнулся с ситуацией, когда в моей форме, когда в раскрывающемся списке выбрано определенное значение, активируется кнопка, которую нужно нажать.Это хорошо работает, когда выполняется вручную, но когда веб-элемент «Выбор» автоматизирован, хотя выбрано нужное значение, функция углового js, которая включает кнопку, не срабатывает.

Согласно моему исследованию, мне удалось написать код для ручного запуска функции JS ScriptExecutor, но все еще получая исключение Null Pointer.Автоматический код приведен ниже.

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

1 Ответ

1 голос
/ 20 июня 2019

Во-первых, вы должны убедиться, что все pendingRequests выполнены.

Вы можете использовать этот JS для этого:

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

Надеюсь, это вам поможет!

...