【问题标题】:Not able to create ChromeDriver object无法创建 ChromeDriver 对象
【发布时间】:2017-04-01 03:19:08
【问题描述】:

我的 Selenium 代码失败。当我运行代码时,一个空白的 chrome 浏览器正在打开,但之后抛出错误,谁能帮帮我..

相同的代码在 1 个月前运行良好。

用于创建 ChromeDriver 的代码

System.setProperty("webdriver.chrome.driver", "C:\\Windows\\chromedriver.exe");
    driver1 = new ChromeDriver(); //throwing the error here
    driver1.manage().window().maximize();
    driver1.manage().timeouts().pageLoadTimeout(60 * 5, TimeUnit.SECONDS);

控制台

Starting ChromeDriver 2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4) on port 46687
Only local connections are allowed.
Apr 01, 2017 8:33:16 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.SocketException: Connection reset
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'XXX', ip: 'XXX.XXX.X.XXX', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_101'
Driver info: driver.version: ChromeDriver
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:91)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:141)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:174)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:163)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:120)
    at com.led.scrapper.main.Starter.main(Starter.java:36)
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:209)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
    at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155)
    at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
    at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
    at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:142)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:88)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:108)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:64)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    ... 8 more

Maven 依赖

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.0.1</version>
</dependency>

Chrome 驱动版本

2.21

【问题讨论】:

  • 请提供您使用的chrome浏览器和selenium版本,以便我们解答
  • 您是否检查过是否有另一个 chromedriver 实例正在运行?
  • @socalcheesehead 没有其他实例正在运行。它与 Windows 10 有关吗?
  • 我只是建议这样做,因为有时如果有另一个实例正在运行,您会看到该错误或绑定错误。也许是一个失控的过程?

标签: java selenium selenium-chromedriver


【解决方案1】:

查看您的错误信息后,我了解到您使用的是旧版本的 chrome 驱动程序。

如果您使用的是最新的 chrome 浏览器版本,您需要从下面提到的 url 获取最新的 chrome 驱动程序。

https://chromedriver.storage.googleapis.com/index.html

在我的机器上,chrome 驱动程序 2.27 可以在 chrome 浏览器版本 56 上正常工作。

如果您有任何疑问,请告诉我

【讨论】:

  • 告诉我您尝试了哪个版本的 chrome 浏览器和 chrome 驱动程序?
  • Chrome浏览器版本为56.xx,Chrome驱动为2.27
  • 确切地说..这是chrome浏览器版本.. 57.0.2987.133
  • 终于我解决了这个问题..新旧驱动放在同一个目录中,名称为chromedriver.exechromedriver_.exe,删除chromedriver_.exe后它工作了..看起来很奇怪,但是它解决了我的问题
【解决方案2】:

我遇到了同样的问题。

问题是我在使用

Chrome Driver 2.9
Chrome version 60
selenium version 3.4

我的印象是 2.9 是 Chrome 驱动程序的最新版本,但是当我使用 2.7 时,它得到了解决。

现在我正在使用

Chrome Driver 2.7
Chrome version 60
selenium version 3.4

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 2013-10-22
    • 2017-10-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多