发布于2024-11-06 19:35 阅读(1014) 评论(0) 点赞(24) 收藏(3)
当我尝试使用 Selenium 和 Python 以及 Chrome 驱动程序截取大图像的屏幕截图时,出现错误。从昨天开始,我尝试了很多方法,但仍然出现相同的错误。我有截取屏幕截图的代码,但对于特定页面 (1050x8100), 我收到错误 selenium.common.exceptions.TimeoutException:消息:超时:从渲染器接收消息超时:299,800 版本正常(我在其他网页上没有任何错误)
这是我添加的选项(在阅读了 stackoverflow 上的几个问题之后):
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-setuid-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument('--hide-scrollbars')
chrome_options.add_argument("--force-device-scale-factor=1")
下面是我的截图代码:
self.driver.get(self.url)
page_width = self.driver.execute_script("return document.body.scrollWidth")
page_height = self.driver.execute_script("return document.body.scrollHeight") self.driver.set_window_size(page_width, page_height)
time.sleep(10)
png = self.driver.get_screenshot_as_png()
image = Image.open(io.BytesIO(png))
screen_path = os.path.join(folder_output_path, str(number_of_screen) + '.png') image.save(screen_path)
当我将窗口大小设置为较小尺寸时,它正在运行,但我丢失了页面信息。对于具有以下特征的页面:
page_width=1560
和
page_height=7351
它正在运行,但是对于 (1560x8897) 的页面它不起作用。
有人可以帮我获取整个大页面的屏幕截图吗?
optimize
尝试通过添加和参数来降低图像质量quality
,这应该可以加快保存屏幕截图的速度,例如:
image.save(screen_path, optimize=True, quality=80)
。
您还可以尝试增加加载页面所需的超时时间,例如
self.driver.set_page_load_timeout(120)
。
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/2043859/ab070ab1481b59d35eca/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!