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')
它的框架是什么?
答案 0 :(得分:0)
当我通过手动验证时,你的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();
答案 1 :(得分:0)
有时使用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);