Selenium中的XPath问题

时间:2019-03-31 22:23:14

标签: python selenium selenium-webdriver xpath

我想根据其属性查找元素。

我已经尝试过按所有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查找此元素,并能够单击它。

实际上我遇到了错误

  

SyntaxError:无法在'Document'上执行'evaluate':字符串'// div [@ data-world =“ walios”]和[@ data-nick =“ mirek”]'不是有效的XPath表达式

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

该错误消息是正确的,因为您的谓词不正确。
尝试将谓词放在一个[...]表达式中:

driver.find_element_by_xpath('//div[@data-world="walios" and @data-nick="mirek"]')

答案 1 :(得分:0)

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,Name,Classname等属性选择节点或节点列表。