解决 Selenium WebDriver 中的 ElementNotInteractableException
在提供的场景中,遇到的错误是 ElementNotInteractableException,表示存在无法交互的不可见元素和。要解决此问题,需要考虑以下几个因素:
ElementNotInteractableException
的原因
- 重叠元素遮挡目标元素
- 视口之外的元素
- 禁用或隐藏元素
解决方案
让我们根据所述的常见原因检查潜在的解决方案:
临时重叠元素
如果暂时有另一个元素模糊目标元素,使用 WebDriverWait 诱导 ExplicitWait 可能会很有效。步骤如下:
- WebDriverWait wait2 = new WebDriverWait(driver, 10);
- wait2.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("xpath_of_element_to_be_invisi 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中文网其他相关文章!