2017-05-22 64 views
-1

我想找回父網絡元素的僞構件(如果它可以被稱爲母體),但據我所知硒的搜索網絡元素的方法不適合搜索僞元素
然而,的JavaScript操縱僞元素自由,所以我想問一下,是否有可能返回CSS選擇/XPath的父網絡元素僞元素(要的方法更精確的「:: after」)JavaScript
換句話說,我有這樣的:如何使用selenium webdriver找到僞元素的父項?

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

而且我想獲得的是:「#父」

預先感謝您。

回答

0

如果您需要根據跨度的文本選擇父母,那麼你可以使用這樣的事情:

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

上面的代碼將幫助您找到標籤之後是用文字跨度=「一些文字「。

如果您不確定標籤,並確定使用javascript獲取結果。嘗試使用以下語法在selenium中執行JavaScript代碼:(Python)

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

根據您的情況更新腳本以查找父母。

如果這對您沒有幫助,請在下面的評論中告訴我。

+0

的一點是,該「::後」不是元素的一部分:) 這是一個獨立的元素,它可以位於很多地方(在我的情況下只有一個) – Kiseki

+0

我沒有明白你的觀點。你的意思是文字不在那裏? –

+0

我的意思是::元素後可以設置任何標記後,不一定 後,我想檢索位置(可能每個)::元素後,或檢查某些Web元素是否有::後僞元素作爲一個孩子 – Kiseki

0

尋子元素第一和上下文節點添加到子元素,像這樣:

WebElement child = driver.findElement(By.xpath("xpath of child")); 
WebElement parent = child.findElement(By.xpath("./..")); 
相關問題