【发布时间】:2022-06-20 13:36:02
【问题描述】:
最近,我已将我的 Selenium 版本从 2.53 升级到 4.1.2,以便在 MS EDGE IE11 上测试我们的应用程序。但是当我们使用简单的 Selenium .clear() 清除任何 TextBox 字段时,我们一直面临着问题。虽然,它清除了相应的,但也抛出了异常。
还有其他人在使用 Selenium-4.1.2 时遇到过类似问题吗?
例外:
org.openqa.selenium.InvalidElementStateException:JavaScript 错误 遇到清除元素。司机认为这是 因为该元素是隐藏的、禁用的或只读的,它不能 是清除元素。构建信息:版本:'4.1.2',修订: '9a5a329c5a' 系统信息:os.name:'Windows 10',os.arch:'amd64', os.version: '10.0', java.version: '1.8.0_222' 驱动信息: org.openqa.selenium.ie.InternetExplorerDriver 命令: [69d06b0b-b468-455b-9d3c-24626ad40e16,clearElement {id=2bb89cb8-5d24-4dd8-8e3a-be8fa7e1272e}] 能力 {acceptInsecureCerts:假,浏览器名称:Internet Explorer, browserVersion:11,javascriptEnabled:true,pageLoadStrategy:正常, 平台:WINDOWS,平台名称:WINDOWS,代理:Proxy(), se:ieOptions: {browserAttachTimeout: 0, elementScrollBehavior: 0, enablePersistentHover: true, ie.browserCommandLineSwitches: , ie.edgechromium: false, ie.edgepath: , ie.ensureCleanSession: false, ie.fileUploadDialogTimeout: 3000, ie.forceCreateProcessApi: false, 忽略保护模式设置:假,忽略缩放设置:假, initialBrowserUrl: http://localhost:54726/, nativeEvents: true, requireWindowFocus: false}, setWindowRect: true, strictFileInteractability:false,超时:{implicit:0,pageLoad: 300000,脚本:30000},unhandledPromptBehavior:解雇并通知} 元素:[[InternetExplorerDriver:WINDOWS 上的 Internet Explorer (69d06b0b-b468-455b-9d3c-24626ad40e16)] -> id: userid] 会话 ID: 69d06b0b-b468-455b-9d3c-24626ad40e16 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200) 在 org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133) 在 org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:53) 在 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184) 在 org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167) 在 org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:558) 在 org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:251) 在 org.openqa.selenium.remote.RemoteWebElement.clear(RemoteWebElement.java:126)
期望:我们期望clear() 应该清除该字段而不抛出任何异常。
【问题讨论】:
-
我试图重现这个问题但失败了。如果可能,请提供更多详细信息,例如
iedriver的版本和简单代码。我tested with google,如您所见,它运行良好。其他网站是否也会出现此问题? -
IEDriver 版本:4,我在 MS EDGE IE11 上使用 Java-Selenium 和 Selenium 版本进行测试:4.1.2
-
可以看到我测试的是同一个版本,唯一不同的是java版本。如果可能,请提供重现问题的代码示例,这将有助于解决问题。正如其他成员所提到的,您可以尝试编写代码以在
clear()之前等待页面元素加载。
标签: selenium selenium-webdriver internet-explorer-11 webdriverwait selenium-iedriver