Невозможно нажать на кнопку (приложение Angular JS) - PullRequest
0 голосов
/ 06 мая 2020

Я не могу нажать кнопку (приложение, созданное на основе Angular Js). Моя среда автоматизации уже существует, построенная на Java / Selenium WebDriver. Я пробовал с Xpath, CSS, et c, все еще не работает.

<button type="button" id="Button2" class="btn btn-primary btn-xs" data-ng-click="StartWizard()" data-ng-keyup="$event.keyCode == 13 ? StartWizard() : null">Import New File</button>

Script:

WebElement clickNextButton = driver.findElement(By.xpath("//button[contains(text(),'Import New File')]"));
        clickNextButton.click();

Ошибка:

Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//button[contains(text(),'Import New File')]"}

Может пожалуйста, помогите мне решить эту проблему. Сообщите мне, можно ли решить эту проблему, используя ngWebDriver?

1 Ответ

0 голосов
/ 25 июня 2020

Вы можете выполнить функцию ng-click, определенную в элементе:

String waitForAngularJs = "angular.element(\"#Button2\").scope().StartWizard();";
try {
            ExpectedCondition<Boolean> waitForAngular = new ExpectedCondition<Boolean>() {
                public Boolean apply(WebDriver driver) {
                    return ((JavascriptExecutor) driver).executeAsyncScript(waitForAngularJs).equals(true);
                }
            };
            
            WebDriverWait wait = new WebDriverWait(myWebDriver, 60);
            wait.until(waitForAngular);
            
        }catch(Exception e) {
            e.printStackTrace();
        }

Наслаждайтесь кодом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...