加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 在Chrome中运行无头模式时将文件下载到路径

发布时间:2020-12-17 01:43:44 所属栏目:百科 来源:网络整理
导读:我使用以下版本: 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读