我正在尝试创建一些脚本,这些脚本需要使用随机 ID 移动大量动态 HTML。它们需要获取元素的父元素 - 但我不确定如何在 WebdriverJS 中实现这一点。
如果我通过控制台访问我想要的元素,我可以执行以下操作来获取它;
document.querySelector('span[email="noreply@example.com"]').parentNode.parentNode
WDJS 有办法做到这一点吗?我看过了,看不到任何明显的东西——这特别是我遇到问题的 parent 的东西。我发现 xPath 可能是一个可能的解决方案,但我不确定以前从未使用过它的语法。
提前致谢!
最佳答案
我不知道WebDriverJS的语法。但 XPath 如下所示,您需要一种方法将其放入某处。
这基于您的 CSS 选择器,因此如果需要,请显示 HTML。
.//span[@email='noreply@example.com']/../..
例如,如果您有这样的 HTML
<div>
<div>
<span email="noreply@example.com">Contact me</span>
</div>
</div>
可以避免使用..
上去。
.//div[./div/span[@email='noreply@example.com']]
如果您要查找更多级别,另一种方便的方法是使用 XPath Axes 中的 ancestor
。
另外,正如 @sircapsalot 提出的,CSS 选择器规范不支持父级选择,因此 XPath 是唯一的方法,除非您注入(inject) JS。
关于node.js - 使用 WebdriverJS 选择父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21340230/