java - 通过 Java 和 Selenium 启动 Internet Explorer 时出现 "OsProcess checkForError : CreateProcess error=193, %1 is not a valid Win32 application"

标签 java selenium internet-explorer selenium-webdriver selenium-iedriver

我正在 Eclipse (Java) 中使用 Selenium 驱动程序,我想创建一个驱动程序来测试 Internet Explorer 页面,但我不断收到此错误消息,我的驱动程序在 firefox 和 chrome 上运行良好,但在资源管理器中我无法测试任何内容

System.setProperty("webdriver.ie.driver", "C:\\Users\\emorales\\Documents\\MicrosoftWebDriver.exe");
//set webdriver to explorer  test
WebDriver driver = new InternetExplorerDriver();

//metodo para obtener url
driver.get("http://google.com");

System.out.println(driver.getTitle());

这是我的错误堆栈跟踪:

Jul 31, 2018 1:41:12 PM org.openqa.selenium.os.OsProcess checkForError
SEVERE: org.apache.commons.exec.ExecuteException: Execution failed (Exit value: -559038737. Caused by java.io.IOException: Cannot run program "C:\Users\emorales\Documents\MicrosoftWebDriver.exe" (in directory "."): CreateProcess error=193, %1 is not a valid Win32 application)
Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:32:14.902Z'
System info: host: 'PCPSE0015', ip: '10.1.0.151', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '10.0.2'
Driver info: driver.version: InternetExplorerDriver
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:193)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:179)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212)
    at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:221)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:213)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:150)
    at TEST3.main(TEST3.java:10)
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:13816/status] to be available after 20002 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)
    at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:188)
    ... 8 more
Caused by: java.util.concurrent.TimeoutException
    at java.base/java.util.concurrent.FutureTask.get(Unknown Source)
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:156)
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
    ... 9 more

最佳答案

此错误消息...

org.openqa.selenium.os.OsProcess checkForError
SEVERE: org.apache.commons.exec.ExecuteException: Execution failed (Exit value: -559038737. Caused by java.io.IOException: Cannot run program "C:\Users\emorales\Documents\MicrosoftWebDriver.exe" (in directory "."): CreateProcess error=193, %1 is not a valid Win32 application)

...意味着底层操作系统无法启动/生成新的WebBrowsering session ,即Internet Explorer浏览器 session 。

根据您的代码试验,您尝试将 WebDriver 实例(即驱动程序)转换为 InternetExplorerDriver() ,所以在 System.setProperty() 行内您需要提供相应 IEDriverServer 二进制文件的绝对路径(但不是MicrosoftWebDriver.exe)。

您可以从Index Page下载相关的IEDriverServer二进制版本并在您的代码中提及:

System.setProperty("webdriver.ie.driver", "C:\\path\\to\\IEDriverServer.exe");
//set webdriver to explorer  test
WebDriver driver = new InternetExplorerDriver();

//metodo para obtener url
driver.get("http://google.com");

System.out.println(driver.getTitle());

关于java - 通过 Java 和 Selenium 启动 Internet Explorer 时出现 "OsProcess checkForError : CreateProcess error=193, %1 is not a valid Win32 application",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51621782/

相关文章:

css - 溢出-y : auto breaking horizontal slider layout in IE

java - 在 GridPane FXML JavaFX 上添加动态按钮

java - JTable 行上的自定义导航

selenium - 在 selenium 中加速 find_elements_by_css_selector

java - assertEquals 在 selenium 中有效,但在 JAVA 中无效

internet-explorer - weblogic 的短暂 Diffie-Hellman 公钥错误

javascript - 如何在 IE 中的 "refresh"窗口没有窗口窃取焦点?

java - 在多模块项目中找不到 Artifact

Java 在第三个逗号上分割字符串

java - 如何在 Selenium Web 驱动程序中单击下一个 span 元素