有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

伙计们,早上请帮助我,当我运行测试时,它突然工作正常,它要求我弹出一个允许访问的窗口。为什么我不知道。首先,在再次运行测试并授予访问权限后,我取消了弹出窗口。从那时起,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) 个答案

  1. # 1 楼答案

    正如error所说,在您编写的路径中不存在可执行驱动程序

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

    PS:这不是一个有效的位置:

    E:\Workspace\xxxxxxxxx\‪‪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
    

    但是当执行测试用例时,有效位置被认为是:

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

    因此,在代码块IDE配置OS PATH变量中有一些配置,它们修改ChromeDriver二进制文件的绝对路径。解决这个问题会解决你的问题

  3. # 3 楼答案

    此问题由路径中的特殊字符引起-例如,某些文件夹名称包含“ą”或“ś”或空格

  4. # 4 楼答案

    将chrome驱动程序置于
    C:\Users\xxxxx\Downloads\chromedriver.exe
    并在代码System.setProperty("webdriver.chrome.driver","C:\Users\xxxxx\Downloads\chromedriver.exe");中设置相同的路径