【问题标题】: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

标签: java selenium selenium-webdriver


【解决方案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】:

      文本位于&lt;h2&gt; 标记中,而不是&lt;span&gt; 标记中。试试

      driver.findElement(By.xpath(".//*[@id='iselmf-folder-detail']/h2")).getText();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-25
        • 1970-01-01
        • 1970-01-01
        • 2019-03-20
        • 1970-01-01
        • 2018-05-14
        • 2021-11-29
        相关资源
        最近更新 更多