尝试将按键发送到键盘无法交互的输入字段时会发生此错误。在这种特定情况下,向 Facebook 上的“名字”字段发送文本时会遇到错误。
“元素无法通过键盘访问” " 错误可能由于多种原因而发生,包括:
有几种方法可以解决这个问题问题:
使用 WebDriverWait 和 ExpectedConditions:
如果元素暂时隐藏或被遮挡,请使用 WebDriverWait 和 ExpectedConditions 来等待元素可见且可单击。
使用executeScript():
如果元素被永久隐藏或遮挡,请使用 JavascriptExecutor 接口中的executeScript()方法来访问和操作该元素。
编辑样式属性:
如果元素由于CSS属性(例如“display:none”而隐藏),请使用executeScript()修改样式并使元素可见。
禁用 WebDriver 交互性检查(临时):
Firefox 功能 moz:webdriverClick 可以设置为 false 以暂时禁用 WebDriver交互性检查。这对于遗留测试可能是必要的。
在提供的代码片段中,发生异常是因为“FirstName”字段具有随着每次页面加载而变化的动态 ID。要解决此问题,请使用动态定位器策略,根据元素的属性而不是 ID 来查找元素。
更新的代码片段:
WebDriver driver = new FirefoxDriver(); driver.get("https://www.facebook.com"); driver.findElement(By.xpath("//input[@name='firstname' and contains(@class,'inputtext')]")).sendKeys("testing it ");
以上是为什么我在将文本发送到 Facebook 输入字段时收到'org.openqa.selenium.ElementNotInteractableException”?的详细内容。更多信息请关注PHP中文网其他相关文章!