当chromedriver处于无头模式时无法下载文件。如何让它工作?

问题描述 投票:1回答:3

在测试期间,将从Web应用程序下载文件(.html),我必须通过在浏览器上打开它来验证该文件。在非无头模式下,我的测试工作正常。但是每当我要进入无头模式时,该文件就不会被下载到下载路径(即指向“user.dir”)。我的chrome驱动程序版本是2.44.609538,selenium版本是3.14。

selenium selenium-webdriver selenium-chromedriver headless headless-browser
3个回答
0
投票

显然这可以帮到你

Shawn Button发布了与之相关的答案。

Downloading with chrome headless and selenium


0
投票

您是否从命令行运行测试?

因为,根据this questionthis的答案,当您通过命令行运行它时,您的user.dir对应于您的全局用户目录(C:\ users \ username)。


0
投票

这适用于我们的ruby实现:

Capybara.register_driver :scrapping_driver do |app|
      options = Selenium::WebDriver::Chrome::Options.new
      options.add_argument('--headless')
      options.add_argument('--disable-popup-blocking')
      options.add_argument('--disable-gpu')
      options.add_argument('--no-sandbox')
      options.add_argument('--disable-dev-shm-usage')
      options.add_argument('--window-size=1366,2000')
      options.add_preference(:download, directory_upgrade: true,
                                prompt_for_download: false,
                                default_directory: "#{Rails.root}/")
      options.add_preference(:browser, set_download_behavior: { behavior: 'allow' })
      Selenium::WebDriver::Service.driver_path = Webdrivers::Chromedriver.driver_path
      driver = Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
    end

注意下载行为

© www.soinside.com 2019 - 2024. All rights reserved.