Change default Capybara browser window size

筅森魡賤 提交于 2019-12-30 03:45:06

问题


So, with respect to integration testing using Capybara and RSpec, I know I can do this:

page.driver.browser.manage.window.resize_to(x,y)

per How to set Browser Window size in Rspec (Selenium) for specific RSpec tests, but is there a way to do this globally so that every test that is affected by media queries doesn't have to define this?


回答1:


You could define that under before(:all)

describe "Test" do
  before(:all) do
    ...
    ...
    page.driver.browser.manage.window.resize_to(x,y) #Mention it here
  end

  it "should find everything" do
    ...
  end

  after(:all) do
   ...
  end
end



回答2:


A proper way to do it for all js tests is to add following inside spec_helper.rb RSpec.configure block

config.before(:each, js: true) do
  Capybara.page.driver.browser.manage.window.maximize
end

to maximize the window. Change to resize_to(x,y) to set any window size.

EDIT: If you happen to be using Poltergeist the correct way to do it is

config.before(:each, js: true) do
  Capybara.page.driver.browser.resize(x,y)
end



回答3:


Perhaps due to a recent change in Capybara, what worked for me was:

before do
  Capybara.page.current_window.resize_to(x, y)
end



回答4:


For test runtime in Capybara 2.2.4 version you can achieve this by doing

before do
  handle = Capybara.page.driver.current_window_handle
  Capybara.page.driver.resize_window_to(handle, height, width)
end

Or

before do   
  Capybara.page.current_window.resize_to(height, width)
end

If you get Capybara::NotSupportedByDriverError: Capybara::Driver::Base#current_window_handle YOU MUST CHANGE YOUR DRIVER FOR EXAMPLE USE JAVASCRIPT DRIVER!

before do   
  Capybara.page.current_window.resize_to(height, width)
end

scenario js: true do
  # your test here
end



回答5:


@tirdadc if you're using Poltergeist, you can add something like this to your rails_helper.rb file:

Capybara.register_driver :poltergeist do |app|
  options = {
    # js_errors: true,
    # cookies: true,
    window_size: [320, 568] # iphone 5
  }
  Capybara::Poltergeist::Driver.new(app, options)
end


来源:https://stackoverflow.com/questions/18390071/change-default-capybara-browser-window-size

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!