我正在尝试获取一个大型映射的屏幕截图,在执行save_screenshot函数时偶尔会遇到超时异常。虽然我观察到,当我试图拍摄的屏幕截图特别大(例如10000 x 7200
(时,会发生异常,但很难确定到底是什么原因导致了这种情况。
这不是页面加载超时,因为我仍然可以打开url并与元素交互。当我截屏(即driver.save_screenshot(filename))
(时,发现了异常。
这是我收到的错误消息:
timeout: Timed out receiving message from renderer: 8.743
(Session info: headless chrome=80.0.3987.163)
到目前为止我尝试了什么:
- 检查我的chromedriver、chrome浏览器和硒客户端(python(是否都是最新的(来源(:我使用的是Chromium 80.0.3987.163、chromedriver 80.0.3987.106和selenium 3.141.0
- 设置以下选项(源1、2、3(:
options.add_argument('--ignore-certificate-errors')
options.add_argument('--incognito')
options.add_argument('--no-sandbox')
options.add_argument('--enable-automation')
options.add_argument('--disable-gpu')
options.add_argument('--disable-infobars')
options.add_argument('--disable-browser-side-navigation')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-features=VizDisplayCompositor')
options.add_argument('--dns-prefetch-disable')
options.add_argument('--headless')
任何解决这个问题的建议都是非常受欢迎的!
找到了这个问题的具体答案(我也有同样的问题!(
https://stackoverflow.com/a/56364166/15567914
基本上将此添加到选项中:
options.add_argument("--force-device-scale-factor=1")