ruby-on-rails – 如何设置轨道5.1中镀铬无头系统测试的屏幕尺寸?

为了使用和测试我的网站的新响应前端,我正在尝试使用Rails的新系统测试(规格)与 javascript和Chrome无头.不过,我无法想出一种在规范中设置浏览器屏幕大小的方法.

这是我在spec / rails_helper.rb中的设置

config.before(:each,type: :system,js: true) do
  driven_by :selenium_chrome_headless,screen_size: [1900,800]
end

然后我创建截图:

page.driver.save_screenshot(the_uri)

但是渲染屏幕截图的大小仍然是认值,它要小得多.理想情况下,我希望看到整个渲染页面,但在这一点上,我很高兴只使用我提供的尺寸.

关于我在这里失踪的想法?

解决方法

您只需重新定义传递无头和屏幕大小参数的驱动程序.
Capybara.register_driver :selenium_chrome_headless do |app|
  options = Selenium::WebDriver::Chrome::Options.new

  [
    "headless","window-size=1280x1280","disable-gpu" # https://developers.google.com/web/updates/2017/04/headless-chrome
  ].each { |arg| options.add_argument(arg) }

  Capybara::Selenium::Driver.new(app,browser: :chrome,options: options)
end

RSpec.configure do |config|
  config.before(:each,js: true) do
    driven_by :selenium_chrome_headless
  end
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...