java.lang.IllegalStateException:驱动程序可执行文件不存在:尝试通过Selenium,ChromeDriver和Chrome执行测试时

时间:2018-07-31 07:03:36

标签: java google-chrome selenium selenium-webdriver selenium-chromedriver

伙计们,请在早晨运行良好的早晨帮助我,当我运行测试时,它要求我弹出一个窗口以允许访问。为什么我不知道。首先,我取消了该弹出窗口,然后再次运行“测试并授予访问权限”。从那时起,Chrome驱动程序无法打开。

img

错误堆栈跟踪:

java.lang.IllegalStateException: The driver executable does not exist: E:\Workspace\xxxxxxxxx\‪‪C:\Users\xxxxx\Downloads\chromedriver.exe
at com.google.common.base.Preconditions.checkState(Preconditions.java:199)
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:121)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:116)
at org.openqa.selenium.chrome.ChromeDriverService.access$0(ChromeDriverService.java:1)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:296)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:116)
at Lead.FinalTest.beforeTest(FinalTest.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
at org.testng.TestRunner.beforeRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:616)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
at org.testng.SuiteRunner.run(SuiteRunner.java:261)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.run(TestNG.java:1048)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

4 个答案:

答案 0 :(得分:2)

正如错误所述,在您编写的路径中不存在可执行驱动程序。

  1. 请确保该驱动程序仍存在于路径中。
  2. 尝试替换另一个文件夹中的驱动程序(如果存在)并更改代码中的路径
  3. 重新安装驱动程序并在代码中设置新路径

PS: :这不是有效位置:

E:\Workspace\xxxxxxxxx\‪‪C:\Users\xxxxx\Downloads\chromedriver.exe

答案 1 :(得分:2)

将chrome驱动程序放在
C:\Users\xxxxx\Downloads\chromedriver.exe
并在代码System.setProperty("webdriver.chrome.driver","C:\Users\xxxxx\Downloads\chromedriver.exe");

中设置相同的路径

答案 2 :(得分:2)

此错误消息...

java.lang.IllegalStateException: The driver executable does not exist: E:\Workspace\xxxxxxxxx\‪‪C:\Users\xxxxx\Downloads\chromedriver.exe

...表示根据代码中提到的配置, JVM 无法在有效位置找到 ChromeDriver

根据您的代码试用,您提到 ChromeDriver 的位置为:

C:\Users\xxxxx\Downloads\chromedriver.exe

但是当您的 testcase 执行后,有效位置被视为:

E:\Workspace\xxxxxxxxx\‪‪C:\Users\xxxxx\Downloads\chromedriver.exe

因此,在代码块 IDE配置 OS PATH变量中有一些配置可以修改绝对路径< / em>的 ChromeDriver 二进制文件。解决此问题将解决您的问题。

答案 3 :(得分:0)

此问题是由您路径中的特殊字符引起的-f.e.某些文件夹名称包含“±”或“ś”或空格