Try-Catch 不会从"System.setProperty"中捕获错误



我正在使用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:UserssinaDesktopWorkSpaceCowZAllPagesChrome DriverschromedriverLinux32" (in directory "."): CreateProcess error=193, %1 is not a valid Win32 application)

但是捕获确实捕获了任何错误(System.out.println(1);看不到)。

您的代码在分配Chrome路径的方式上没有任何问题。系统从字面上获取该字符串。
您需要查看驱动程序初始化并在那里放置一个 try-catch,以便捕获此类异常。

更新:
也许您需要修改此用例 - 从某种意义上说,您可以拥有 3 个 ChromeDriver 路径并根据平台使用正确的路径。

System.getProperty("os.name")

这样,您将始终使用正确的ChromeDriver。

最新更新