2017-05-22 36 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を使用して結果を得ることができます。以下の構文を使用してセレンでJavaScriptコードを実行してみてください(パイソン)

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

アップデートスクリプトをあなたのケースでは、あなたの要件ごとに、親を見つけること。

これがあなたに役立つかどうかは、以下のコメントでお知らせください。

+0

:) これは独立した要素で、さまざまな場所に配置することができます(私の場合は1つだけです) – Kiseki

+0

あなたの意見を聞いていませんでした。テキストはそこにないのですか? –

+0

私はmean :: after要素が任意のタグの後に設定される可能性があります。の後にの後に(おそらくevery):: after要素の位置を取得したい、または特定のWeb要素に::擬似要素子供の場合 – Kiseki

0

検索子要素最初と次のように、子要素にコンテキストノードを追加します。ポイントは要素の一部ではありません「の後に::」という、ある

WebElement child = driver.findElement(By.xpath("xpath of child")); 
WebElement parent = child.findElement(By.xpath("./..")); 
関連する問題