按属性查找元素

新手上路,请多包涵

我正在尝试查找具有属性的元素。好吧,我可以在 Selenium 中找到具有 Id、tagName、Xpath 和所有其他预定义方法的元素。但是,我正在尝试编写一个专门返回 WebElement 的方法,给定属性名称和值作为输入。

 List<WebElement> elements = webDriver.findElements(By.tagName("Attribute Name"));
for(WebElement element : elements){
    if(element.getText().equals("Value of Particular Attribute")){
        return element;
    }
    else{
        return null;
    }
}

假设 XPath 不是一个选项,还有其他更好的方法吗?

原文由 Kishore Banala 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 411
2 个回答

您可以使用 CSS 轻松完成此任务。

公式是:

 element[attribute='attribute-value']

所以如果你有,

 <a href="mysite.com"></a>

您可以使用以下方法找到它:

 By.cssSelector("a[href='mysite.com']");

这可以使用任何可能的属性。

此页面提供了有关如何制定有效的 css 选择器并匹配其属性的良好信息:http: //ddavison.io/css/2014/02/18/effective-css-selectors.html

原文由 ddavison 发布,翻译遵循 CC BY-SA 4.0 许可协议

我不明白你的要求:

假设 XPath 不是一个选项……

如果这只是您的 错误 假设,那么 XPath 是 完美 的选择!

 webDriver.findElements(By.xpath("//element[@attribute='value']"))

当然,您需要将 elementattributevalue 替换为您的真实姓名。您还可以使用通配符查找“任何元素”:

 webDriver.findElements(By.xpath("//*[@attribute='value']"))

原文由 SiKing 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题