私はSelenium WebDriverを使用しています。 (Javaの場合は重要です)。Selenium WebDriver by xpath:子要素のテキストで検索
私は要素の中から、下位要素の下にあるテキストを検索する必要があります。私は現在、要素のリストをループし、getText()を私が望む値と比較することでそれを行いますが、ブラウザがxpathを通してそれを行うようにする方が良いでしょう。私は、次のセレクタを試みた
<span role="button" class="mblToolBarButton mblToolBarButtonHasLeftArrow" tabindex="0" id="dojox_mobile_ToolBarButton_3" dir="ltr" widgetid="dojox_mobile_ToolBarButton_3"><span class="mblToolBarButtonArrow mblToolBarButtonLeftArrow mblColorDefault mblColorDefault45"></span><span class="mblToolBarButtonBody mblColorDefault"><table cellpadding="0" cellspacing="0" border="0" role="presentation" class="mblToolBarButtonText"><tbody><tr><td class="mblToolBarButtonIcon"></td><td class="mblToolBarButtonLabel">Back</td></tr></tbody></table></span></span>
オンラインで検索した後:
//*[contains(@class,'mblToolBarButtonHasLeftArrow') and text()[contains(.,'Back')]]
をしかし、それは動作しませんでした
は例えば、ここで私が見つけたい要素です。
理想的には、文字列 "Back"を持つこの要素が見つかるように部分文字列ではなくテキスト全体で検索したいと思いますが、テキスト "Backup"を持つ類似の要素は見つかりません。私は、異なる子要素のテキストを連結する必要はありません。
どのセレクタを書くべきですか?ありがとう!
これは、先祖が子供ではなく、これを見つけることを実現するために時間をかけました。ありがとう、これはおそらく動作します!しかし、時には、その要素のfindElement()メソッドを呼び出すことによって、その要素を特定の要素の下でのみ見つける必要があります。私は最初に//を取り除くことができますが、/ ancestor ::はDOMの最初の要素の上を横断します。 –