點擊問題

「元素不可點擊」錯誤

ChromeDriver 點擊的運作方式:在元素的第一個用戶端矩形中間模擬滑鼠點選動作 (如果沒有第一個用戶端矩形,則會看到綁定的用戶端矩形)。如要找出 ChromeDriver 嘗試點選的位置,最簡單的方法是開啟 Chrome 開發人員工具,然後在呼叫點擊作業前,檢查要點選的元素。在檢查器中選取元素,並留意代表元素用戶端矩形的藍色方塊,如下所示。ChromeDriver 會嘗試點選第一個檔案的中間。

如果 ChromeDriver 擲回「元素不可點擊」錯誤,最有可能原因是使用者實際上無法點按該位置。如要進行測試,請將遊標放在第一個用戶端矩形的中間,看看該位置是否可點選。

在上述情況下,測試嘗試點選錨定元素。在本例中,錨點不可點擊,只有子圖片。由於圖片元素有 margin-bottom 樣式,錨定元素的中間位置落在可點擊的圖片邊界之外,因此 ChromeDriver 會擲回錯誤。 如要進一步瞭解如何決定位置或尺寸,請參閱 W3 規格。如要修正上述情況,請按一下圖片 (不要使用錨點)。

在測試嘗試下列情況下,經常會發生「元素不可點擊」錯誤:

  • 點擊錨定標記外的可點擊子元素不在錨定邊界內 (如上所示)
  • 按一下其他元素下方全部或部分的元素
  • 在固定的重疊元素出現時,點擊畫面外的元素 (元素會捲動至檢視畫面中,但您可以捲動至固定的疊加層下方)
  • 點擊中間無法點選的元素 (例如某些類型的 SVG 元素)

通常可以透過以下方式解決這些問題:按一下指定元素的子項、透過程式輔助方式移除或隱藏封鎖元素、使用進階互動 API 點擊元素左上角的偏移值,或是在 JavaScript 中模擬滑鼠點擊事件。

「元素不可點擊」錯誤

這很可能是因為元素的位置在 ChromeDriver 判定元素位置後,但在 ChromeDriver 實際點按位置之前有所變更。

如要判斷這是否為問題所在,請擷取點擊中的例外狀況,並立即記錄元素目前的位置和大小。然後比較 ChromeDriver 回報嘗試在例外狀況中嘗試點擊的位置,看看兩者是否不同。如果是這種情況,請等待元素停止移動,或再次嘗試點選。如果沒有,請提供能夠重現問題的小型測試頁面錯誤 (即使該頁面偶爾才會觸發)。

ChromeDriver 無法點擊移動的元素

這並非 ChromeDriver 的支援功能。如果元素最終停止,請等候此情況發生。如果元素永不停止移動,ChromeDriver 就無法保證點擊一定能成功。