使用WebdriverJS选择父元素

时间:2014-01-24 18:52:49

标签: node.js xpath selenium-webdriver webdriver

我正在尝试创建一些脚本,这些脚本需要使用随机ID移动大量的动态HTML。他们需要获取元素的父元素 - 但我不确定如何在WebdriverJS中实现它。

如果我通过控制台访问我想要的元素,我可以执行以下操作来获取它;

document.querySelector('span[email="noreply@example.com"]').parentNode.parentNode

有没有办法在WDJS中执行此操作?我看起来并且看不到任何明显的东西 - 它特别是我遇到问题的父母的东西。我看到一个可能的解决方案可能是xPath但是我不确定之前从未使用过的语法。

提前致谢!

1 个答案:

答案 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是唯一的方法。