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

标签 python selenium google-chrome selenium-chromedriver urllib3

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

版本详细信息:Chrome:68.0.3440.106 Selenium :3.14.0 Chrome 驱动程序: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:\Users\sohil7777\PycharmProjects\temp.py\venv\Scripts\python.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:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 75, in __init__
    desired_capabilities=desired_capabilities)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 156, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 251, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 318, in execute
    response = self.command_executor.execute(driver_command, params)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 375, in execute
    return self._request(command_info[0], url, body=data)
  File "C:\Python27\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 397, in _request
    resp = self._conn.request(method, url, body=body, headers=headers)
  File "C:\Python27\lib\site-packages\urllib3\request.py", line 72, in request
    **urlopen_kw)
  File "C:\Python27\lib\site-packages\urllib3\request.py", line 150, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
  File "C:\Python27\lib\site-packages\urllib3\poolmanager.py", line 322, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "C:\Python27\lib\site-packages\urllib3\connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Python27\lib\site-packages\urllib3\util\retry.py", line 367, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "C:\Python27\lib\site-packages\urllib3\connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "C:\Python27\lib\site-packages\urllib3\connectionpool.py", line 377, in _make_request
    httplib_response = conn.getresponse(buffering=True)
  File "C:\Python27\Lib\httplib.py", line 1121, in getresponse
    response.begin()
  File "C:\Python27\Lib\httplib.py", line 438, in begin
    version, status, reason = self._read_status()
  File "C:\Python27\Lib\httplib.py", line 394, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "C:\Python27\Lib\socket.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'))

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

最佳答案

此错误消息...

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

...意味着 ChromeDriver 无法启动/生成新的 WebBrowser,即 Chrome 浏览器 session 。

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

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

Supports Chrome v43-48

Supports Chrome v67-69

因此,ChromeDriver v2.33Chrome 浏览器 v65.0 之间存在明显的不匹配

解决方案

  • ChromeDriver升级到当前的ChromeDriver v2.41级别。
  • Chrome 版本保持在 Chrome v67-69 级别之间。 (as per ChromeDriver v2.41 release notes)
  • 通过IDE清理您的项目工作区,并仅使用所需的依赖项重建项目。
  • 如果您的基本Web 客户端版本太旧,请将其卸载并安装最新的 GA 和已发布版本的Web 客户端
  • 执行您的@Test

关于python - urllib3.exceptions.ProtocolError : ('Connection aborted.' ,错误(10054, 'An existing connection was forcibly closed by the remote host')),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56396518/

相关文章:

python - 从 pyspark 中的字典列创建数据框

python - 在/和\之间查找子字符串

reactjs - Redux 开发工具和 React Native

java - Selenium - 复制到剪贴板不适用于嵌入式 pdf

python - 如何在python中读取selenium webdriver下载的文件

google-chrome - Chrome 上的 getUserMedia 经常无法返回最佳分辨率

python - 如何在 Python + Selenium 中创建随机用户代理?

Python:提取 2D numpy 数组的核心

python - 在 pandas 中插入行,其中一列缺少 groupby 中的某些值

python - 带有 phantomjs 间歇性挂起/超时的 Django LiveServerTestCase