【问题标题】:Selenium - Find text only enclosed by double quotesSelenium - 查找仅用双引号括起来的文本
【发布时间】:2016-07-10 11:00:11
【问题描述】:

我正在尝试从一组网页中检索文本,但我要检索的某些文本未包含在任何标记中。我可以轻松检索其余内容,但在每一页上都有一段文本只用双引号括起来,没有别的。 目前我能够找到它所在的元素,但是该元素中还有很多其他内容,所以是否可以指定一个 xpath 进入该元素并专门检索用双引号括起来的文本?

编辑: 下面是我要检索的内容,即 h1 标记下方的两行文本。元素中还有更多内容,但没有任何相关性。因此,我正在寻找的 xpath 类似于“在具有类“widget-content”的文章元素中查找任何未封闭的文本。

<article class="widget-content">
    
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="/Modules/Orchard.jQuery/scripts/jquery-1.9.1.js" type="text/javascript"></script>


    <h1>Placeholder title</h1>
Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text Placeholder text    <br />
    <br />
Placeholder: Another placeholder    <br />
    <br />

【问题讨论】:

  • 能否请您发布一个给您带来问题的元素的示例和 HTML 代码
  • 我现在添加了一些代码,@ShubhamJain
  • 您的示例没有您正在谈论的引号。 “find any unenclose...”这一行也不见了。

标签: java html selenium xpath selenium-chromedriver


【解决方案1】:

应该是这样的:

xpath=//article[contains(@class, 'widget-content')]/article[1]

【讨论】:

    【解决方案2】:

    您的xpath 应该是这样的:

    //article/text()
    

    它只会输出任何tag之外的文本。

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      问:所以我正在寻找的 xpath 类似于“在具有类“widget-content”的文章元素中查找任何未封闭的文本。
      这将是:

      //article[@class='widget-content']/text()
      

      但这将包含大量空文本节点(仅限空白)以避免它们尝试:

      //article[@class='widget-content']/text()[normalize-space() !='']  
      

      问:下面是我要检索的内容,即 h1 标记下方的两行文本。

      这将是 (/h1/following-sibling::text()),或全部一起:

      "//article[@class='widget-content']/h1/following-sibling::text()[normalize-space() !='']"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-14
        • 2013-09-04
        • 1970-01-01
        • 2019-06-18
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多