Мне нужно запустить Selenium на машине Linux и использовать HtmlUnitDriver для этого.NoSuchElementException при использовании Xpath с HtmlUnitDriver
Selenium script содержит большую часть Xpath, чтобы найти элементы. Во время работы NoSuchElementException отображается в тех местах, где используется xpath.
org.openqa.selenium.NoSuchElementException: Unable to locate a node using //*[contains(text(),'Sample Text')]
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Тот же код отлично работает с другими драйверами, такими как Chrome, Firefox или IE.
Мой код выглядит, как показано ниже,
HtmlUnitDriverdriver = new HtmlUnitDriver();
driver.setJavascriptEnabled(true);
driver.get("http://example.com");
driver.findElement(By.id("username")).sendKeys("xxx");
driver.findElement(By.id("password")).sendKeys("yyy");
driver.findElement(By.id("loginButton")).click();
Thread.sleep(2000);
driver.findElement(By.xpath("//*[contains(text(),'Sample Text')]")).click();
Я нашел много подобного вопроса, и решения должны обеспечить время сна или ждать элемента, пока она загружается. Я предоставил все и все еще сталкиваюсь с этой проблемой, когда используется xpath.
Также поиск элемента по ID или имени невозможен в моем случае использования, поскольку он меняется каждый раз.
Я могу использовать только xpath, чтобы найти текст внутри тега span.
Мне нужно решение для этого. Заранее спасибо!
Edit:
Я попробовал то же самое для GMAIL входа, все еще я получаю один и тот же вопрос,
driver.get("http://www.gmail.com");
driver.findElement(By.id("Email")).sendKeys("[email protected]");
driver.findElement(By.id("next")).click();
Thread.sleep(2000);
driver.findElement(By.id("Passwd")).sendKeys("yyy");
driver.findElement(By.id("signIn")).click();
Thread.sleep(8000);
driver.findElement(By.xpath("//*[contains(text(),'COMPOSE')]")).click();
Есть ли какие-либо 'iframe'?? – Saifur
Нет. Iframe не доступен – Jugi
можете ли вы разместить URL-адрес? –