【发布时间】:2025-12-31 15:35:06
【问题描述】:
我需要抓取以下 HTML,但唯一可靠的句柄是对文本字段的稳定描述。从那里,我需要去它的父母那里,找到下一个兄弟姐妹的父母,然后得到后代(不幸的是,data-automation-id 选择器在网站上这个 sn-p 的每次迭代中都会重复)。我将以下 XPath 放在一起,但我的 RPA 工具无法在文档中找到它。
XPath
div[contains(text(),'STABLE TEXT HANDLE')]/following-sibling::div/div/div/span[data-automation-id="SOMETHING"]
HTML:
<ul>
<li>
<div>
<label>STABLE TEXT HANDLE</label>
</div>
<div>
<div>
<div>
<span></span>
<span data-automation-id="something">
<div>
<div>
<div>
DYNAMIC TEXT I WANT TO SCRAPE
</div>
</div>
</div>
</span>
<span data-automation-id="somethingelse">
<div>
<div>
<div>
DYNAMIC TEXT I WANT TO SCRAPE
</div>
</div>
</div>
</span>
</div>
</div>
</div>
</li>
</ul>
编辑:
经过进一步测试,问题似乎始于contains(text(),'STABLE TEXT HANDLE'),它无法找到该特定节点(无论是label,还是其父级div)。
【问题讨论】:
-
在 XPath 表达式的开头添加
//。看我的回答! -
@Prophet 我正在使用 Openbots.ai,它允许
tag[selector='']和//tag[@selector=''] -
所以我看到它终于奏效了?
-
是的。这是您复制粘贴(并检查拼写错误和所有内容)的东西之一,它们根本不起作用。你摆弄了很多变体,它们都不起作用,然后你回到原来的复制粘贴变体......它就开始工作了。
标签: html web-scraping xpath multiple-axes