我正在尝试创建一些脚本,这些脚本需要使用随机ID移动大量的动态HTML。他们需要获取元素的父元素 - 但我不确定如何在WebdriverJS中实现它。
如果我通过控制台访问我想要的元素,我可以执行以下操作来获取它;
document.querySelector('span[email="noreply@example.com"]').parentNode.parentNode
有没有办法在WDJS中执行此操作?我看起来并且看不到任何明显的东西 - 它特别是我遇到问题的父母的东西。我看到一个可能的解决方案可能是xPath但是我不确定之前从未使用过的语法。
提前致谢!
答案 0 :(得分:4)
我不知道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选择器规范不支持父选择,所以除非你注入JS,否则XPath是唯一的方法。