java—在driver=new chromedriver()行上获取“invocationtargetexception”异常;

vptzau2j  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(321)

我要打开chromebrowser,拿到例外 "InvocationTargetException" . 几天前代码运行正常。这是我的密码

System.setProperty("webdriver.chrome.driver","D:\\Automation\\chromedriver_win32\\chromedriver.exe");
driver=new ChromeDriver();

在那条线上 "driver=new ChromeDriver();" 我得到了 "InvocationTargetException" 例外

zqdjd7g9

zqdjd7g91#

调用TargetException

invocationtargetexception是一个选中的异常,它封装了被调用的方法或构造函数引发的异常。通过使用反射调用方法,这是一个额外的抽象级别。反射层将任何异常封装在 InvocationTargetException . 在构建时提供并通过 getTargetException() 方法现在称为原因,可以通过 Throwable.getCause() 方法,以及前面提到的“遗留方法”

解决方案

最好的办法是把原因放在 InvocationTargetException 以获取原始异常。

try {

        System.setProperty("webdriver.chrome.driver","D:\\Automation\\chromedriver_win32\\chromedriver.exe");
        WebDriver driver=new ChromeDriver();

} catch (InvocationTargetException e) {
        // the real cause
        e.getCause().printStackTrace();

} catch (Exception e) {
        // generic exception handling
        e.printStackTrace();
}

最佳实践

根据最佳实践,请遵循以下准则:
升级chromedriver至当前chromedriver v74.0.3729.6版本。
保持chrome版本在ChromeV74级别(根据chromedriver v74.0.3729.6发行说明)
执行您的 @Test 作为非根用户。
总是调用 driver.quit()tearDown(){} 方法以优雅地关闭和销毁webdriver和web客户端示例。

相关问题