一尘不染

如何验证Selenium 2中不存在元素

selenium

在Selenium 2中,我要确保驱动程序已加载的页面上的元素不存在。我在这里包括了我的幼稚实现。

    WebElement deleteLink = null;
    try {
        deleteLink = driver.findElement(By.className("commentEdit"));
    } catch (NoSuchElementException e) {

    }
    assertTrue(deleteLink != null);

有没有一种更优雅的方法可以从根本上验证断言是否引发了NoSuchElementException?


阅读 599

收藏
2020-06-26

共1个答案

一尘不染

如果您正在使用junit进行测试,而这只是您要进行的测试,则可以使测试使用来预期异常

@Test (expected=NoSuchElementException.class)
public void someTest() {
    driver.findElement(By.className("commentEdit"));
}

或者,您可以使用findElements返回元素列表的方法,如果找不到元素,则返回一个空列表(不抛出NoSuchElementException):

...
List<WebElement> deleteLinks = driver.findElements(By.className("commentEdit"));
assertTrue(deleteLinks.isEmpty());
...

要么

....
assertTrue(driver.findElements(By.className("commentEdit")).isEmpty());
....
2020-06-26