webdriverextensions icon indicating copy to clipboard operation
webdriverextensions copied to clipboard

Test throws NoSuchWindowException when trying to get elements from driver

Open gunnee opened this issue 8 years ago • 6 comments

I am using webdriverextensions 3.0.1 with IE driver 2.53.1 (32 bit) on an IE 11. While running my test, the browser window gets opened, however it always stucks when trying to access elements on the page or getting the window handle. See the following example:

@RunWith(WebDriverRunner.class)
@InternetExplorer
public class TestTest {

  @Test
  public void test1() {
    Bot.open("https://www.google.de/");
    Bot.waitFor(5);
    String windowHandle = Bot.driver().getWindowHandle();
    Assert.assertNotNull(windowHandle);
  }
}

Exception:

org.openqa.selenium.NoSuchWindowException: Window is closed (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 39 milliseconds
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: '...', ip: '...', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_91'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, pageLoadStrategy=normal, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:30333/, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 0492aa23-3dc9-4da2-a906-30a97b0bcb1b
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:658)
	at org.openqa.selenium.remote.RemoteWebDriver.getWindowHandle(RemoteWebDriver.java:518)
	at com.zf.test.automation.TestTest.test1(TestTest.java:24)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at com.github.webdriverextensions.junitrunner.WebDriverRunner.runChild(WebDriverRunner.java:283)
	at com.github.webdriverextensions.junitrunner.WebDriverRunner.runChild(WebDriverRunner.java:59)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Any suggestions? Needless to say that this has been working before with Selenium version 2.X (and obviously with wde < 3). Many thanks in advance.

gunnee avatar Nov 08 '16 14:11 gunnee

Have you tried the 3.0 version of the Internet Explorer driver?

andidev avatar Nov 08 '16 17:11 andidev

Unfortunately, I get the same error with 3.0 (32bit). I thought the recommended version would be 2.53.1 (at least thats written on Selenium's web page).

gunnee avatar Nov 09 '16 07:11 gunnee

Oh is that so then don't use 3.0 version ;-) I'll have a look at it ASAP. Are you sure it is not at a selenium issue?

andidev avatar Nov 09 '16 16:11 andidev

This seems to be an selenium bug, I get the same issue when running plain vanilla selenium code:

public class TestTest {

    @Test
    public void test1() {
        System.setProperty("webdriver.ie.driver", "drivers/internetexplorerdriver-windows-32bit.exe");
        WebDriver driver = new InternetExplorerDriver();
        driver.get("https://www.google.de/");
        try {
            TimeUnit.SECONDS.sleep(5);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        String windowHandle = driver.getWindowHandle();
        Assert.assertNotNull(windowHandle);
    }

}

I also seem to get NoSuchWindowException when running webdriverextensions 2.9.2 (using selenium 2.53.1)

Are you sure this really worked for webdriverextensions < 3 ?

andidev avatar Nov 09 '16 21:11 andidev

You're correct. Selenium issue..

Answering your question, the code was running with the following combinations:

  • wde 2.3.0 - IEdriver 2.50 - Selenium 2.49.0
  • wde 2.7.0 - IEdriver 2.53 - Selenium 2.53.0

gunnee avatar Nov 10 '16 10:11 gunnee

opened up an issue on their project's page: https://github.com/SeleniumHQ/selenium/issues/3086

gunnee avatar Nov 10 '16 12:11 gunnee