【问题标题】:Selenium CSS Locator for span text inside nested divsSelenium CSS 定位器,用于嵌套 div 内的跨度文本
【发布时间】:2014-04-07 13:41:12
【问题描述】:

有人知道下面代码中 selenium (webdriver - java) 中的 css 选择器语句来获取“text2”吗?

<div class="firstclass"> 
<br> 
<p id="someid" class="secondclass"> 
<span>text1 </span> 
<span>text2</span>

【问题讨论】:

    标签: selenium css-selectors selenium-webdriver


    【解决方案1】:

    我今天遇到了同样的类似问题,我能够使用div.getText 检索文本,因为在我的情况下,&lt;Div&gt;&lt;Span&gt;text&lt;/Span&gt; 完成了&lt;/Div&gt;,当我尝试时,跨度之间的文本不可用span.getText()... 可能与您的情况相同。

    【讨论】:

      【解决方案2】:

      div p span + span 应该适用于该结构。

      【讨论】:

      • 我无法让它工作。我也尝试过 span:nth-child(2) 我认为这是因为这是一个嵌套在 20 个其他 div 中的 div。感谢您的建议
      • 您提供的示例上方的结构不应影响该选择。您可以尝试使用 p 元素中的 Id:p#someid span+span
      【解决方案3】:

      用 xpath 试试

      By.xpath("//div[@class='firstclass']/span[2]).getText()
      

      【讨论】:

      • 不,您可以使用 xpath 使用此 Webdriver-command 获取此文本 2。
      • 为什么不呢?请尝试一下,它应该可以工作。他想得到“text2”,这个命令在他的代码中给了他“text2”。
      • 因为他的 HTML 中根本没有表格?
      【解决方案4】:

      这里

      Text1 = css=#someid > 跨度 Text2 = css=#someid > span + span

      Text2 = css=#someid > span:nth-of-type(2)

      Text2 = css=#someid > span:nth-child(2)

      【讨论】:

        猜你喜欢
        • 2021-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-08
        • 2019-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多