【发布时间】:2016-11-11 18:13:40
【问题描述】:
//extract the link texts of each link element
for (WebElement Page3 : linkElements3)
{
linkTitles3[k] = Page3.getText();
k++;
}
//test each link
for (String t : linkTitles3)
{
// Titles Click
driver.findElement(By.linkText(t)).click();
System.out.println("\n"+ driver.getTitle());
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
if(driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/div/ul[1]/li[3]/a")).isDisplayed())
{
driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/div/ul[1]/li[3]/a")).click();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
Thread.sleep(4000);
System.out.println(driver.findElement(By.xpath(".//*[@id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/dl/dd[3]/a")).getText());
System.out.println(driver.getCurrentUrl());
driver.navigate().back();
driver.navigate().back();
}
else
{
System.out.println("No Teaching Notes Present");
driver.navigate().back();
}
}
错误:线程 "main" org.openqa.selenium.NoSuchElementException 中的异常:无法定位元素:{"method":"xpath","selector":".//*[ @id='d9c1cb30-3459-4246-919d-41c5fe23de2f']/div/div/article/div/ul[1]/li[3]/a"}
【问题讨论】:
-
朋友们,如果条件工作正常,但如果条件无法定位,则会抛出 xpath 错误
-
id 似乎是动态的。永远不要使用这样的动态 ID 来识别元素。该错误表示使用的定位器(xpath)无法找到该元素。所以尝试其他定位器。分享与您要识别的元素相对应的 HTML 部分
-
嗨 Naveen,我尝试了所有可能的定位器,它显示相同的错误。但是现在它只是在 try catch 块中解决了 if/else 包装。
标签: java selenium if-statement selenium-webdriver