【问题标题】:How to get text next to tag with xpath如何使用 xpath 获取标签旁边的文本
【发布时间】:2024-05-16 07:35:02
【问题描述】:

我有以下 HTML 代码

<HTML>
<HEAD><TITLE>CTS_Status_20170908_085307</TITLE></HEAD>
<BODY>
<font face=arial>
<b>CTS Status Report</b>
<br><br>
<table border=0>
<tr>
<tr><td>Start time:</td><td>2017-09-06 18:31:28</td></tr>
<tr><td>Current time:</td><td>2017-09-08 08:53:07</td></tr>
</table>
<br>
Last DB maintenance record: N/A<br><br>
Up time: 1 days, 14 hours, 21 minutes, 38 seconds<br><br>
Transactions served: 2718<br><br>
Sessions created from start: 29<br>
Current sessions count: -16<br><br>
DB timeouts count: 3<br>
DB disconnections count: 51<br><br>
Transaction info: <br>

我正在尝试获取信息

Up time: 1 days, 14 hours, 21 minutes, 38 seconds

我正在使用以下 xpath 进行操作

driver.findElement(By.xpath("/html/body/font/text()[2]")).getText());

但我收到以下错误

xpath 表达式“/html/body/font/text()[2]”的结果是: [对象文本]。它应该是一个元素。

谁能帮帮我,拜托。

【问题讨论】:

  • 你要选择哪个元素
  • 我正在尝试获取以下信息“正常运行时间:1 天 14 小时 21 分钟 38 秒”
  • 仅供参考:此 xPath 在 chrome devtools 中工作以查找您的文本://font[@face]/text()[contains(.,'Up time')]
  • 首先,感谢您的回复.. 当我输入您的代码时,我收到以下错误:[object Text]。它应该是一个元素。

标签: java selenium xpath


【解决方案1】:

您只能使用 selenium 获取元素,而不是文本节点

你应该这样做

driver.findElement(By.xpath("/html/body/font")).getText());

然后使用正则表达式来提取你需要的数据。或者您可以使用我在下面所做的基于 JavaScript 的方法

How to get the second element from the sublist using python

【讨论】:

    最近更新 更多