无法在运行时与 Web 元素交互

本文提供了解决以下问题:Microsoft Power Automate 中的运行时,Web 自动化操作无法与 Web 元素交互。

适用于: Power Automate
原始 KB 数: 4599079

现象

在 Microsoft power Automate 运行时,Web 自动化操作(例如,“单击链接”、“填充文本字段”或“获取元素的详细信息”)在运行时失败。

验证问题

在桌面流的初始开发过程中,可以捕获 Web 元素并与之交互。

原因

某些网页会动态更改其基础 HTML 结构。 因此,最初用于查找元素的 CSS 选择器不再适用。

解决方法

若要解决此问题,可以手动创建新的可靠的 CSS 选择器。 即使 HTML 结构发生更改,它也能找到感兴趣的元素。

为此,请在失败后再次捕获 Web 元素,并将新的 CSS 选择器与旧的 CSS 选择器进行比较。

可以通过选择器生成器窗口查看和编辑 CSS 选择器:

可用于查看和编辑 CSS 选择器的选择器生成器页面。

请注意两个选择器之间的差异 - 可能有一个或多个元素或属性不同。

编辑选择器以仅包含不容易更改的静态部件。 可以遵循以下一些方法:

  1. 删除任何动态值,如数字并相应地修改相关运算符(“以开头”、“结尾为”、“包含”等)。
  2. 如有必要,请从选择器路径中删除整个元素。
  3. 使用“包含”选择器查找使用其网页上可见的文本的元素。

示例:

  • 选择器包含具有动态类的元素,例如 div[class="some_class123"]。 这可以修改为 div[class^="some_class"] (“Starts with” 运算符)。
  • 选择器包含具有许多动态属性的元素,例如 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").