当前位置: 首页 > 知识库问答 >
问题:

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

葛勇锐
2023-03-14

我正在使用以下版本:

  • Ruby 2.4.1
  • 铬驱动2.33
  • selenium-webDrive3.7.0
  • watir 6.7.3
  • page对象2.2.2
  • Chrome浏览器

环境署。rb文件包含下载目录的路径。当不是在headless模式下运行测试时,文件可以完美下载,但是当我运行它时,没有任何事情发生,文件也不会下载。我使用的是ChromeDeriver 2.27和Chrome浏览器58。*它在两种模式下都有效,有人知道我如何克服它吗?

共有2个答案

胡劲
2023-03-14

在这一点上,它是不受支持的。Headless的实现没有任何处理首选项的chromium代码。https://bugs.chromium.org/p/chromium/issues/detail?id=775911

夹谷浩宕
2023-03-14

这是我发现的,它绝对有效!

在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的bugs网页上发表评论89:https://bugs.chromium.org/p/chromium/issues/detail?id=696481

 类似资料:
  • 我做我的代码在CromeDrive在'正常'模式和工作正常。当我切换到无头模式时,它不会下载文件。我已经尝试了我在互联网上找到的代码,但是不起作用。 有人知道如何解决这个问题吗? PS:我不一定要用Chomedrive。如果它在另一个驱动器中工作,对我来说没问题。

  • 我用的是chrome第77版,测试一些下载。但我不明白为什么它不让在无头模式下下载文件(只发生在无头模式下)。这是我正在使用的代码。 _chromeOptions。AddUserProfilePreference(" download . default _ Directory " ,@ "目录文件夹");_chromeOptions。adduser profile preference(" in

  • 我想将JSTestDriver与jenkins-CI集成。问题是生成服务器没有显示。有没有办法无头运行浏览器? 谢谢

  • 问题内容: 我正在尝试使用Chrome浏览器使用Webdriver编写测试,我想下载一些文件,当我单击下载链接时,该文件会自动下载到下载文件夹中。我想知道是否可以通过某种方式找出下载文件夹的当前路径(Win / Linux),Chrome是否保留一些配置文件来对其进行设置? 坦斯 问题答案: Google chrome正在为这样的自定义配置维护一个配置文件,即 JSON* 格式的名为 Prefer

  • 我们在独立模式下进行了早期开发,其中属性文件可以包含在命令行中。 现在我们正在进行部署,服务器将处于域模式,但是方便的命令行属性不再起作用了。 我看到属性可以用jboss-cli加载,也可以放在domain.xml中,但是这两者的形式与标准属性文件不同。我不想更改该文件,因为其他程序正在使用同一个文件。 我忽略了什么吗?

  • 我试图在调试模式下启动我的android应用程序,但每次我检查它说这是错误的。更进一步,在buildtypes中定义的buildconfigField甚至不会显示在BuildConfig中。 这是我的gradle文件: 因此,在Android Studio中,我为我的应用程序选择了build Variant“debug”,但当我在应用程序中点击一个断点并检查的值时,无法解析字段,并且无法解析