2017-09-09 2 views
2

はどのようにXPathを使用して50000の次のテキスト値を取得します次のコードのテキスト値をキャプチャする方法は?

<span class="XYZ"> 
    <span class="Value"/> 
    50000 
</span> 

は私が

driver.findElement(By.xpath(//span[@class='xyz'])).getText() 

が、その動作していないとみました。

+1

XMLとXPathでは大文字と小文字が区別されます。 'xyz'を' XYZ'に変更してみてください –

答えて

0

この回答を参照してください: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() 
0

あなたのxpathが正しいですが、その値は "XYZ" ではない "XYZ" 間違った試み、このようになります。

driver.findElement(By.xpath(//span[@class='xyz'])).getText() 

または

を使用
driver.findElement(By.xpath(//span[contains(text(),'50000')])).getText() 
0

最初に、2番目のスパンの/>が間違っています。私はこのように声を出したいと思っています:

<span class="XYZ"> 
    <span class="Value">30000</span> 
    50000 
</span> 

以下のxpathは、私が上記で提示したhtmlコードスニペットから5000を直接選択することができます。

//span[@class='XYZ']/text()[contains(., '5000')] 
関連する問題