我使用以下版本: Ruby 2.4.1 chromedriver 2.33 selenium-webdriver 3.7.0 watir 6.7.3 page-object 2.2.2 Chrome浏览器62.0.32 env.rb文件包含下载目录的路径. 当在无头模式下运行测试时,文件下载完美,但是当我运
> Ruby 2.4.1
> chromedriver 2.33
> selenium-webdriver 3.7.0
> watir 6.7.3
> page-object 2.2.2
> Chrome浏览器62.0.32
env.rb文件包含下载目录的路径.
当在无头模式下运行测试时,文件下载完美,但是当我运行时,无头没有任何反应,文件也没有下载.
我使用的是chromderiver 2.27和Chrome Browser 58. *它在两种模式下都有效,有谁知道我怎么能克服它?
在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