Jos Theeuwen
Jos Theeuwen

Reputation: 909

org.openqa.selenium.remote.SessionNotFoundException error running IE10 with IEDriverServer 32bit when started from Jenkins

I'm trying to start IE10 with IEDriverServer 32bit on a VM using Jenkins.

It works fine when I run it on the VM itself with the IEDriverServer 32bit. It also works fine if I use the IEDriverServer 64bit and call it from Jenkins. But when I use the IEDriverServer 32bit and start it from Jenkins it fails with the following error:

Running tests.generated.LVATC01TG01_IE10_Test
I 2013-11-01 11:03:02:772 server.cc(53) Starting WebDriver server on port: '37042' on host: ''
D 2013-11-01 11:03:02:773 server.cc(104) Mongoose ACL is -0.0.0.0/0,+127.0.0.1
Started InternetExplorerDriver server (32-bit)
2.37.0.0
Listening on port 37042
Log level is set to DEBUG
D 2013-11-01 11:03:03:329 server.cc(239) Command: GET /status {}
D 2013-11-01 11:03:03:330 server.cc(308) Response: {"sessionId":"","status":0,"value":{"build":{"version":"2.37.0.0"},"os":{"arch":"x64","name":"windows","version":"6.1.7601"}}}

D 2013-11-01 11:03:03:513 server.cc(239) Command: POST /session {"desiredCapabilities":{"platform":"WINDOWS","ensureCleanSession":true,"browserName":"internet explorer","logLevel":"DEBUG","version":""}}
D 2013-11-01 11:03:03:514 IESession.cpp(43) Mutex acquired for session initalization
D 2013-11-01 11:03:03:520 IESession.cpp(105) Releasing session initialization mutex
D 2013-11-01 11:03:03:520 command.cc(33) Raw JSON command: { "command" : "newSession", "locator" : { }, "parameters" : {"desiredCapabilities":{"platform":"WINDOWS","ensureCleanSession":true,"browserName":"internet explorer","logLevel":"DEBUG","version":""}} }
W 2013-11-01 11:03:03:523 BrowserFactory.cpp(795) Couldn't find IE version for executable %ProgramFiles(x86)%\Internet Explorer\ielowutil.exe, falling back to -1
D 2013-11-01 11:03:03:529 BrowserFactory.cpp(66) Ignoring Protected Mode Settings: 0
D 2013-11-01 11:03:03:529 BrowserFactory.cpp(69) Checking validity of Protected Mode settings.
D 2013-11-01 11:03:03:529 BrowserFactory.cpp(846) Detected IE version: -1, detected Windows version: 6
D 2013-11-01 11:03:03:531 BrowserFactory.cpp(72) Has Valid Protected Mode Settings: 1
D 2013-11-01 11:03:03:555 BrowserFactory.cpp(168) Starting IE using the IELaunchURL API
W 2013-11-01 11:03:03:578 BrowserFactory.cpp(173) -2147024894 [The system cannot find the file specified.]: Error using IELaunchURL to start IE
W 2013-11-01 11:03:03:578 IECommandExecutor.cpp(627) Unable to launch browser, received NULL process ID
W 2013-11-01 11:03:03:578 response.cc(69) Error response has status code 6 and message 'Unexpected error launching Internet Explorer. IELaunchURL() returned 80070002 for URL 'http://localhost:37042/'' message
W 2013-11-01 11:03:03:578 IECommandExecutor.cpp(516) Unable to get current browser
D 2013-11-01 11:03:03:583 IESession.cpp(146) Executor shutdown successful!
D 2013-11-01 11:03:03:583 IESession.cpp(154) Posting thread shutdown message
D 2013-11-01 11:03:03:583 IESession.cpp(157) Starting wait for thread completion
D 2013-11-01 11:03:03:583 IESession.cpp(160) Waiting for thread to end returned 4294967295
D 2013-11-01 11:03:03:583 server.cc(308) Response: {"sessionId":"47dfd98f-f9be-4b95-810d-4428c3f98af1","status":6,"value":{"message":"Unexpected error launching Internet Explorer. IELaunchURL() returned 80070002 for URL 'http://localhost:37042/'"}}

D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(435) Shutdown message received
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(131) Entering IECommandExecutor::OnDestroy
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(133) Clearing managed element cache
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(135) Closing input manager
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(137) Closing proxy manager
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(139) Closing browser factory
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(141) Posting quit message
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(143) Leaving IECommandExecutor::OnDestroy
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(437) Returned from DestroyWindow()
D 2013-11-01 11:03:03:583 IECommandExecutor.cpp(446) Exited IECommandExecutor thread message loop
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.275 sec <<< FAILURE! - in tests.generated.LVATC01TG01_IE10_Test
lVA(tests.generated.LVATC01TG01_IE10_Test)  Time elapsed: 2.089 sec  <<< ERROR!
org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. IELaunchURL() returned 80070002 for URL 'http://localhost:37042/' (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.37 seconds
Build info: version: '2.37.1', revision: 'a7c61cbd68657e133ae96672cf995890bad2ee42', time: '2013-10-21 09:08:07'
System info: host: 'win7ietest3', ip: '10.187.160.139', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_40'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:151)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:201)
    at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:224)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:214)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:184)
    at common.Common.startIE(Common.java:181)
    at common.Common.startDriver(Common.java:95)
    at tests.generated.LVATC01TG01_IE10_Test.setUp(LVATC01TG01_IE10_Test.java:25)

The method for setting up the driver:

/**
 * Setting up IE driver
 */
private static void startIE()
{
    File file = new File(DRIVER_DIR + "IEDriverServer_Win32_2.37.0.exe");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());

    DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
    capabilities.setCapability("logLevel", "DEBUG");

    driver = new InternetExplorerDriver(capabilities);
}

I've looked around for solutions, but most solutions are related to setting the protected mode correctly in IE (which I have, because the 64bit driver version works).

I can't use the 64bit driver version because of known issues (i.e. slow sendkeys). Any help would be greatly appreciated.

Jos

Upvotes: 2

Views: 13097

Answers (5)

StackRover
StackRover

Reputation: 587

If the Appium does not receive next command within 60 seconds it shuts down.

[BaseDriver] Shutting down because we waited 60 seconds for a command
[debug] [AndroidDriver] Shutting down Android driver

In my case, my automation was in a loop for more than 60 secs, for the app to finish it's task, which had network dependency.

You can avoid this by adding 'newCommandTimeout' to the capabilities, to increase timeout duration, like so: capabilities.setCapability("newCommandTimeout", 90); //or seconds

Or you can add try / catch and log more meaningful message.

Upvotes: 1

Akshay Sharma
Akshay Sharma

Reputation: 1

package appium;

import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.*;
import org.testng.*;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileBrowserType;
import io.appium.java_client.remote.MobileCapabilityType;

public class My {

    public static void main(String[] args) throws MalformedURLException {

        AndroidDriver driver;

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "Nexus 5");
        capabilities.setCapability("platformName", "android");
        capabilities.setCapability("platformVersion", "5.0.1");


        capabilities.setCapability("appPackage","com.android.calculator2");
        capabilities.setCapability("appActivity","com.android.calculator2.Calculator");

        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);

        driver.quit();

    }

}

Upvotes: 0

gom
gom

Reputation: 11

Our test execution is triggered from our build systems via ssh

e.g.

ssh [email protected] "export JAVA_HOME=\"C:/Program Files/Java/jre1.8.0_45\"; cd c:/testing; mvn -PrunSystemTests -Dsys.testsuite=SanitySuite.xml -DconfigFile=/ie.properties -DsuiteName=SANITY test"

All tests fail with

... org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. IELaunchURL() returned HRESULT 80070002 ('The system cannot find the file specified.') for URL 'http://localhost:22087/' (WARNING: The server did not provide any stacktrace information) ...

The issue was solved by setting environment variable ProgramW6432 before running the tests

e.g.

ssh [email protected] "export JAVA_HOME=\"C:/Program Files/Java/jre1.8.0_45\"; export ProgramW6432=\"C:\Program Files\"; cd c:/testing; mvn -PrunSystemTests -Dsys.testsuite=SanitySuite.xml -DconfigFile=/ie.properties -DsuiteName=SANITY test"

Upvotes: 1

Michael Herrmann
Michael Herrmann

Reputation: 5013

This problem sometimes occurs for me, too. When it does, a mysterious directory called %SystemDrive% (really with this name, without any expansion of environment variables) is created in my working directory. For future reference, this directory contains the following folders and files:

* %SystemDrive%/
  * ProgramData/
    * Microsoft/
      * Windows/
        * Caches/
          * {6AF0698E-D558-4F6E-9B3C-3716689AF493}.2.ver0x0000000000000001.db
          * {DDF571F2-BE98-426D-8288-1A9A39C3FDA2}.2.ver0x0000000000000001.db
          * cversions.2.db

Deleting this %SystemDrive% folder seems to solve the problem for me.

Upvotes: 0

Olmo Rigolo
Olmo Rigolo

Reputation: 31

I have the same issue.

I found out that the root error is, that IEDriver does not find Internet Explorer.exe.

I tried:

  • log in on the Jenkins machine with the user that runs jenkins and execute the tests manually from command line within the jenkins workspace. (on my windows machine, go to C:\Program Files (x86)\Jenkins\workspace\MYPROJECT\, execute mvn integration-test): execution works!

  • Change the Strategy from PerScenarioWebDriverSteps to PerStoriesWebDriverSteps and run on jenkins: got the same error.

  • Also checked IE ProtectionMode settings. Everything is ok.

  • Run tests with firefox via jenkins: works fine.

  • Added capabilities: capabilities.setCapability("ie.forceCreateProcessApi", true); and added a Registration value on the jenkins machine:

Location: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main
Name: TabProcGrowth
Type: REG_DWORD
Value: 0     
Value Type: Decimal

The browser process ID starts this time, but then the whole execution hangs here:

BrowserFactory.cpp(207) Starting IE using the CreateProcess API
BrowserFactory.cpp(221) IE starting command line is: 'C:\Program Files (x86)\Internet Explorer\ielowutil.exe http://localhost:9164/'.
BrowserFactory.cpp(122) IE launched successfully with process ID 5452
BrowserFactory.cpp(128) Process with ID 5452 is executing ielowutil.exe
BrowserFactory.cpp(282) Entering BrowserFactory::AttachToBrowser

Did you find a solution?

Upvotes: 0

Related Questions