我使用以下版本:
env.rb文件包含下载目录的路径。 在无头模式下运行测试 NOT 时,文件会完美下载,但是当我运行它时,无头没有任何反应,文件也无法下载。 我使用的是chromderiver 2.27和Chrome Browser 58. *它在两种模式下都有效,有谁知道我怎么能克服它?
答案 0 :(得分:12)
所以这就是我找到的,它绝对有效!
当我为无头模式配置参数时,在env.rb文件中,我将其定义为:
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument('--disable-popup-blocking')
options.add_argument('--window-size=1366,768')
options.add_preference(:download, directory_upgrade: true,
prompt_for_download: false,
default_directory: DOWNLOAD_DIR)
options.add_preference(:browser, set_download_behavior: { behavior: 'allow' })
$browser = Selenium::WebDriver.for :chrome, options: options
bridge = $browser.send(:bridge)
path = '/session/:session_id/chromium/send_command'
path[':session_id'] = bridge.session_id
bridge.http.call(:post, path, cmd: 'Page.setDownloadBehavior',
params: {
behavior: 'allow',
downloadPath: DOWNLOAD_DIR
})
感谢您在Chromium的错误网页上发表评论89: https://bugs.chromium.org/p/chromium/issues/detail?id=696481
答案 1 :(得分:0)
此时它不受支持。 Headless的实施没有任何处理偏好的铬代码。 https://bugs.chromium.org/p/chromium/issues/detail?id=775911