python selenium - 如何使 webdriver 使用 XPATH 版本 2.0

rah*_*tns 5 python selenium selenium-webdriver

我正在尝试使 webdriver/浏览器能够处理 XPATH 版本 2.0。

使用旧版本的 XPATH 没问题,但在某些特定情况下我还需要处理 XPATH 2.0 版本。

我尝试了一些关于此的研究,但仍然没有线索。

例如,假设我想获取包含或属性<a>的所有元素:titlehref

# find elements by xpath in older version
driver.find_elements_by_xpath("//a[@title or @href]")

# I want the code to be able to process XPATH version 2.0
driver.find_elements_by_xpath("//a/(@title|@href)")

Run Code Online (Sandbox Code Playgroud)

我希望我可以找到一些配置(或者我应该使用什么浏览器)来实现处理 XPATH 版本 2.0 的可用性。

pgu*_*rio 2

这是一个xpath 2.0 jquery 插件

将其与 jquery 一起注入后:

for script in ['jquery.js', 'jquery.xpath.js']:
  with open(script, errors='ignore') as f:
    driver.execute_script(f.read())
Run Code Online (Sandbox Code Playgroud)

你应该能够执行 xpath 2.0 表达式:

driver.execute_script('return $(document).xpath("count(//a)")')
Run Code Online (Sandbox Code Playgroud)