如何从硒的跨度中获取文本
Posted
技术标签:
【中文标题】如何从硒的跨度中获取文本【英文标题】:How to get text from span in selenium 【发布时间】:2016-12-18 00:33:06 【问题描述】:我想获取文本 All New Products and Launches 我正在尝试这个
driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2/span")).getText();
但它正在打印文件夹
<h2 class="iselmf-h2-icon">
<span>Folder:</span>
All New Products and Launches
</h2>
【问题讨论】:
driver.findElement() 将返回另一个 web 元素,您可以从该元素简单地进行另一个查询以按标签名称(在本例中为 span)查找。 从你的 xpath 中移除 /span 【参考方案1】:从span
属性获取文本时,我遇到了非常相似的问题。解决方案是像这样使用.getAttribute("value")
:
driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2/span")).getAttribute("value");
**String org.openqa.selenium.WebElement.getAttribute(String name)**
【讨论】:
【参考方案2】:查看 html 标签
<span>Folder:</span>
/span 表示这是跨度的结束,因此如果您使用跨度作为标识符,那么它只会返回文件夹。
span的父元素是h2标签。因此,要获取 h2 和 /h2 标记之间的所有内容,您需要执行此操作 -
driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2")).getText();
【讨论】:
driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2/span")).getText();这个 sn-p 会做同样的事情,它会从 span 中检索文本。看起来你想说 driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2")).getText(); 正确,抱歉并感谢您的更正!已更新。【参考方案3】:有两种方法可以做到这一点,
1) driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2")).getText();
2) 从两者中获取文本,然后将其连接起来,类似于
String firstblock = driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2")).getText();
String secondblock = driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2/span")).getText();
String finaltext= firstblock+secondblock;
【讨论】:
【参考方案4】:文本位于<h2>
标记中,而不是<span>
标记中。试试
driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2")).getText();
【讨论】:
以上是关于如何从硒的跨度中获取文本的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Selenium 和 Python 从 html 标签跨度获取文本
PHP 通过 id 从跨度中获取文本/值并将其放入具有 cURL 的外部站点的变量中