如何使用xpath获取以下文本值50000:
<span class="XYZ">
<span class="Value"/>
50000
</span>
我试过
driver.findElement(By.xpath(//span[@class='xyz'])).getText()
但它不起作用。
答案 0 :(得分:0)
请参阅此答案:https://stackoverflow.com/a/5455770/2386700
<span class="Value"/>
是无效的HTML。所以你会得到一些意想不到的行为。
使用Chrome,请检查这个小提琴:https://jsfiddle.net/kqta82pd/
您会看到Chrome会自动尝试为您更正HTML。它会移除\>
并添加结束</span>
代码。
所以你的5000现在包含在<span class="Value">
元素中。
所以下面的选择器应该可以工作:
driver.findElement(By.xpath(//span[@class='Value'])).getText()
答案 1 :(得分:0)
你的xpath是正确的,但它的值应该是“XYZ”而不是“xyz”不正确试试这个:
driver.findElement(By.xpath(//span[@class='xyz'])).getText()
或使用
driver.findElement(By.xpath(//span[contains(text(),'50000')])).getText()
答案 2 :(得分:0)
首先,/&gt;第二个跨度是不正确的,我想你想要这样:
<span class="XYZ">
<span class="Value">30000</span>
50000
</span>
xpath下面可以直接从我上面给出的html代码片段中选择5000。
//span[@class='XYZ']/text()[contains(., '5000')]