在 Selenium Webdriver 中,如何获取元素后面的文本?

Jos*_*ose 5 java selenium xpath selenium-webdriver

我想获得恰好位于特定元素之后的文本。请看示例代码:

<div id="content-tab-submitter" class="">
    <h4>Sender</h4>
    <p>
        <span class="screenHidden">Name: </span>
        submitter
        <br>

        <span class="screenHidden">E-mail address:</span>
        submitter@asd.com
        <br>

        <span class="screenHidden">Account: </span>
        asdas
        <br>
    </p>
</div>
Run Code Online (Sandbox Code Playgroud)

我想获取紧随其后<span>包含“帐户”的文本。通过使用此 XPath 表达式:

<div id="content-tab-submitter" class="">
    <h4>Sender</h4>
    <p>
        <span class="screenHidden">Name: </span>
        submitter
        <br>

        <span class="screenHidden">E-mail address:</span>
        submitter@asd.com
        <br>

        <span class="screenHidden">Account: </span>
        asdas
        <br>
    </p>
</div>
Run Code Online (Sandbox Code Playgroud)

Java 给了我一个错误,因为输出不是 Web 元素,而是文本。所以,不可能使用findElement。

我怎样才能以干净的方式获得这段文字?我的意思是我不想获取所有文本(在本例中):submitter\nsubmitter@asd.com\nasdas,然后提取所需的文本。

Par*_*ras -2

您可以使用Selenium 的getText()方法,例如:

driver.findElement(By.xpath("XPath expression of the element")).getText();
Run Code Online (Sandbox Code Playgroud)

您的 XPath 表达式可以是:

driver.findElement(By.xpath("XPath expression of the element")).getText();
Run Code Online (Sandbox Code Playgroud)