【问题标题】:How to read the html tags innerHTML value using css selector or xpath.?如何使用 css 选择器或 xpath 读取 html 标签的 innerHTML 值。?
【发布时间】:2023-03-21 21:59:01
【问题描述】:

我的实际查询是,我想使用 css 选择器或 xpath 检索 HTML 内部文本值。我可以通过使用 document.getElementById 但不使用选择器来实现这一点,相反,我只能打印标签元素,但不能打印其中的文本。

例如:

<li class="active">
  <span id="lastPrice">1,603.35</span>
  &nbsp;&nbsp;<span id="CAToday"></span><br>
  <span class="up" id="change">28.80</span>
</li>

从上面的 HTML 中,我想打印 1,603.35 使用任一

  • Css 或

  • xpath

注意:我已经钻过论坛但无法找到所需的解决方案。

【问题讨论】:

  • 喜欢这个? document.querySelector('#lastPrice').textContent
  • 你是对的,我可以使用文档对象,但我只想使用 css / xpath 阅读,拜托。也许,像 '$$' 或 '$x'
  • 我想我不明白你所说的using css selector 是什么意思,因为我的评论使用了选择器...我得到了 xpath 部分但没有 css 部分,你能解释一下吗?
  • 您能否分享您尝试过的代码,以便我们了解更多上下文?
  • 我在 chrome 控制台上试过: $x("//*[@class='active']//span[@id='lastPrice']") 和 $x("/ /*[@class='active']//span[@id='lastPrice']/text()"),然后是 $x("//*[@id='lastPrice']")

标签: javascript html css xpath css-selectors


【解决方案1】:

您应该可以使用 XPath 版本 2 matches 函数:

//div[matches(text(), 'Hello ?\w+ What would you like to do today \w+')]

确实允许正则表达式。

【讨论】:

    【解决方案2】:

    Java Selenium(xpath 示例):

    driver.findElement(By.xpath("//span[@id='lastPrice']").getAttribute("innerText")
    

    Python Selenium(CSS 示例):

    driver.find_element_by_css_selector("span#lastPrice").get_attribute("innerText")
    

    【讨论】:

    • 那是 javascript 不是 css / xpath 查询。我说它是 javascript,因为 [0].innerText 或 [0].innerHTML 用于 xpath 选择器的结果。所以,我只在 xpath / css 选择器中寻找相同的结果。类似的,Kesh 已经发表了评论,但是当我尝试它时它不起作用:(
    • 不知道你用的是什么工具和框架,但是你应该可以用`.getAttribute("innerText")"来做到这一点。
    • 使用 xpath/css 使用 Java 和 Python 选项更新了答案。
    • 我的查询与硒无关
    • 好的。 //span[@id='lastPrice']/@innerText 怎么样?如果您使用哪个工具来执行此脚本,那就太好了。
    【解决方案3】:

    这个 XPath 表达式

    string(/li/span[@id='lastPrice'])
    

    有了这个格式良好的 XML

    <li class="active">
      <span id="lastPrice">1,603.35</span>
      <span id="CAToday"></span><br/>
      <span class="up" id="change">28.80</span>
    </li>
    

    结果

    1,603.35
    

    签到http://www.utilities-online.info/xpath/?save=07d6e884-4f7e-46cc-9aaf-904e6a440f50-xpath

    【讨论】:

    • 它正在使用您提供的链接,正是我正在寻找的东西,我很高兴,但是,我的快乐并没有消失太久,:( 我在 chrome 控制台上尝试过,但它没有t 在那里工作,返回值是一个空字符串。但是,看起来你理解我的查询我在找什么,请尝试使它在 chrome 控制台上工作,我也在尝试。提前致谢。
    • 谢谢@Alejandro:它在 chrome 控制台上工作。当我使用以下 ("string(//span[@id='lastPrice'])") 或 ("string(//*[@id='lastPrice'])") 不确定,为什么使用单斜杠 ' /' 不工作,
    猜你喜欢
    • 2015-09-02
    • 2021-09-16
    • 2011-02-06
    • 1970-01-01
    • 2023-01-29
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多