在Selenium 2中,我要确保驱动程序已加载的页面上的元素不存在。我在这里包括了我的幼稚实现。
WebElement deleteLink = null; try { deleteLink = driver.findElement(By.className("commentEdit")); } catch (NoSuchElementException e) { } assertTrue(deleteLink != null);
有没有一种更优雅的方法可以从根本上验证断言是否引发了NoSuchElementException?
如果您正在使用junit进行测试,而这只是您要进行的测试,则可以使测试使用来预期异常
@Test (expected=NoSuchElementException.class) public void someTest() { driver.findElement(By.className("commentEdit")); }
或者,您可以使用findElements返回元素列表的方法,如果找不到元素,则返回一个空列表(不抛出NoSuchElementException):
findElements
NoSuchElementException
... List<WebElement> deleteLinks = driver.findElements(By.className("commentEdit")); assertTrue(deleteLinks.isEmpty()); ...
要么
.... assertTrue(driver.findElements(By.className("commentEdit")).isEmpty()); ....