Кнопка Selenium найдена, но нажатие не выполнено - PullRequest
1 голос
/ 22 января 2020

Я хочу нажать на кнопку, обозначенную xpath, но она не работает.

Однако в действии щелчка нет ошибок. Кнопка найдена, но действие щелчка не выполняется.

Я пробовал следующие решения:

Решение 1

WebElement elem = driver.findElement(By.xpath("//button[@id='btn_M9pg_']"));
Actions actions = new Actions(driver);
actions.moveToElement(elem);
actions.click(elem);
Action a = actions.build();
a.perform();

Решение 2

driver.findElement(By.xpath("//button[@id='btn_M9pg_']")).click();

Можете ли вы помочь мне, пожалуйста? Большое спасибо!

обновление 1

Пожалуйста, найдите под журналами. кнопка элемента с идентификатором btn_D_Ir_ не найдена, поскольку предыдущий щелчок (//button[@id='btn_M9pg_']) не выполнен.

Exception in thread "main" org.openqa.selenium.TimeoutException: Expected condition failed: waiting for visibility of element located by By.id: btn_D_Ir_ (tried for 30 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 TripleA.TFT_508.main(TFT_508.java:219)
Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#btn_D_Ir_"}
  (Session info: chrome=78.0.3904.87)

1 Ответ

0 голосов
/ 22 января 2020

Вы можете попробовать использовать WebDriverWait , например:

new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@id='btn_M9pg_']"))).click();

И вы можете нажать js, например:

WebElement element = driver.findElement(By.id("btn_M9pg_")); 
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...