当前位置: 首页 > 知识库问答 >
问题:

按属性查找元素

唐修诚
2023-03-14

我正在尝试查找具有属性的元素。我可以在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不是一个选项,还有其他更好的方法吗?

共有3个答案

商瀚
2023-03-14

改用CSS选择器:

List<WebElement> elements = webDriver.findElements(By.cssSelector("*[attributeName='value']"));

编辑:CSS选择器而不是XPath

司空玮
2023-03-14

我不明白你的要求:

假设XPath不是一个选项...

如果这只是你的一个不正确的假设,那么XPath是一个完美的选择!

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

当然,您需要用实际名称替换元素属性value。您还可以使用通配符查找“任何元素”:

webDriver.findElements(By.xpath("//*[@attribute='value']"))
盖夕
2023-03-14

使用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

 类似资料:
  • 问题内容: 我正在尝试查找具有Attribute的元素。好吧,我可以在Selenium中找到具有Id,tagName,Xpath和所有其他预定义方法的元素。但是,我正在尝试编写一种方法,该方法将给定属性名称和值作为输入专门返回WebElement。 假设XPath不是一个选择,还有其他更好的方法吗? 问题答案: 您可以使用CSS轻松完成此任务。 公式为: 所以如果有的话 您可以使用以下方法找到它:

  • 问题内容: 我有一些如下所示的元素: 如何向属性值为(零)的元素添加类? 我尝试了许多不同的解决方案,但没有任何效果。一个例子: 任何的想法? 问题答案: 使用属性等于选择器 它在树上起作用 获取当前匹配元素集中每个元素的后代,并通过选择器,jQuery对象或元素进行过滤。

  • 问题内容: 我是AngularJS的新手。我了解到可以使用以下查询在DOM中找到元素: 这对于按ID或CSS类名查找元素很有用。但是,我需要能够使用其他方法来查找元素。我有一个看起来像下面的元素: 我无法查询“ myContainer”,因为它已被重用了多少。因此,我想找到任何具有“ my- directive”属性的元素。如何搜索DOM并找到任何使用“我的指令”的元素? 问题答案: 您应该在指令

  • 我试图找到一个没有属性的元素的XPath。它只能通过其父级的属性来识别。然而,父级也不具有唯一属性。 例如: 这里有两个元素。如何获得第二个元素。上面的语法为我提供了第一个元素。。但是,如果我使用: 我得到一个错误消息"xpath表达式 '//*[@id="btn"][2]/ul/li[2]/a/span'无法计算或不会导致WebElement"

  • 这是代码: 这是我已经在python上尝试过的: 返回: 你知道吗?谢谢