我正在尝试验证链接是否存在 - 但是 - 如果它不存在,我希望我的脚本继续执行(关闭浏览器等)。
我的脚本的目的是确定是否存在“删除地址”链接。如果是,我点击链接并删除地址。这很好用。但是,如果链接不存在,我只想继续执行而不触发异常。如果链接不存在,我的下面的代码会触发异常。
感谢您的帮助......
try {
String txt = driver.findElement(By.linkText("Delete Address")).getText().trim();
Assert.assertTrue(txt.equals("Delete Address"));
Alert javascriptprompt = driver.switchTo().alert();
javascriptprompt.accept();
} catch (NoSuchElementException e) {
}
答案 0 :(得分:0)
我可以在这里看到几个选项
根本不要在测试中使用断言。在这种情况下,测试被标记为成功(如果您遇到例外)
如果您希望执行findElement()
调用后的行,您可以
findElement()
子句try {}
所需的所有行
try {} catch {} finally {}
构造并将finally {}
子句放在要执行的所有代码中,无论try {}
如果您想避免捕获异常,可以通过实现接口ITestListener创建一个监听器类,并在onTestFailure()中使用getThrowable()
获取异常String stackTraceString = Throwables.getStackTraceAsString(getCurrentTestResult()。getThrowable());
然后,如果异常为NoSuchElementException
,则将测试结果设置为成功
result.setStatus(ITestResult.SUCCESS);
setCurrentTestResult(result);
答案 1 :(得分:0)
另一种解决方案是使用.findElements
。如果找不到给定选择器的元素,它将返回一个空集合,而不是抛出异常。