我正在使用Selenium和Java编写测试,我添加了下面的代码,看看我是否使用了错误的Chrome驱动程序,
try {
System.setProperty("webdriver.chrome.driver", "Chrome Drivers\\chromedriverLinux32");
} catch (Exception e) {
System.out.println(1);
e.printStackTrace();
}
但无论何时发生,测试都会抛出:
Jan 14, 2016 11:04:25 AM org.openqa.selenium.os.UnixProcess checkForErrorSEVERE: org.apache.commons.exec.ExecuteException: Execution failed (Exit value: -559038737. Caused by java.io.IOException: Cannot run program "C:\Users\sina\Desktop\WorkSpace\CowZAllPages\Chrome Drivers\chromedriverLinux32" (in directory "."): CreateProcess error=193, %1 is not a valid Win32 application)
但是捕捉确实发现了任何错误(System.out.println(1);
没有看到)。
答案 0 :(得分:2)
您分配Chrome路径时的代码没有任何问题。
系统从字面上获取该字符串。
您需要查看驱动程序初始化并在其中放置try-catch,以便捕获此类异常。
<强>更新强>
也许您需要修改此用例 - 从某种意义上说,您可以拥有3个ChromeDriver路径,并根据平台使用正确的路径。
System.getProperty("os.name")
这样,您将始终使用正确的ChromeDriver。
答案 1 :(得分:0)
错误的最后一部分表示&#34;不是有效的Win32应用程序&#34;。是&#34; Chrome驱动程序\ chromedriverLinux32&#34;一个.exe?您需要添加文件扩展名吗?