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

如何检查元素是否包含特定的类属性

闻人望
2023-03-14
问题内容

如何检查seleniumWeb元素是否包含特定的CSS类。

我有这个html li元素

<li class="list-group-item ng-scope active" ng-repeat="report in lineageController.reports" ng-click="lineageController.activate(report)" ng-class="{active : lineageController.active == report}">

如您所见,在class属性内部有一个活动类。

我的问题是我有这个元素,我想根据class属性是否具有其他“ active”值进行检查,这是比使用xpath更优雅的解决方案。

我怎样才能做到这一点?


问题答案:

鉴于您已经找到了您的元素,并且您想检查class属性内的某个类:

public boolean hasClass(WebElement element) {
    String classes = element.getAttribute("class");
    for (String c : classes.split(" ")) {
        if (c.equals(theClassYouAreSearching)) {
            return true;
        }
    }

    return false;
}

正如@aurelius正确指出的那样,还有一种更简单的方法(效果不佳):

public boolean elementHasClass(WebElement element, String active) {
    return element.getAttribute("class").contains(active);
}

这种方法看起来更简单,但有一个很大的警告:

如@JuanMendes所指出的,如果要搜索的类名是其他类名的子字符串,则会遇到问题:

例如class =“ test-a test-b”,搜索class.contains(“ test”)将返回true,但应为false

编辑2

尝试结合两个代码段:

public boolean elementHasClass(WebElement element, String active) {
    return element.getAttribute("class").split(" ").contains(active);
}

那应该解决您的警告。



 类似资料:
  • 问题内容: 使用普通的JavaScript(不是jQuery),是否可以检查元素是否 包含 类? 目前,我正在这样做: 问题是,如果我将HTML更改为此… …不再存在完全匹配的内容,因此我得到的默认输出为none()。但我还是想输出为,因为还 包含 了类。 问题答案: 使用方法: 这适用于所有当前浏览器,并且也有polyfill支持旧版本的浏览器。 或者 ,如果您使用较旧的浏览器,并且不想使用po

  • 我有这个ArrayList- ,一个整数被添加到移动[1]。然后将该数组添加到ArrayList中,然后重复该过程,这样我就有了一个“移动”列表。 我的问题是,我不确定如何在ArrayList(“树”)中找到仅在元素中包含特定值的数组(“移动”)——因为元素每次都是唯一的。 然后,我想制作一个所有匹配项的数组/列表。例如,一个数组,它包含与3的值相匹配的所有移动值。因此,我会留下一个数组/2D数组

  • 问题内容: 我有一个不断变化的xml模式(使用trang自动生成)。这些更改不是很详尽。从此架构中仅添加或删除一些元素。通过这种模式,我正在生成Java类(使用cxf),通过它们我将解组xml文档。 随着模式的更改,我的自动生成的Java类也会更改。同样,与模式一样,java类中的更改不是很大。例如,如果将元素say 添加到架构;一些相关的功能说了,并添加到自动生成的java类中。 现在,如何确定

  • 我想知道,我“正在寻找在我的片段中添加更新按钮,当用户单击时会检查更新是否可用。 我“正在寻找如何从url访问json文件并检查json值是否包含新值的解决方案。如果键与已经指定的值匹配,则显示消息您的数据已更新,如果不匹配,则显示无可用更新。 例如,如果下面是json文件 如果它包含除1之外的其他内容,则显示带有可用更新的toast消息。

  • 有人能帮我解决以下问题吗? 我已经加载了2000多个元素的map,但其中只有一个元素(当前可见)具有属性d不同于零的元素“path”。为便于理解,请参阅以下屏幕截图: 试过这个:SVG 还有这个XPath: 找到了所有这些(2000年)。 我想要的是这样的东西(尽管我找不到正确的解决方案)——故意添加了Xpath的末尾。 总之,我需要d属性(内部路径)不包含值零: 请协助,并提前感谢您。

  • 问题内容: 这个问题的答案是 社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 考虑: 假设我有上面的代码,编写该语句的正确方法是什么? 问题答案: 您可以使用该函数来查找另一个字符串中另一个字符串的出现: 注意,of的使用是故意的(既不会也不返回期望的结果);返回大海捞针字符串中针线串起始处的偏移量,或者返回boolean值(如果找不到针)。由于0是有效的偏移量,而0是“假”,