org.openqa.selenium.ElementNotInteractableException: 元素 尝试单击按钮时无法滚动到视图中
尝试单击按钮时无法滚动到视图中" src="/default/index/img?u=aHR0cHM6Ly9wMi5waXFzZWxzLmNvbS9wcmV2aWV3LzMxMC85OTYvMS9kZXNlcnQtZHJ5LWR1bmUtZHVuZXMuanBn&w=245&h=&w=700"/>
我正在使用带有 FF 60.0 的 Gecko 驱动程序 selenium java.以前我的代码工作正常,但突然之间,每次我运行它时,它都会给我一个错误,因为当我尝试单击按钮时无法滚动到视图
.下面是我的代码,我尝试使用 Thread.sleep(5000)
或隐式等待,但没有任何效果.我被困在这里.
I'm working with gecko driver selenium java with FF 60.0. Previously my code was working properly, but all of sudden, now every time I run it, it gives me an error as could not be scrolled into view
while I'm trying to click a button.
below is my code, I tried with Thread.sleep(5000)
or implicit wait but nothing is working.I'm stuck here.
public void goToWorkerSummary() throws InterruptedException {
WebElement btnWorkerSummary = driver.findElement(By.xpath("//a[@href='/admin/worker-summary']"));
//Thread.sleep(5000);//wait.until(ExpectedConditions.visibilityOf(btnWorkerSummary).click();
btnWorkerSummary.click();
}
到目前为止的代码可以工作,但是一旦到达这里,就会显示上述错误.下面是错误片段.
the Code up to this points works but as soon as it reaches here, it is showing the above error. below is the error snippet.
Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: Element <a class="bg-inverse text-white dropdown-item" href="/admin/worker-summary"> could not be scrolled into view
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:03.216Z'
System info: host: 'CPU-38', ip: '192.168.0.55', os.name: 'Windows 8', os.arch: 'x86', os.version: '6.2', java.version: '1.8.0_51'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 60.0.2, javascriptEnabled: true, moz:accessibilityChecks: false, moz:headless: false, moz:processID: 2480, moz:profile: C:UsersxyzAppDataLo..., moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: XP, platformName: XP, platformVersion: 6.2, rotatable: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}}
Session ID: 08c08933-06f6-480c-88c9-9d7ab718c2c8
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:276)
at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:83)
此错误信息...
Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: Element <a class="bg-inverse text-white dropdown-item" href="/admin/worker-summary"> could not be scrolled into view
...暗示 GeckoDriver/FirefoxDriver 无法与所需元素交互.
...implies that the GeckoDriver / FirefoxDriver was unable to interact with the desired element.
一旦您找到元素 btnWorkerSummary 继续调用 click()
而不是 ExpectedConditions 作为visibilityOf
你需要使用 elementToBeClickable()
如下:
Once you locate the element btnWorkerSummary moving ahead as you are invoking click()
instead of ExpectedConditions as visibilityOf
you need to use elementToBeClickable()
as follows:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@href='/admin/worker-summary']"))).click();
但是,另一个问题是您使用的二进制文件版本之间的不兼容,如下所示:
- 您的 Selenium Client 版本是 3.12.0.
- 您的JDK 版本是1.8.0_51,这是古老的.
- Your Selenium Client version is 3.12.0.
- Your JDK version is 1.8.0_51 which is ancient.
- 将 JDK 升级到最新级别 JDK 8u201.
- 执行您的
@Test
.
- Upgrade JDK to recent levels JDK 8u201.
- Execute your
@Test
.