如何使用Java Selenium在p标签下获取文本而忽略内部span标签文本

时间:2018-08-02 10:27:24

标签: java selenium-webdriver

    <p id="page0002_para27" class="s1 f4 fs4"><span id="page0002_13" class="f187 fs119">Math</span>
<span id="page0002_14" class="f4 fs119">Talk</span>
 <span class="left10">Children</span>

 continue discussing this scene and then move to the next scene. Ask questions as needed to stimulate children to talk.
    </p>

我想输入文字-“继续讨论这个场景,然后转到下一个场景。根据需要提出问题,以激发孩子们说话。”

当我尝试使用p标签获取文本时,它将返回所有文本,包括span标签文本。我不想获取跨度标签文本。

1 个答案:

答案 0 :(得分:0)

用这个 : WebElement元素= driver.findElement(By.cssSelector(“#page0002_para27”)); 公共静态字符串geNodeText(WebElement element){         字符串文本= element.getText();         for(WebElement child:element.findElements(By.xpath(“ ./*”))){           text = text.replaceFirst(child.getText(),“”);         }         返回文字;       } 它将仅给出段落标签文本,删除子元素或子元素。 参考:https://groups.google.com/forum/#!topic/webdriver/3mbMXA3sdlA 您可以对所有此类元素使用此方法,而不管它位于最后位置还是中间。 希望对您有帮助。