检查表是否存在

时间:2013-12-10 19:40:54

标签: java selenium selenium-webdriver

当我点击链接时,它会打开一个页面,该页面将显示在下面的表格中。

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");
}

我该如何处理?

2 个答案:

答案 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