WebElement можно найти с помощью cssSelector, xpath в браузере, хотя он не равен NULL, но это NotPresent, NotClickable, NotEnabled - PullRequest
0 голосов
/ 20 февраля 2019

Это может быть проблема Selenium или Angular.Я не знаю .. У меня есть элемент кнопки со следующим HTML-кодом.Хотя это угловой сайт.

<div class="col-xs-12 col-sm-3 col-sm-push-6 col-lg-3" css="1">
<button class="btn btn-secondary pull-right" style="background-color: #00A6CA; border-color:#00A6CA;" type="button">
<span aria-hidden="true" class="fa tufa-plus-circle-o" style=""></span>
NEW EXTRACT 
</button>
</div>

Я использовал xpath в качестве кнопки // [содержит (text (), 'NEW EXTRACT')] иcss Selector as 'button.btn.btn-primary.pull-right' .Оба определили кнопку, очень хорошо, один на один (не несколько) в консоли браузера.Когда я использовал любой из них в коде объекта страницы, как ...

System.out.println("@@@@@@@@@@@ is NOT null> "+(newExtractBtn != null));
System.out.println("@@@@@@@@@@@ to string> "+newExtractBtn.toString());
System.out.println("@@@@@@@@@@@ is present> "+newExtractBtn.isPresent());
Thread.sleep(10000);
System.out.println("@@@@@@@@@@@ Thread sleep for 10sec");
newExtractBtn.waitUntilEnabled();
System.out.println("@@@@@@@@@@@ waited until enabled");
newExtractBtn.waitUntilPresent();

С выводом ...

I am getting out put as 
@@@@@@@@@@@ is NOT null> true
@@@@@@@@@@@ to string> ExtractExecutionHistoryPage.newExtractBtn
@@@@@@@@@@@ is present> false
@@@@@@@@@@@ Thread sleep for 10sec

Как только он попадет в объект webelement **newExtractBtn** выдает следующие сообщения ..

> net.thucydides.core.webdriver.exceptions.ElementShouldBeEnabledException: Expected enabled element was not enabled
> Caused by: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for ExtractExecutionHistoryPage.newExtractBtn to be enabled (tried for 5 second(s) with 100 milliseconds interval)

Почему webelement newExtractBtn находится в браузере с помощью xpath, css и отображается навеб-страница, а также кликабельная отсутствует или не активируется во время выполнения?

1 Ответ

0 голосов
/ 20 февраля 2019

Две вещи ...

1) Вы делаете предположение.Поскольку проверка не выполняется из-за того, что кнопка не «включена», она никогда не проверяет, присутствует ли она.Поскольку css и xpath нашли его, он присутствует, но ваш код никогда не заходил так далеко.

2) То, что кнопка существует, не означает, что она включена.JavaScript может отключить кнопку, пока не будут выполнены определенные критерии.Нередко начинать страницу с отключенной кнопкой «Отправить» до тех пор, пока все значения не будут введены и проверены.

...