如何使用css选择器或xpath读取html标签innerHTML值?

时间:2019-03-11 18:35:35

标签: javascript html css xpath css-selectors

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

例如:

<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

注意:我已经钻研了该论坛,但是找不到所需的解决方案。

3 个答案:

答案 0 :(得分:2)

此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

签入github ticket

答案 1 :(得分:1)

您应该能够使用XPath版本2 matches函数:

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

允许使用正则表达式。

答案 2 :(得分:0)

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")