Bŕýćé 2018-12-11 09:47 采纳率: 100%
浏览 3341
已采纳

Selenium+Chromedriver headless 无法下载文件怎么办?

如果不用 headless 则可以下载,使用 headless 则不行,有什么办法解决这个问题?
版本都是目前最新的:Selenium:3.141 Chromedriver:2.45 Chrome: 71.0.3578.80

配置如下:

chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument("--disable-gpu")
    prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'E:/File/'}
    chrome_options.add_experimental_option('prefs', prefs)
    browser = webdriver.Chrome(executable_path='./chromedriver.exe', chrome_options=chrome_options)
  • 写回答

1条回答

  • lyhsdy 2018-12-12 02:10
    关注
    from selenium.webdriver.chrome.options import Options
    #实例化一个Options 
    chrome_options = Options() #用于定义下载不弹窗和默认下载地址(默认下载地址还要再后面的commands里启动,默认是不开启的) 
    prefs = {"download.default_directory": "E:\download","download.prompt_for_download": False,} 
    chrome_options.add_experimental_option("prefs", prefs) 
    #无头模式(就是不打开浏览器) 
    chrome_options.add_argument("--headless") browser = webdriver.Chrome(chrome_options=chrome_options) 
    browser.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command') 
    params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': "E:\download"}} 
    command_result = browser.execute("send_command", params)
    
    

    https://blog.csdn.net/weixin_41812940/article/details/82423892

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配