はどのようにXPathを使用して50000の次のテキスト値を取得します次のコードのテキスト値をキャプチャする方法は?
<span class="XYZ">
<span class="Value"/>
50000
</span>
は私が
driver.findElement(By.xpath(//span[@class='xyz'])).getText()
が、その動作していないとみました。
はどのようにXPathを使用して50000の次のテキスト値を取得します次のコードのテキスト値をキャプチャする方法は?
<span class="XYZ">
<span class="Value"/>
50000
</span>
は私が
driver.findElement(By.xpath(//span[@class='xyz'])).getText()
が、その動作していないとみました。
この回答を参照してください:https://stackoverflow.com/a/5455770/2386700
<span class="Value"/>
は無効なHTMLです。そうすれば、予期しない動作が起こります。あなたはクロームが自動的にHTMLを修正しようとしていることがわかりますhttps://jsfiddle.net/kqta82pd/
:Chromeを使用して
、このフィドルを点検。 \>
が削除され、閉じる</span>
タグが追加されます。
あなたの5000は今や<span class="Value">
要素に含まれています。
したがって、次のセレクタは動作するはずです:
driver.findElement(By.xpath(//span[@class='Value'])).getText()
あなたのxpathが正しいですが、その値は "XYZ" ではない "XYZ" 間違った試み、このようになります。
driver.findElement(By.xpath(//span[@class='xyz'])).getText()
または
を使用driver.findElement(By.xpath(//span[contains(text(),'50000')])).getText()
最初に、2番目のスパンの/>が間違っています。私はこのように声を出したいと思っています:
<span class="XYZ">
<span class="Value">30000</span>
50000
</span>
以下のxpathは、私が上記で提示したhtmlコードスニペットから5000を直接選択することができます。
//span[@class='XYZ']/text()[contains(., '5000')]
XMLとXPathでは大文字と小文字が区別されます。 'xyz'を' XYZ'に変更してみてください –