【问题标题】:How to get text from nested span tag in selenium如何从硒的嵌套跨度标签中获取文本
【发布时间】:2026-02-17 23:40:01
【问题描述】:

我的项目中有以下 HTML 代码。

<button id="tab-oneWay" class="" data-initial-tab="true" type="button" data-section-id="#section-oneWay">
  <span class="tab-label">
    One Way
      <span class="visuallyhidden"> Tab 1 of 2</span>
  </span>
</button>

我只需要找到文本“One Way”。 我尝试了以下代码,但它返回“One Way Tab 1 of 2”。

findElement(By.id("tab-oneWay")).getText()
findElement(By.cssSelector(".tab-label")).getText()

我是硒新手,所以不知道如何找到它。对此的任何帮助都会很棒!提前致谢

【问题讨论】:

  • 没有这么简单的解决方案。这是类似的线程:*.com/questions/28945692/… 例如,您可以找到子文本并从父文本中删除它
  • 感谢主题。我试图避免字符串计算,但看起来我必须这样做。无论如何感谢您的回答。

标签: javascript html selenium selenium-webdriver


【解决方案1】:

findElement(By.xPath("/button/span[contains(., 'One Way')]").getText()

您能否尝试使用 XPath 查找元素,如上,看看是否返回正确?

【讨论】:

  • 这也给出了整个文本(One Way Tab 1 of 2)而不是我正在寻找的内容。感谢您的帮助。
【解决方案2】:

试试这个:

spans = find_elements_by_tag_name("span")
span1_text = spans[0].get_text()

【讨论】: