我正在尝试使用 Jenkins 在 VM 上使用 IEDriverServer 32 位启动 IE10。
当我使用 IEDriverServer 32 位在 VM 本身上运行它时,它工作正常。如果我使用 IEDriverServer 64bit 并从 Jenkins 调用它,它也可以正常工作。但是当我使用 IEDriverServer 32bit 并从 Jenkins 启动它时,它会失败并出现以下错误:
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)
设置驱动的方法:
/**
* 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);
}
我四处寻找解决方案,但大多数解决方案都与在 IE 中正确设置保护模式有关(我有,因为 64 位驱动程序版本有效)。
由于已知问题(即缓慢的发送键),我无法使用 64 位驱动程序版本。任何帮助将不胜感激。
乔斯