问题
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:\\Users\\xyz\\AppData\\Lo..., 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)
回答1:
This error message...
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
...implies that the GeckoDriver / FirefoxDriver was unable to interact with the desired element.
Solution
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();
However, another issue is the incompatibility between the version of the binaries you are using as follows:
- Your Selenium Client version is 3.12.0.
- Your JDK version is 1.8.0_51 which is ancient.
Solution
- Upgrade JDK to recent levels JDK 8u201.
- Execute your
@Test
.
回答2:
Try to use javascriptexecutor as shown sample code below,
JavascriptExecutor je = (JavascriptExecutor) driver;
je.executeScript("arguments[0].scrollIntoView(true);",driver.findElement(By.xpath("//a[@href='/admin/worker-summary']")));
回答3:
You can simply try following js to scroll the page.Enter Pixel asper your requirement to scroll page. Here I use 3000 Px to scroll page to mid
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,3000)");
来源:https://stackoverflow.com/questions/51025144/org-openqa-selenium-elementnotinteractableexception-element-a-class-bg-invers