当前位置: 首页 > 面试题库 >

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

秦锐
2023-03-14
问题内容

在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):

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

要么

....
assertTrue(driver.findElements(By.className("commentEdit")).isEmpty());
....


 类似资料:
  • 问题内容: 屏幕上有很多单选按钮。选择单选按钮时,其属性为选中。如果未选择单选按钮,则不存在选中的属性。我想创建一个方法,如果该元素不存在,它将通过。 我正在使用Selenium WebDriver和Java。我知道我可以使用来检索属性。我只是不确定如何验证属性不存在,以及如何在不存在属性时通过测试(如果存在则失败)。 选中单选按钮时 未选中单选按钮时 我要在不存在选中属性的情况下通过测试 问题答

  • 问题内容: 我有以下内容,其中是是,并且由表示: 我的应用程序中还实现了另一个。 我的问题是,从我的第二个中找出我是否包含特定内容的最佳方法是什么? 我尝试过但没有成功: 问题答案: 为什么不: 而且,如果您必须遍历整个,而不是只寻找一个特定值: 编辑 过去,我用一些Java 8惯用语对此进行了更新。 Java 8流API允许使用更具声明性(并且可以说是优雅的)的方式来处理这些类型的迭代。 例如,

  • 我想验证我的表单输入,但它抛出我这个错误在我的Laravel.log文件 生产错误:消息为“Method[validateString]不存在”的异常“BadMethodCallException”在C:\xamplep\htdocs\testing\vendor\laravel\framework\src\Illuminate\Validation\Validator.php中:2405 这是我

  • 需要使用硒化物验证元素不能点击或不能点击

  • 在给定的json文档中,如何验证是否存在json路径? 我使用的是jayway jsonpath,代码如下 上述代码可能会引发以下异常 通用域名格式。乱穿马路。jsonpath。PathNotFoundException:路径:$['a.b.c']没有结果 为了缓解这种情况,我打算在尝试使用JsonPath读取该路径之前验证该路径是否存在。阅读 作为参考,我看了以下两个文档,但没有真正得到我想要的