如何获取没有所有子节点文本的直接元素的文本

时间:2016-03-07 09:44:16

标签: java regex selenium-webdriver testng

<li class="lvprice prc">
    <span class="bold">
    $252.00
        <div class="medprc">
            <span class="prcVS">Trending at</span>
            <span class="median">
            $259.85

此外,Screenshot。  enter image description here

我希望getText使其返回&#34; $ 252.00&#34; 目前,getText返回&#34; $ 252.00趋势为$ 259.85&#34;。 所以它从直接元素中获取文本,并且它还包括子节点的文本。

我目前正在使用findElements(By.cssSelector("li.lvprice.prc"))

我查看了WebElement.getText()文档。它也是为了获取所有子节点文本而构建的。

我可以使用正则表达式只从字符串中抓取252.00,但我不确定这是最专业的方式。

任何提示?

2 个答案:

答案 0 :(得分:1)

您可以获取整个文本,而不是删除子文本

String allText = driver.findElement(By.cssSelector("li.lvprice.prc")).getText();
String childrenText = driver.findElement(By.cssSelector("div.medprc")).getText();
String parentText = allText.replace(childrenText, "");

答案 1 :(得分:0)

试试这个:

<li class="lvprice prc">
    <span class="bold">.*?(\$\d+.?\d+)

Regex demo

相关问题