如何使用selenium webdriver找到伪元素的父母?

时间:2017-05-22 15:09:45

标签: javascript css selenium

我想检索伪元素的父网络元素(如果它可以命名为父元素),但据我所知 selenium的搜索网络元素的方法不适合搜索伪元素
但是, JavaScript 可以自由地操纵伪元素,所以我想问一下,如果有一种方法可以返回 css选择器 / JavaScript 伪元素(更准确地说是“:: after”)的父网络元素的xpath
换句话说,我有这个:

<html>
<body>
<label id="parent">
<span> Some text </span>
::after
</label>
</body>
</html>

我想知道:“#parent”

提前谢谢。

2 个答案:

答案 0 :(得分:0)

如果您需要根据span的文本选择父级,那么您可以使用以下内容:

driver.findElement(By.xpath("//label[.//span[text()='Some Text']]"));

上面的代码将帮助您找到带有text =&#34; some Text&#34;。

的标签。

如果你不确定标签,并且你确定使用javascript获得结果。尝试使用以下语法在selenium中执行JavaScript代码:(Python)

driver.execute_script("document.querySelector('#item'), ':after'")

根据您的要求更新脚本以查找父级。

如果这对你没有帮助,请在下面的评论中告诉我。

答案 1 :(得分:0)

首先查找子元素并将上下文节点添加到子元素,如下所示:

WebElement child = driver.findElement(By.xpath("xpath of child"));
WebElement parent = child.findElement(By.xpath("./.."));