無法在執行時間與 Web 元素互動

本文提供解決 Microsoft Power Automate 中 Web 自動化動作在執行時間期間無法與 Web 元素互動的問題。

適用于: Power Automate
原始 KB 編號: 4599079

徵狀

Web 自動化動作 (例如,在 Microsoft Power Automate 的執行時間期間,「按一下連結」、「填入文字欄位」或「取得元素的詳細資料」) 會失敗。

驗證問題

在桌面流程的初始開發期間,您可以擷取 Web 元素並與之互動。

原因

某些網頁會動態變更其基礎 HTML 結構。 因此,一開始用來尋找元素的 CSS 選取器已不再適用。

解決方案

若要解決此問題,您可以手動建立新的強固 CSS 選取器。 即使 HTML 結構變更,它還是能夠找到感興趣的專案。

若要達到此目的,請在失敗後再次擷取 Web 元素,並比較新的 CSS 選取器與舊的 CSS 選取器。

您可以透過 [ 選取器產生器 ] 視窗檢閱和編輯 CSS 選取器:

您可以用來檢閱和編輯 CSS 選取器的選取器產生器頁面。

請注意兩個選取器之間的差異 – 可能有一或多個元素或屬性不同。

編輯選取器,只包含不容易變更的靜態元件。 您可以遵循下列一些方法:

  1. 移除任何動態值,例如數位,並據以修改相關的運算子 (「開頭為」、「結尾為」、「包含」等等。)
  2. 如有必要,請從選取器路徑中移除整個專案。
  3. 使用 「包含」選取器,找出使用網頁上可見文字的專案。

範例:

  • 選取器包含具有動態類別的專案,例如 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")