【问题标题】:Unable to open Google chrome using selenium webdriver [duplicate]无法使用 selenium webdriver 打开 Google chrome [重复]
【发布时间】:2019-03-02 16:31:06
【问题描述】:

我正在尝试使用 selenium webdriver 打开谷歌浏览器,但出现以下错误:

Starting ChromeDriver 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb) on port 18885
Only local connections are allowed.
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot find Chrome binary
  (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 6.1.7600 x86) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 110 milliseconds
Build info: version: '3.141.5', revision: 'd54ebd709a', time: '2018-11-06T11:58:41'
System info: host: 'ADMIN-PC', ip: '192.168.244.1', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_191'
Driver info: driver.version: ChromeDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
    at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$errorHandler$0(JsonWireProtocolResponse.java:54)
    at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
    at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:125)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at demo.main(demo.java:9)

什么都试过了,没用。

下面是我的程序:

public class demo {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver","C:\\Users\\Admin\\Desktop\\Internal job application\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("http://google.com");
    }
}

在需要采取什么行动方面需要帮助

【问题讨论】:

  • 你的机器上安装了 chrome 吗?
  • chrome浏览器安装位置是什么

标签: selenium selenium-webdriver


【解决方案1】:

您收到该错误是因为您的 chrome 浏览器未安装在默认安装目录中,或者 selenium 无法找到可执行的 chrome 浏览器文件。

要解决这个问题,您需要告诉程序您的 chrome 浏览器可执行文件所在的位置,为此您可以使用 ChromeOptions 类,如下所示:

public class demo {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver","C:\\Users\\Admin\\Desktop\\Internal job application\\chromedriver.exe");
        ChromeOptions options = new ChromeOptions();
        options.setBinary("/path/to/chrome/binary"); // Provide absolute executable chrome browser path with name and extension here
        WebDriver driver = new ChromeDriver(options);
        driver.get("http://google.com");
    }
}

希望对你有帮助……

【讨论】:

  • 再次尝试发现同样的错误。
  • 在端口 22906 上启动 ChromeDriver 2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb) 只允许本地连接。线程“主”org.openqa.selenium.WebDriverException 中的异常:未知错误:/path/to/chrome/binary 处没有 chrome 二进制文件(驱动程序信息:chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT
  • 在你的系统中搜索chrome.exe,并在options.setBinary("/path/to/chrome/binary");这一行用`/path/to/chrome/binary`替换那个文件路径。
【解决方案2】:
  1. 默认在目的地安装 Chrome 浏览器。
  2. 在这一行:

    System.setProperty("webdriver.chrome.driver", "目标文件"

destination to file 不是安装的 Chrome 浏览器的目的地,而是下载的here chrome 驱动程序的目的地。

【讨论】:

    猜你喜欢
    • 2018-08-25
    • 2020-06-26
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 2019-06-18
    • 2014-11-04
    • 2015-07-27
    相关资源
    最近更新 更多