ElementNotInteractableException:無法透過鍵盤存取元素
理解錯誤
「元素無法透過鍵盤存取」表示有問題的元素是無法透過鍵盤存取。這意味著即使在表面層面上也缺乏物理互動。
錯誤原因
此錯誤可能由多種因素引起,包括:
-
隱藏元素:被CSS 屬性隱藏的元素,如“display: none”或“hidden”。這可能是由於覆蓋元素或臨時/永久隱藏技術而發生的。
-
無效的 click() 或 sendKeys() 用法: 在不適當的標籤上呼叫這些方法,例如
或
而不是所需的
解決問題
根據原因,可以使用各種解決方案:
-
暫時覆蓋:使用WebDriverWait和ExpectedConditionsExpected元素變得可見或可點擊。
-
永久疊加:使用JavascriptExecutor中的executeScript()來變更CSS屬性,例如「display: none」到「display: block」。
-
隱藏屬性: 利用executeScript()編輯樣式屬性並取消隱藏
-
無效用法:識別正確的;
動態定位器策略
對於涉及React Native元素的情況,建議使用動態定位器策略來克服 ID 變化。
具體應用Facebook
使用Facebook 的React Native 元素,可以使用以下程式碼片段使用:
driver.findElement(By.xpath("//input[@name='firstname' and contains(@class,'inputtext')]")).sendKeys("testing it ");
登入後複製
WebDriverClick 功能
以上是為什麼我的 Selenium 測試失敗並顯示'ElementNotInteractableException:鍵盤無法存取元素”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!