我尝试使用Jenkins在VM上使用IEDriverServer 32bit启动IE10。
当我使用IEDriverServer 32bit在VM上运行它时,它工作正常。如果我使用IEDriverServer 64bit并从Jenkins调用它,它也可以正常工作。但是,当我使用IEDriverServer 32位并从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位驱动程序版本。任何帮助将不胜感激。
何
答案 0 :(得分:1)
我们的测试执行是通过ssh
从我们的构建系统触发的e.g。
ssh Administrator@some.host.com“export JAVA_HOME = \”C:/ Program Files / Java / jre1.8.0_45 \“; cd c:/ testing; mvn -PrunSystemTests -Dsys.testsuite = SanitySuite.xml -DconfigFile = / ie.properties -DuxiteName = SANITY test“
所有测试均以
失败... org.openqa.selenium.remote.SessionNotFoundException:启动Internet Explorer时出现意外错误。 IELaunchURL()为URL“http://localhost:22087/”返回了HRESULT 80070002('系统找不到指定的文件。')(警告:服务器未提供任何堆栈跟踪信息) ...
通过在运行测试之前设置环境变量ProgramW6432来解决该问题
e.g。
ssh Administrator@some.host.com“export JAVA_HOME = \”C:/ Program Files / Java / jre1.8.0_45 \“;导出ProgramW6432 = \”C:\ Program Files \“; cd C:/测试; mvn -PrunSystemTests -Dsys.testsuite = SanitySuite.xml -DconfigFile = / ie.properties -DsuiteName = SANITY test“
答案 1 :(得分:1)
如果Appium在60秒内没有收到下一个命令,它就会关闭。
[BaseDriver] Shutting down because we waited 60 seconds for a command
[debug] [AndroidDriver] Shutting down Android driver
在我的情况下,我的自动化循环超过60秒,以便应用程序完成它的任务,它具有网络依赖性。
您可以通过添加&quot; newCommandTimeout&#39;来避免这种情况。能力,增加超时持续时间,如下:
capabilities.setCapability("newCommandTimeout", 90); //or seconds
或者您可以添加try / catch并记录更有意义的消息。
答案 2 :(得分:0)
我有同样的问题。
我发现根错误是,IEDriver找不到Internet Explorer.exe。
我试过了:
使用运行jenkins的用户登录Jenkins计算机,并从jenkins工作区内的命令行手动执行测试。 (在我的Windows机器上,转到C:\ Program Files(x86)\ Jenkins \ workspace \ MYPROJECT \,执行mvn integration-test):执行有效!
将策略从 PerScenarioWebDriverSteps 更改为 PerStoriesWebDriverSteps 并在jenkins上运行:出现同样的错误。
还检查了IE ProtectionMode设置。一切都好。
使用firefox通过jenkins运行测试:工作正常。
添加了功能:capabilities.setCapability("ie.forceCreateProcessApi", true);
并在jenkins机器上添加了注册值:
Location: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main Name: TabProcGrowth Type: REG_DWORD Value: 0 Value Type: Decimal
此时浏览器进程ID启动,但整个执行在此处挂起:
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
您找到了解决方案吗?
答案 3 :(得分:0)
这个问题有时也会发生在我身上。如果是这样的话,在我的工作目录中会创建一个名为%SystemDrive%
的神秘目录(实际上是这个名称,没有任何环境变量的扩展)。为了将来参考,此目录包含以下文件夹和文件:
* %SystemDrive%/
* ProgramData/
* Microsoft/
* Windows/
* Caches/
* {6AF0698E-D558-4F6E-9B3C-3716689AF493}.2.ver0x0000000000000001.db
* {DDF571F2-BE98-426D-8288-1A9A39C3FDA2}.2.ver0x0000000000000001.db
* cversions.2.db
删除此%SystemDrive%
文件夹似乎可以解决我的问题。
答案 4 :(得分:0)
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();
}
}