我想根据它的属性找到元素。
我已经尝试过按所有div搜索,并按属性指定,甚至按*搜索。这些都不是解决方案。整个元素如下所示:
<div class="charc" data-lvl="66" data-world="walios" data-nick="mirek">
这是我的搜索表达式:
driver.find_element_by_xpath('//div[@data-world="walios"] and [@data-nick="mirek"]')
我想使用python和硒找到这个元素,并能够点击它。
其实我收到错误
语法错误:无法对"文档"执行"评估":字符串"//div[@data-world="walios"] 和 [@data-nick="mirek"]"不是有效的 XPath 表达式。
我做错了什么?
错误消息是正确的,因为您的谓词不正确。
尝试将谓词放在一个[...]
表达式中:
driver.find_element_by_xpath('//div[@data-world="walios" and @data-nick="mirek"]')
driver.find_elements_by_xpath("//div[@data-world="walios" and @data-nick="mirek)]")
或
driver.find_elements_by_xpath("//div[@data-world="walios"][@data-nick="mirek)]")
选择标记的多个条件不能位于嵌套 [] 中。您必须在一个 [] 或多个 [] 中指定。
XPath 轴方法:
这些 XPath 轴方法用于查找复杂或动态元素。下面我们将看到其中一些方法。
XPath 表达式根据 XML 文档中的 ID、名称、类名等属性选择节点或节点列表。