【问题标题】:java.lang.IllegalStateException: The driver executable does not exist: while trying to execute tests through Selenium, ChromeDriver and Chromejava.lang.IllegalStateException:驱动程序可执行文件不存在:尝试通过 Selenium、ChromeDriver 和 Chrome 执行测试时
【发布时间】:2019-01-07 11:47:38
【问题描述】:

伙计们请在早上帮助我,它在我运行测试时突然工作正常,它要求我弹出一个允许访问的窗口。为什么我不知道。首先我取消了那个弹出窗口,然后我再次运行测试并授予访问权限。从那时起,Chrome 驱动程序未打开。

错误堆栈跟踪:

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)

【问题讨论】:

  • 您的单引号看起来像“剪切和粘贴”问题,现在找不到驱动程序。尝试将其移至没有空格的位置。
  • @radimpe 对不起,伙计!我不明白你在说什么。你能举例说明你的说法吗?
  • 按照我的说法,你必须重新安装chrome浏览器。

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


【解决方案1】:

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

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

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

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

【讨论】:

  • 好的,我试试重装驱动看看!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    此错误消息...

    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 变量 中有一些配置会修改 绝对路径ChromeDriver 二进制文件的 /em>。解决此问题将解决您的问题。

    【讨论】:

    • 谢谢伙计!明白了!
    • @koushick 很高兴能为您提供帮助!!!如果这个/任何答案对您/对您有帮助,对未来的读者有帮助,请为答案投票。
    • 我可以知道如何检查是因为这个问题引起的吗?
    • @koushick 由于这个问题,JVM 正在寻找 ChromeDriver 的错误位置,并且在失败时会抛出错误,因为 IllegalStateException
    • @koushick 很难猜出 os 路径 E:\Workspace\xxxxxxxxx\...所需的 os 路径 C:\Users\xxxxx\Downloads\chromedriver.exe。很可能是项目中配置文件中的一些配置。
    【解决方案4】:

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

    【讨论】:

    • 最好提供完整的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2014-11-01
    • 2015-04-18
    • 2017-04-08
    • 2014-06-08
    相关资源
    最近更新 更多