在测试期间,将从Web应用程序下载文件(.html),我必须通过在浏览器中打开文件来验证该文件。在非无头模式下,我的测试工作正常。但是,每当我进入无头模式时,该文件都不会下载到下载路径(即指向“ user.dir”中的文件)。我的Chrome驱动程序版本为2.44.609538,硒版本为3.14。
答案 0 :(得分:0)
答案 1 :(得分:0)
Are you running the test from the command line?
Because, according to an answer to this question and this, when you run it via command line, your user.dir
corresponds to your global user directory (C:\users\username).
答案 2 :(得分: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
请注意下载行为
答案 3 :(得分:0)
我遇到了同样的情况。
无头模式非常快。所以你的代码可能会被实现来检测下载(DL)。
我使用回调函数实现了上述机制。