当我点击链接时,它会打开一个页面,该页面将显示在下面的表格中。
page 1 : html/body/table[1]/tbody/tr/td[2]/div[3]/form/table[2]/tbody....
Page 2 : html/body/table[1]/tbody/tr/td[2]/div[3]/form/table/tbody.....
我想知道加载哪个表并做出决定。如果加载了第一个页面,那么它将进入循环,就好像第二个页面被加载一样,它不会进入else循环。
if(driver.findElement(By.xpath(xpath of page 1)).isDisplayed()){
System.out.println("is present");
}else {
System.out.println("not");
}
我该如何处理?
答案 0 :(得分:0)
您应该考虑您的测试尝试实现的目标。为什么你不知道哪个表会出现?您应该知道哪个表应该存在并且能够在您的测试中采取相应的行动(否则测试失败,对吧?)。
我打算建议在找到元素时使用try / catch块,然后检查它是否显示(这个方法会起作用),但是你的代码现在的方式,看起来好像找到元素就足够了知道表格已经显示,所以两步过程有点复杂。
你可以做一些简单的事......
try
{
driver.findElement(By.xpath(xpath of page 1));
System.out.println("Page 1 is present");
}
catch (NoSuchElementException nsee)
{
System.out.println("Page 2 is present");
}
但我真的建议您先看看为什么不知道哪个表格正在显示,然后从那里开始。
答案 1 :(得分:0)
isDisplayed
无法帮助您,您可以使用isElementPresent
进行isDisplay,您将收到错误“未找到元素”
参考 org.openqa.selenium.NoSuchElementException: Unable to locate element