代码之家  ›  专栏  ›  技术社区  ›  koushick

Java.Lang.ILLaltStaExeExt:驱动程序可执行文件不存在:当试图通过SeleX、ChromiDrand和Chrome执行测试时

  •  0
  • koushick  · 技术社区  · 8 年前

    伙计们,早上帮我吧,当我运行测试时,它突然工作正常,它要求我弹出一个允许访问的窗口。为什么我不知道。首先,我取消了弹出窗口,然后再次运行测试并授予访问权限。从那时起,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)
    
    3 回复  |  直到 8 年前
        1
  •  2
  •   undetected Selenium    8 年前

    此错误消息。。。

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

    …意味着 虚拟机 无法找到 铬河 在代码中提到的配置的有效位置。

    根据你的代码测试,你已经提到了 铬河 作为:

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

    但是当你 测试用例 执行的有效位置被视为:

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

    所以,在你的 代码块 IDE配置 OS路径变量 它修改了 绝对路径 铬河 二元的。解决这个问题会解决你的问题。

        2
  •  2
  •   Andrei Suvorkov    8 年前

    正如错误所说的,在您编写的路径中没有可执行的驱动程序。

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

    附言: 此位置无效:

    E:\Workspace\xxxxxxxxx\‪‪C:\Users\xxxxx\Downloads\chromedriver.exe
    
        3
  •  2
  •   irfan    8 年前

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

        4
  •  0
  •   user11754355    7 年前

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