Как нажать на изображение / кнопку, используя java Селеновый хромедривер - PullRequest
0 голосов
/ 03 февраля 2020

Я хотел бы нажать одну кнопку, так как сейчас я использую XPATH, но иногда страница меняется, и я должен обновить XPATH.

Я проверяю другой способ (найдите и щелкните изображение, например play.png, щелкните по тексту и т. Д. c.), Чтобы получить тот же результат.

После часть кода HTML:

<button class="btn btn-green false">PLAY</button>

РЕДАКТИРОВАТЬ:

Я пробовал с кодом

driver.findElement(By.xpath("//*[contains(text(),’PLAY’]")).click();

, но он идет в исключении

Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for element to be clickable: By.xpath: //*[contains(text(),’PLAY’] (tried for 10 second(s) with 500 milliseconds interval)
at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:95)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:272)
at seleniumTest.TestSelenium.play(TestSelenium.java:300)
at seleniumTest.TestSelenium.open_url(TestSelenium.java:277)
at seleniumTest.TestSelenium.seleniumTest(TestSelenium.java:108)
at seleniumTest.TestSelenium.main(TestSelenium.java:85)

Caused by: org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression //*[contains(text(),’PLAY’] because of the following error:

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//*[contains(text(),’PLAY’]' is not a valid XPath expression.

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

Вы также можете использовать функцию contains или начиная с (), если значения атрибутов являются динамическими c, т. Е. Изменяются следующим образом:

//*[contains(text(),’PLAY’)]
0 голосов
/ 03 февраля 2020

Вы должны найти что-то, что не меняется.

Например, вы можете сделать это в XPath, используя подстановочный знак:

//button[text()='PLAY']

Также вы можете использовать другие способы идентификации элементов в Selenium.

Например, By.id(...), если ваши элементы имеют уникальный идентификатор.

См. Selenium do c для класса By

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