“连接中止”。,ConnectionResetError(104,“由对等方重置连接”)使用Selenium和ChromeDriver,并通过Python使用Chrome
下面的代码在循环中执行,其中打开10-15个本地.html文件,每个文件的图像保存为.png Ubuntu服务器16.04 ChromeDriver 2.41.578700 谷歌浏览器74.0.3729.108 硒3.141.0 Python 3.6 打开前两个文件并保存图像,但其余文件会导致: “连接已中止。”,ConnectionResetError104,“由对等方重置连接” 文件的路径都是正确的,更改要保存的图像的顺序不会产生任何影响“连接中止”。,ConnectionResetError(104,“由对等方重置连接”)使用Selenium和ChromeDriver,并通过Python使用Chrome,python,selenium,google-chrome,ubuntu,selenium-chromedriver,Python,Selenium,Google Chrome,Ubuntu,Selenium Chromedriver,下面的代码在循环中执行,其中打开10-15个本地.html文件,每个文件的图像保存为.png Ubuntu服务器16.04 ChromeDriver 2.41.578700 谷歌浏览器74.0.3729.108 硒3.141.0 Python 3.6 打开前两个文件并保存图像,但其余文件会导致: “连接已中止。”,ConnectionResetError104,“由对等方重置连接” 文件的路径都是正确的,更改要保存的图像的顺序不会产生任何影响 def _save_image(html_file_
def _save_image(html_file_path, png_file_path, h=850, w=833):
try:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
except Exception as ex:
raise Exception("Saving the plot as a .PNG requires *selenium* package to be installed. Please install selenium using *pip install selenium*.")
options = Options()
options.add_argument('--headless')
options.add_argument('disable-infobars')
options.add_argument('--disable-extensions')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
#options.add_argument('--disable-gpu')
if os.name == 'nt':
chrome_driver_path = os.path.dirname(__file__)
chrome_driver_path = chrome_driver_path[:-3] + "chromedriver.exe"
elif os.name == 'posix':
chrome_driver_path = "/usr/bin/chromedriver"
else:
raise Exception("OS could not be detected, thus selenium could not be initialised properly.")
driver = webdriver.Chrome(chrome_driver_path, chrome_options=options)
driver.set_window_size(w, h)
driver.get("file://"+html_file_path)
time.sleep(5)
driver.save_screenshot(png_file_path + ".png")
driver.quit()
time.sleep(5)
添加time.sleep5是为了检查错误是否是由于加载页面花费了很长时间造成的,将其增加到30秒,结果是相同的。由于技术要求,导入语句在功能范围内,该技术要求将在稍后阶段进行排序。这很可能是因为您正在为新的chrome版本使用旧版本的chrome驱动程序
从下载适用于您的chrome的最新chrome驱动程序,这很可能是因为您在新chrome版本中使用的是旧版本的chrome驱动程序 从以下错误消息下载适用于您的chrome浏览器的最新chrome驱动程序
('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
…表示ChromeDriver无法与WebBrowser进行通信,即Chrome浏览器会话
您的主要问题是所使用的二进制文件版本之间的不兼容,如下所示:
您使用的是chromedriver=2.41
的发行说明明确提到以下内容:
支持Chrome v67-69
您使用的是chrome=74.0
的发行说明明确提到以下内容:
支持ChromeV74
因此,ChromeDriver v2.41和Chrome浏览器v74.0之间存在明显的不匹配
解决方案
将ChromeDriver升级到当前级别。
将Chrome版本保持在ChromeV74级别。
始终在tearDown{}方法中调用driver.quit以正常关闭和销毁WebDriver和Web客户端实例。
您可以在中找到详细的讨论
此错误消息
('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
…表示ChromeDriver无法与WebBrowser进行通信,即Chrome浏览器会话
您的主要问题是所使用的二进制文件版本之间的不兼容,如下所示:
您使用的是chromedriver=2.41
的发行说明明确提到以下内容:
支持Chrome v67-69
您使用的是chrome=74.0
的发行说明明确提到以下内容:
支持ChromeV74
因此,ChromeDriver v2.41和Chrome浏览器v74.0之间存在明显的不匹配
解决方案
将ChromeDriver升级到当前级别。
将Chrome版本保持在ChromeV74级别。
始终在tearDown{}方法中调用driver.quit以正常关闭和销毁WebDriver和Web客户端实例。
您可以在中找到详细的讨论
感谢您指出版本问题。我已经将ChromeDriver升级到74.0.3729.6,这改善了情况,正在生成更多的图表。但是,仍然会出现“连接中止”、“ConnectionResetError104”、“由对等方重置连接”错误,现在这是随机的,即与原始文件中的最后一个x.html文件不同issue@DreX我需要再次调试您的代码,以找出更细微的问题。如果这一点或任何其他答案有用,请回答。找到问题的答案后,请将其标记为已接受,这样问题就不会没有答案。感谢您指出版本问题。我已经将ChromeDriver升级到74.0.3729.6,这改善了情况,正在生成更多的图表。但是,仍然会出现“连接中止”、“ConnectionResetError104”、“由对等方重置连接”错误,现在这是随机的,即与原始文件中的最后一个x.html文件不同issue@DreX我需要再次调试您的代码,以找出更细微的问题。如果这一点或任何其他答案有用,请回答。一旦找到问题的答案,请将其标记为已接受,这样问题就不会没有答案。