我正在使用 Power Automate Desktop 从动态生成的网站获取信息。这些元素非常深入,而且它们大多没有可用的句柄,因此我需要使用内部文本在文档中导航。
我可以使用
label:contains("static text")
访问静态文本元素,使用 label:contains("static text") + div
访问隐藏文本元素,但我似乎无法访问我得到的文本元素。
我尝试了
label:contains("static text"):parent() + div
,但是由于某种原因这也返回了隐藏的静态文本。有趣的是,从 label:contains("static text"):parent():parent()
获取文本会返回可见的静态文本,而无法找到 label:contains("static text"):parent():parent():nth-child(2)
...
<div>
<div>
<div>
<ul>
<li>
<div>
<label>
STATIC TEXT I CAN FIND
</label>
<div>
HIDDEN STATIC TEXT I DON'T CARE ABOUT
</div>
</div>
<div>
<div 3x>
<li>
<div 3x>
<ul></ul>
<div>
DYNAMIC TEXT I WANT TO EXTRACT
</div>
</div>
</li>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
你可以这样做:
$("label:contains('STATIC TEXT I CAN FIND')").closest('div').parent().next().find('ul').next().html()
或
$("div > div > div > ul > li:eq(1) > div > div").html();
我将您的代码复制粘贴到这个在线 html 编辑器中: https://www.w3schools.com/html/tryit.asp?filename=tryhtml_intro 就在“我的第一段”代码之后。
在 PAD(文本模式下的选择器生成器)中使用 ~siblings 、 has 和 contains 选择器,我成功地在变量中获取了您想要的文本: “我要提取的动态文本”:
iframe[Id="iframeResult"] > html > 正文 > div > div > div > ul > li:has(label:contains('静态文本我可以找到')) ~ li > div > div