单击下载链接

时间:2018-09-11 17:36:11

标签: python selenium web-scraping webdriver selenium-chromedriver

在尝试单击无头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模块。当我无头运行时,代码只是行不通,一直到应该单击下载链接并将文件放入下载路径的地步。在无头镀铬上效果很好

1 个答案:

答案 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

相关问题