我想检索伪元素的父网络元素(如果它可以命名为父元素),但据我所知 selenium的搜索网络元素的方法不适合搜索伪元素。
但是, JavaScript 可以自由地操纵伪元素,所以我想问一下,如果有一种方法可以返回 css选择器 / JavaScript 中伪元素(更准确地说是“:: after”)的父网络元素的xpath 。
换句话说,我有这个:
<html>
<body>
<label id="parent">
<span> Some text </span>
::after
</label>
</body>
</html>
我想知道:“#parent”
提前谢谢。
答案 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("./.."));