urllib3.exceptions.ProtocolError: ('Connection aborted.', error(10054, '一个现有的连接被远程主机强行关闭')) [英] urllib3.exceptions.ProtocolError: ('Connection aborted.', error(10054, 'An existing connection was forcibly closed by the remote host'))

查看:357
本文介绍了urllib3.exceptions.ProtocolError: ('Connection aborted.', error(10054, '一个现有的连接被远程主机强行关闭'))的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 Python Selenium chromedriver 在 chrome 上打开一个网站.Chrome 浏览器正在打开(有警告),但 url 未打开.

I am trying to open a website on chrome using Python Selenium chromedriver. Chrome browser is opening (with warnings) and the url is not opening.

版本详情:Chrome:68.0.3440.106硒:3.14.0铬驱动程序:2.20蟒蛇:2.7

Version details : Chrome : 68.0.3440.106 selenium : 3.14.0 chromedriver : 2.20 python : 2.7

我正在使用以下代码:

import time
from selenium import webdriver
import selenium
driver = webdriver.Chrome("C:/Python27/chromedriver.exe")
driver.get("https://vancouver.craigslist.ca/")
print(driver.title)
time.sleep(8)
driver.quit()

我收到以下错误:

C:Userssohil7777PycharmProjects	emp.pyvenvScriptspython.exe C:/Users/sohil7777/.PyCharmCE2018.2/config/scratches/scratch.py
Traceback (most recent call last):
  File "C:/Users/sohil7777/.PyCharmCE2018.2/config/scratches/scratch.py", line 6, in <module>
    driver = webdriver.Chrome("C:/Python27/chromedriver.exe")
  File "C:Python27libsite-packagesseleniumwebdriverchromewebdriver.py", line 75, in __init__
    desired_capabilities=desired_capabilities)
  File "C:Python27libsite-packagesseleniumwebdriver
emotewebdriver.py", line 156, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:Python27libsite-packagesseleniumwebdriver
emotewebdriver.py", line 251, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:Python27libsite-packagesseleniumwebdriver
emotewebdriver.py", line 318, in execute
    response = self.command_executor.execute(driver_command, params)
  File "C:Python27libsite-packagesseleniumwebdriver
emote
emote_connection.py", line 375, in execute
    return self._request(command_info[0], url, body=data)
  File "C:Python27libsite-packagesseleniumwebdriver
emote
emote_connection.py", line 397, in _request
    resp = self._conn.request(method, url, body=body, headers=headers)
  File "C:Python27libsite-packagesurllib3
equest.py", line 72, in request
    **urlopen_kw)
  File "C:Python27libsite-packagesurllib3
equest.py", line 150, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
  File "C:Python27libsite-packagesurllib3poolmanager.py", line 322, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "C:Python27libsite-packagesurllib3connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:Python27libsite-packagesurllib3util
etry.py", line 367, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "C:Python27libsite-packagesurllib3connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "C:Python27libsite-packagesurllib3connectionpool.py", line 377, in _make_request
    httplib_response = conn.getresponse(buffering=True)
  File "C:Python27Libhttplib.py", line 1121, in getresponse
    response.begin()
  File "C:Python27Libhttplib.py", line 438, in begin
    version, status, reason = self._read_status()
  File "C:Python27Libhttplib.py", line 394, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "C:Python27Libsocket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
urllib3.exceptions.ProtocolError: ('Connection aborted.', error(10054, 'An existing connection was forcibly closed by the remote host'))

我错过了什么吗?非常感谢您的帮助

Am i missing something? Really appreciate your help

推荐答案

此错误信息...

urllib3.exceptions.ProtocolError: ('Connection aborted.', error(10054, 'An existing connection was forcibly closed by the remote host'))

...表示 ChromeDriver 无法启动/生成新的 WebBrowser,即 Chrome 浏览器 会话.

...implies that the ChromeDriver was unable to initiate/spawn a new WebBrowser i.e. Chrome Browser session.

您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:

Your main issue is the incompatibility between the version of the binaries you are using as follows:

  • 您正在使用 chromedriver=2.20
  • chromedriver=2.20 的发行说明明确提到以下内容:

支持 Chrome v43-48

  • 您正在使用 chrome=68.0
  • ChromeDriver v2.41的发行说明 明确提及以下内容:
  • 支持 Chrome v67-69

    因此 ChromeDriver v2.33Chrome 浏览器 v65.0

    • ChromeDriver 升级到当前的 ChromeDriverv2.41 级别.
    • Chrome 版本保持在 Chrome v67-69 级别之间.(根据 ChromeDriver v2.41 发行说明)
    • 清理您的项目工作区,通过您的 IDE重建您的项目,仅使用所需的依赖项.
    • 如果您的基本 Web Client 版本太旧,请将其卸载并安装 Web Client 的最新 GA 和发布版本.
    • 执行您的@Test.
    • Upgrade ChromeDriver to current ChromeDriver v2.41 level.
    • Keep Chrome version between Chrome v67-69 levels. (as per ChromeDriver v2.41 release notes)
    • Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
    • If your base Web Client version is too old, then uninstall it and install a recent GA and released version of Web Client.
    • Execute your @Test.

    这篇关于urllib3.exceptions.ProtocolError: ('Connection aborted.', error(10054, '一个现有的连接被远程主机强行关闭'))的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆