java - 在 Selenium Webdriver 中,如何在元素后获取文本?

标签 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>

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

//*[@id='content-tab-submitter']/p/span[contains(text(),'Account')]/following::text()

Java 给我一个错误,因为输出不是网络元素而是文本。因此,不可能使用 findElement。

如何以干净的方式获取此文本?我的意思是我不想获取所有文本(在这种情况下):submitter\nsubmitter@asd.com\nasdas 然后提取所需的文本。

最佳答案

我认为没有任何直接的方法可以在 Account: 之后提取文本:即直接引用 text = 'asdas' 的 XPath 表达式。

因此,与其尝试直接读取 text = 'asdas',不如尝试读取 p 标签中的每个文本,并执行如下操作以提取标签。

WebDriver driver = new FirefoxDriver();
driver.get("file:///C:/Users/rajnish/Desktop/myText.html");

// XPath expression for talking complete text i.e all text inside every span tag that comes under p tag
String MyCompleteText  = driver.findElement(By.xpath("//*[@id='content-tab-submitter']/p")).getText();

System.out.println("My Complete Text is: " + MyCompleteText);

// MyCompleteText outputs in console:
// My Complete Text is: Name: submitter
// E-mail address: submitter@asd.com
// Account: asdas

// Now we have to split our MyCompleteText on the basis of Account:
// as we want text after Account: so do it like below

String[] mytext = MyCompleteText.split("Account:");
System.out.println("I am text after  Account: "+ mytext[1]);

输出将是这样的:

My Complete Text is: Name: submitter
E-mail address: submitter@asd.com
Account: asdas
I am text after  Account:  asdas

关于java - 在 Selenium Webdriver 中,如何在元素后获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36542323/

相关文章:

java - 在 Android 应用程序中释放共享资源

java - 订购 10 个数字的列表

html - 更正 XPath 查询以获取 div 内部文本

python - 使用 Python Selenium 查找 span 标记的兄弟/父级

java - jaxb、xsd 替换复杂类型

java - Admob 问题 - 无法实例化 fragment com.google.android.gms.$PlaceholderFragment

java - 如何在eclipse中执行页面对象程序?

java - 将 jQuery 与 WebDriver 结合使用 (JAVA)

Selenium WebDriver- WebElement.FindElements 返回比预期更多的元素

c# - 使用 xPath 遍历项目