Невозможно найти элемент с xpath для текста Add -ons (исправить xpath) - PullRequest
0 голосов
/ 28 апреля 2018
driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);       
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);         
driver.get("http://www.spicejet.com");  
Actions action = new Actions(driver); 
action.moveToElement(driver.findElement(By.xpath("//a[contains(text(),'Add-Ons')]")))
      .build().perform();       
Thread.sleep(3000);     
driver.findElement(By.linkText("Hot Meals ")).click();      
driver.close();

Невозможно найти элемент с xpath //a[contains(text(),'Add-Ons')

Это что касается кадров?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Иногда точный элемент не может быть найден с помощью By.linkText()

Вы просто используете cssSelector, как показано ниже:

driver.findElement(By.cssSelector("#header-addons > ul > li:nth-child(5) > a")).click();
Thread.sleep(3000);

вместо строки driver.findElement(By.linkText("Hot Meals ")).click();

Вы также можете использовать xpath вместо этого, как показано ниже:

driver.findElement(By.xpath("//*[@id=\"header-addons\"]/ul/li[5]/a")).click();
Thread.sleep(3000);
0 голосов
/ 28 апреля 2018

Ваш xpath может найти правильный элемент, когда я проверю его вручную. Я подозреваю, что страница загружается не полностью, добавьте sleep после dirver.get() для отладки.

driver.get("http://www.spicejet.com"); 

Thread.sleep(10*1000) // sleep 10 seconds to wait page open completely.

Actions action = new Actions(driver); 
action.moveToElement(driver.findElement(By.xpath("//a[contains(text(),'Add-Ons')]")))
      .build().perform(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...