【发布时间】:2021-03-31 11:02:01
【问题描述】:
如何提取
- 消息名称(例如
Message 1), - 收到的时间戳(例如
Received: 214-2342-234), -
也是最难的:消息文本(例如
This is message nr. 1 it contains...)
这个 HTML 使用 Selenium 4(最好是 XPath)? 我正在使用 Python。
<body>
<p class="pclass">
<a name="msg1"></a>
Message 1:
<a href="..."> Link1</a>
<span> Received: 214-2342-234</span>
</p>
<br>This is message nr. 1 it contains different stuff like <b>bold text</b>, etc.<br><br>
<p class="pclass">
<a name="msg2"></a>
Message 2:
<a href="..."> Link1</a>
<span> Received: 214-46546-23532</span>
</p>
<br>Message nr. 2 may contain other stuff (maybe even a table...)<br><br>
<p class="pclass">
<a name="msg3"></a>
Message 3:
<a href="..."> Link1</a>
<a href="..."> Link2</a>
<span> Received: 214-7876967666</span>
</p>
<br>This message contained 2 hyperlinks before the received-timestamp.<br><br>
<a href="close.php">Close Messages</a>
</body>
查询节点内的数据非常简单,但是标签之间的文本呢? 我目前拥有的是'msg1','msg2',...:
msgs = driver.find_elements(By.XPATH, "//a[starts-with(@name, 'msg')]")
print(msgs[0].get_attribute('name')) # prints 'msg1'
【问题讨论】:
-
根据给定的 html,您确定 html 是正确的吗?这是消息 nr。 1 它包含不同的东西,比如在 bodt 标签内
标签: javascript python selenium xpath webdriverwait