Selenium-使用xpath获取文本节点,并将其用作Java中的字符串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Selenium-使用xpath获取文本节点,并将其用作Java中的字符串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1439字,纯文字阅读大概需要3分钟。
内容图文
![Selenium-使用xpath获取文本节点,并将其用作Java中的字符串](/upload/InfoBanner/zyjiaocheng/694/9e7020ebfe8a4351837c4f803b83bee2.jpg)
这个问题已经在这里有了答案: > Getting text from a node 3个
我有一段这样的代码:
<div id='wrapper'>
<span>*</span>
Question 1
</div>
我想将问题1作为字符串存储在Java中,因此当我使用xpath // div / text()来获取文本“问题1”时.但是,当我尝试打印该值时,出现错误Invalid Selector Exception Xpath // div / text()是:[对象文本].它应该是一个元素.
String text = driver.findElement(By.xpath("//div")).getText();
//返回*问题1
String text = driver.findElement(By.xpath("//div/text()")).getText();
//返回错误
我应该如何只存储问题1.我可以使用上面的第一种方法替换*,但是我不想这样做.
解决方法:
我不确定我知道最好的方法,但这是一种方法.问题是您正在寻找包装DIV的子元素的一组元素中的特定文本.在您提供的示例中,我唯一能看到的是您想要的文本在包含标签之外.我们可以利用这个优势.基本上,方法是在包装器中获取整个文本,然后循环遍历包装器的所有子元素,从原始字符串中删除每个包含在其中的文本.那应该留下您想要的文本.我已使用您提供的示例测试了以下代码.
String wrapperText = driver.findElement(By.id("wrapper")).getText().trim(); // get all the text under wrapper
List<WebElement> children = driver.findElements(By.cssSelector("#wrapper > *")); // get all the child elements of wrapper
for (WebElement child : children)
{
String subText = child.getText(); // get the text from the child element
wrapperText = wrapperText.replace(subText, "").trim(); // remove the child text from the wrapper text
}
System.out.println(wrapperText);
内容总结
以上是互联网集市为您收集整理的Selenium-使用xpath获取文本节点,并将其用作Java中的字符串全部内容,希望文章能够帮你解决Selenium-使用xpath获取文本节点,并将其用作Java中的字符串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。