【发布时间】:2020-01-10 06:59:43
【问题描述】:
作为我自己的答案: How to download files headless in Selenium (Java) when download happens in new tab?
如果下载按钮在打开的新标签中触发下载动作,我将切换到新标签并发送命令(如下代码)下载文件。
def enable_download_in_headless_chrome(self, driver, download_path):
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {
'cmd': 'Page.setDownloadBehavior',
'params': {'behavior': 'allow', 'downloadPath': download_path}
}
driver.execute("send_command", params)
我发现上面的方法在linux上偶尔会失败。
当驱动程序收到错误时,它会崩溃很长时间。 (我通过重试错误处理来检测情况。)
错误信息:
消息:超时
(会话信息:headless chrome=77.0.3865.120)
我已经通过问题讨论查看了解决方案,但没有人能解决它:https://bugs.chromium.org/p/chromium/issues/detail?id=696481
我想根本原因是我在新标签就绪状态之前发送了启用下载命令?
请帮助我找到解决方案。谢谢。
【问题讨论】:
标签: python selenium selenium-webdriver