javascript - Selenium 无法通过 XPath 识别元素

标签 javascript python selenium google-chrome xpath

我很抱歉创建一个关于此的主题,但这件小事在过去的两个小时里一直困扰着我。 Chrome 通过 Xpath 以及 javascript 脚本返回正确的元素,但 Selenium 告诉我,在代码中,Chrome 运行得很好是一个错误:

javascript error: missing ) after argument list

这是我当前正在尝试的代码:

    driver.execute_script('let clickable = document.evaluate("//a[contains(@onclick,\"openFbLWin\")]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; clickable.click();')

我知道它有点困惑,但总的来说,最重要的是//a[contains(@onclick,\"openFbLWin\")] 至于 XPath 选择器。

最佳答案

我认为这是因为当你在 python 中运行它时,它会将 "//a[contains(@onclick,\"openFbLWin\")]" 转换为 "//a [contains(@onclick,"openFbLWin")]",不带斜杠。然后,当它在 javascript 中运行时,它无法解析该字符串,因为另一个双引号内有一个双引号。要解决此问题,请将您的 xPath 更改为 "//a[contains(@onclick,'openFbLWin')]"

不过,您应该使用selenium的内置搜索和点击工具。它更具可读性且速度更快(使用 find_element_by_xpathclick )

关于javascript - Selenium 无法通过 XPath 识别元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60583775/

相关文章:

python - python中的字典值添加值

java - 如何使用 Selenium JAVA 循环下拉值

java - 升级后,得到 "Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test"和 "test(s) <[]> cannot be found"

javascript - 使摘要详细信息元素自动折叠

javascript - 使用 JavaScript 在鼠标光标移动时获取焦点元素

javascript - 使用 linq.js 从多个对象创建 JSON 对象数组

python - 如何通过 Python 复制 Google 云端硬盘中的文件?

ruby watirrecorder 的 Python 替代品?

c# - Selenium C# 在 ChromeDriver 中发送保存命令

javascript - 嵌入式推文有时会在不同的浏览器上失去边界