验证链接是否存在

时间:2013-12-27 18:50:17

标签: java selenium

我正在尝试验证链接是否存在 - 但是 - 如果它不存在,我希望我的脚本继续执行(关闭浏览器等)。

我的脚本的目的是确定是否存在“删除地址”链接。如果是,我点击链接并删除地址。这很好用。但是,如果链接不存在,我只想继续执行而不触发异常。如果链接不存在,我的下面的代码会触发异常。

感谢您的帮助......

        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) {

        }

2 个答案:

答案 0 :(得分:0)

我可以在这里看到几个选项

  1. 根本不要在测试中使用断言。在这种情况下,测试被标记为成功(如果您遇到例外)

  2. 如果您希望执行findElement()调用后的行,您可以

    • findElement()子句
    • 中移出try {}所需的所有行
    • 使用try {} catch {} finally {}构造并将finally {}子句放在要执行的所有代码中,无论try {}
    • 中发生了什么
  3. 如果您想避免捕获异常,可以通过实现接口ITestListener创建一个监听器类,并在onTestFailure()中使用getThrowable()

    获取异常

    String stackTraceString = Throwables.getStackTraceAsString(getCurrentTestResult()。getThrowable());

  4. 然后,如果异常为NoSuchElementException,则将测试结果设置为成功

    result.setStatus(ITestResult.SUCCESS); 
    setCurrentTestResult(result);
    

答案 1 :(得分:0)

另一种解决方案是使用.findElements。如果找不到给定选择器的元素,它将返回一个空集合,而不是抛出异常。