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

如何使用Selenium WebDriver验证元素中是否存在属性?

路伟
2023-03-14
问题内容

屏幕上有很多单选按钮。选择单选按钮时,其属性为选中。如果未选择单选按钮,则不存在选中的属性。我想创建一个方法,如果该元素不存在,它将通过。

我正在使用Selenium
WebDriver和Java。我知道我可以使用来检索属性getSingleElement(XXX).getAttribute(XXX)。我只是不确定如何验证属性不存在,以及如何在不存在属性时通过测试(如果存在则失败)。

选中单选按钮时

<input id="ctl00_cphMainContent_ctl00_iq1_response_0" type="radio" name="ctl00$cphMainContent$ctl00$iq1$response" value="1" checked="checked">

未选中单选按钮时

<input id="ctl00_cphMainContent_ctl00_iq1_response_0" type="radio" name="ctl00$cphMainContent$ctl00$iq1$response" value="1">

我要在不存在选中属性的情况下通过测试


问题答案:

您可以创建一种方法来正确处理它。请注意,以下是C#/ Java混合样式,您需要稍作调整以进行编译

private boolean isAttribtuePresent(WebElement element, String attribute) {
    Boolean result = false;
    try {
        String value = element.getAttribute(attribute);
        if (value != null){
            result = true;
        }
    } catch (Exception e) {}

    return result;
}

如何使用它:

WebElement input = driver.findElement(By.cssSelector("input[name*='response']"));
Boolean checked = isAttribtuePresent(input, "checked");
// do your assertion here


 类似资料:
  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 问题内容: 在Selenium 2中,我要确保驱动程序已加载的页面上的元素不存在。我在这里包括了我的幼稚实现。 有没有一种更优雅的方法可以从根本上验证断言是否引发了NoSuchElementException? 问题答案: 如果您正在使用junit进行测试,而这只是您要进行的测试,则可以使测试使用来预期异常 或者,您可以使用返回元素列表的方法,如果找不到元素,则返回一个空列表(不抛出): 要么

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

  • 问题内容: 我试图让Selenium等待页面加载后动态添加到DOM的元素。试过这个: 如果有帮助,这里是: 但是它抛出一个-看起来像期望元素存在,所以这是有缺陷的。这一定是Selenium的面包和黄油,不想重新发明轮子……有人能建议一种替代方法吗,理想情况下不用自己动手做? 问题答案: 需要等待时,您需要异常调用以忽略。 有关更多信息,请参见FluentWait的文档。但是请注意,此条件已在Exp

  • 问题内容: 我想检查工作簿中是否包含工作表名称“ Login”。如果存在,那么我要在其中写入数据row = row + 1,否则直接写入数据,然后关闭报告。所以,任何人都可以让我知道该怎么做。我想用下面的方法做。 主类: WritablData类别: 问题答案: 我在这里没有得到我问题的答案,但是是的,现在我有了解决方案,它对我来说也很好用,请检查以下代码,希望它也对您有所帮助: