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

标签 python selenium selenium-webdriver

我正在尝试使 webdriver/browser 能够处理 XPATH 2.0 版。

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

我对此进行了一些研究,但仍然一无所知。

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

# 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)")

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

最佳答案

这是一个 xpath 2.0 jquery plugin

在将其与 jquery 一起注入(inject)之后:

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

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

driver.execute_script('return $(document).xpath("count(//a)")')

关于python selenium - 如何使 webdriver 使用 XPATH 2.0 版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55319552/

相关文章:

python - 可疑行动 Django

Python:Pandas 在 DataFrame 中生成向下填充变量

xml - 如果在XPath中两次使用双斜杠(//),那是什么意思?

python - Selenium 仅在 DOM 完全加载时才执行 javascript

c# - 如何使用 C# 使用 Selenium WebDriver 向下滚动?

node.js - 带有 webdriverjs 的 javascript 或带有 selenium-webdriver 的 java?

java - 单击事件在java中的selenium webdriver中不起作用?

python - 在 Django 中形成 POST 字典时,请求中的正文被忽略

python - 是否有C相当于Python的: if __name__ == '__main__' : to write main() at the top of the file?

javascript - 如何在 JAVA 中使用 Javascript 和 Selenium 更改表单操作