在尝试单击无头Chrome中的下载链接时出现错误,并在下面显示错误。
ERROR:in_progress_cache_impl.cc(191)]缓存未初始化。不能 检索条目。
每次单击下载链接时,都会发生上述情况。
当我没有无头奔跑时,代码可以正常工作
当我以--headless
的身份运行时,还会遇到其他错误,下面是不确定它们是否相关的信息:
[0911 / 115517.146:INFO:CONSOLE(0)]“内容安全策略 'default-src'self'; style-src'self''unsafe-inline'; script-src'self' '不安全的内联';'已以仅报告模式提供,但没有 指定一个'report-uri';该政策将无效。请要么 添加“ report-uri”指令,或通过 “ Content-Security-Policy”标头。”存储(0)
[0911 / 115517.620:INFO:CONSOLE(64)]“ [仅报告]拒绝评估 作为JavaScript的字符串,因为不允许使用'unsafe-eval' 以下“内容安全策略”指令中的脚本: “ script-src'self''unsafe-inline'”。
有什么想法吗?使用最新版本的ChromeDriver,Python 3.7和最新的Selenium模块。当我无头运行时,代码只是行不通,一直到应该单击下载链接并将文件放入下载路径的地步。在无头镀铬上效果很好
答案 0 :(得分:0)
找到解决方法。本质上,您需要这样做来构建ChromeDriver:
def enable_download_in_headless_chrome(driver, download_dir):
# add missing support for chrome "send_command" to selenium webdriver
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_dir}}
command_result = driver.execute("send_command", params)
完整的详细信息可以在以下线程中找到:
https://bugs.chromium.org/p/chromium/issues/detail?id=696481
https://bugs.chromium.org/p/chromedriver/issues/detail?id=2454