我正在用webdriver做一个测试机器人。我有一个场景,它点击一个按钮,一个新窗口打开,它按特定的xpath搜索一个元素,但有时没有这样的元素,因为它可以被禁用,我得到这个错误:org.openqa.selenium .NoSuchElementException。我如何绕过它/继续机器人如果它没有找到具有该xpath的元素并且只是继续代码那么它只关闭新窗口?
答案 0 :(得分:2)
在Java中:
List<WebElement> foundElement = driver.findElements(By.xpath("<x-path of your element>"));
if (foundElement.size() > 0)
{
// do whatever you want to do in **presence** of element
} else {
// do whatever you want to do in **absence** of element
}
答案 1 :(得分:2)
您需要使用try / catch语句包围click事件,并在catch语句中检查异常是否是您试图绕过的异常:
try {
driver.findElement(by).click();
} catch(Exception e) {
if ( !(e instanceof NoSuchElementException) ) {
throw e;
}
}