【发布时间】:2019-03-07 20:18:53
【问题描述】:
我正在尝试自动化与网站的一些交互。我正在使用 Chropath 来查找各种元素的绝对 xpath,然后在 selenium 中与它们进行交互。但是,selenium 使用“消息:过时的元素引用:元素未附加到页面文档”来响应一个按钮。如果我打开一个新的 chrome 浏览器并导航到该按钮,Chropath 会显示一个有效的 xpath。但是,如果我在浏览器中检查 selenium 打开的相同元素,则 chropath 会显示“它可能是来自不同 src 的 svg/pseudo/comment/iframe 的子元素。XPath 不支持它们。”对于相对 xpath 和“它可能是来自不同 src 的 iframe 的子代,目前不支持。”在普通的Chrome浏览器中,绝对xpath是
/html[1]/body[1]/form[1]/span[1]/table[1]/tbody[1]/tr[2]/td[1]/table[1]/tbody[1]/tr[1]/td[1]/table[1]/tbody[1]/tr[1]/td[1]/div[2]/div[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tbody[1]/tr[1]/td[3]/table[1]/tbody[1]/tr[1]/td[1]/input[1]
相对xpath是
//input[@value='View Report']
有人知道为什么会存在这种差异吗?我也使用 CSS 选择器尝试了相同的过程,并产生了相同的结果。
【问题讨论】:
-
XPath 不支持它们 XPath 在哪里? Don't do this。请阅读为什么screenshot of HTML or code or error is a bad idea。考虑使用基于格式化文本的相关 HTML、代码试验和错误堆栈跟踪来更新问题。
-
好的,我添加了可访问的xpath并删除了屏幕截图。我同意“Xpath 不支持它们”听起来很糟糕,但这就是它告诉我的。
标签: selenium xpath iframe selenium-chromedriver