2017-02-13 33 views
0

我使用下面的代码来找到某一个元素,并使用以下XPath提取出来。但在一些页面中,它们不可用。条件操作中硒

我该如何继续?

供参考下面的代码是失败的。

String founded=driver.findElement(By.xpath("//*[contains(text(),'Founded')]//following::dd[1]")).getText(); 
if(founded.isEmpty()) 
{ 
    founded="NA"; 
    System.out.println(founded); 
} 
+0

请添加任何错误和/或例外+堆栈跟踪您收到您的问题。如果你不告诉我们我们只能猜测确切的问题。我的猜测是你的问题是:findElement方法在找不到元素时会抛出NoSuchElementException异常(正如你可以从阅读它的文档中看到的那样)。如果你想处理这种情况,没有发现任何元素,你必须捕捉并处理该异常 –

回答

0

你应该尝试使用​​而不是返回的WebElement或空列表或者列表。因此,只需检查空列表如下: -

String founded = ""; 

List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'Founded')]//following::dd[1]")); 

if(list.isEmpty() || list.get(0).getText() == null || list.get(0).getText().isEmpty()) 
{ 
    founded = "NA"; 
}else { 
    founded = list.get(0).getText(); 
}  
System.out.println(founded);