无法在运行时与 Web 元素交互
本文解决了在 Microsoft Power Automate 中运行时 Web 自动化操作无法与 Web 元素交互的问题。
适用于: Power Automate
原始 KB 编号: 4599079
症状
Web 自动化操作 (例如,“单击链接”、“填充文本字段”或“获取元素的详细信息”) 在 Microsoft Power Automate 的运行时失败。
正在验证问题
在桌面流的初始开发过程中,可以捕获 Web 元素并与之交互。
原因
某些网页会动态更改其基础 HTML 结构。 因此,最初用于查找元素的 CSS 选择器不再适用。
解决方案
若要解决此问题,可以手动创建新的可靠的 CSS 选择器。 即使 HTML 结构发生更改,它也能找到感兴趣的元素。
为此,请在失败后再次捕获 Web 元素,并将新的 CSS 选择器与旧选择器进行比较。
可以通过选择器生成器窗口查看和编辑 CSS 选择器 :
请注意这两个选择器之间的差异 - 可能有一个或多个元素或属性不同。
编辑选择器以仅包含不容易更改的静态部分。 可以遵循以下一些方法:
- 删除任何动态值(如数字),并相应地修改相关运算符 (“开头为”、“结尾为”、“包含”等。)
- 如有必要,请从选择器路径中删除整个元素。
- 使用“包含”选择器找到使用网页上可见文本的元素。
示例:
- 选择器包含具有动态类的元素,例如
div[class="some_class123"]
。 这可以修改为div[class^="some_class"]
(“开头为”运算符) 。 - 选择器包含具有许多动态属性的元素,例如
div[class="some_class123"][id="some_id123"] > a[id="some_id"]
。 可以将其修改为a[id="some_id"]
(完全省略第一部分) 。 - 感兴趣的元素具有一些静态文本 - 可以修改选择器以仅包含该文本。 例如,
div[class="some_class123"][id="some_id123"] > a[id="some_id"]
可以修改为a:contains("the_text_we_see_on_the_webpage")
。