为了使用和测试我的网站的新响应前端,我正在尝试使用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