如何捕获以下代码的文本值?

时间:2017-09-09 15:47:45

标签: xpath selenium-webdriver

如何使用xpath获取以下文本值50000:

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

我试过

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

但它不起作用。

3 个答案:

答案 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')]