下面的代码循环执行,其中打开10-15个本地.html文件,每个文件的图像另存为.png。
打开前两个文件并保存图像,但是其余结果为:
('连接异常终止。',ConnectionResetError(104,'对等重置连接'))
文件的路径都是正确的,并且更改要保存的图像的顺序没有影响。
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.sleep(5)来检查错误是否是由于页面加载时间太长所致,并将其增加到30秒,结果是相同的。由于技术要求,导入语句在功能内,将在稍后阶段进行排序。
答案 0 :(得分:4)
此错误消息...
for (int i = 0; i < maxLines; i++) {
if (middle == i) {
System.out.print("AU : ");
}
else {
System.out.print(" ");
}
}
...表示 ChromeDriver 无法与 WebBrowser 通信,即 Chrome浏览器会话。
您的主要问题是所使用的二进制版本之间的不兼容性:
支持 Chrome v67-69
支持 Chrome v74
因此 ChromeDriver v2.41 与 Chrome浏览器v74.0
之间存在明显的不匹配('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
方法内调用driver.quit()
,以优雅地关闭和销毁 WebDriver 和 Web Client 实例。中找到详细的讨论
答案 1 :(得分:0)
这很可能是因为您将旧版本的chrome驱动程序用于新的Chrome版本。
从here下载适用于您的Chrome的最新chrome驱动程序