解決Selenium WebDriver 中的ElementNotInteractableException
在提供的場景中,遇到的錯誤是ElementNotInteractableException,表示存在無法交互的不可見元素和。要解決這個問題,需要考慮以下幾個因素:
ElementNotInteractableException
的原因
- 重疊元素遮蔽目標元素
- 視口之外的元素
- 停用或隱藏元素
解
讓我們依照所述的常見原因檢查潛在的解決方案:
暫時重疊元素
如果暫時有另一個元素模糊目標元素,使用 WebDriverWait 誘導 ExplicitWait 可能會很有效。步驟如下:
- WebDriverWait wait2 = new WebDriverWait(driver, 10);
- wait2.until(ExpectedConditions.invisable ble")));
- driver.findElement(By.xpath("xpath_element_to_be_clicked")).click();
永久元素
永久元素
- 當重疊元素永久可見時,將WebDriver 實例轉換為JavascriptExecutor允許單擊操作,即使在被遮擋時也是如此。程式碼片段如下:
- WebElement ele = driver.findElement(By.xpath("element_xpath"));
- JavascriptExecutor executor = (JavascriptExecutor)driver;executor.executeScript("arguments[0].click();", ele);總之,解決ElementNotInteractableException 需要了解根本原因,例如重疊元素或停用元素,並使用WebDriverWait或JavascriptExecutor 應用適當的解決方案。透過解決這些問題,您可以確保與網頁上的元素進行可靠且一致的互動。
以上是如何解決Selenium的ElementNotInteractableException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!