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

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

    点赞 打赏 评论

相关推荐 更多相似问题