17
votes

I am working on Ruby On Rails integration test using capybara, Selenium.

How to set testing Browser Window Height and Width?

I searched, but nothing work well for me.

I tried following code.

page.execute_script('$(window).width(1200)')

Can any one. please.

3

3 Answers

30
votes

You can use the resize_to(width, height) method that is part of the selenium webdriver.

For example, the following would make the browser 100px wide and 200px tall:

page.driver.browser.manage.window.resize_to(100,200)
6
votes

It help's for me:

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, 
    browser: :chrome,
    desired_capabilities: {
      "chromeOptions" => {
        "args" => %w{ window-size=1024,768 }
      }
    }
  )
end
0
votes

Building onto Justin Ko's helpful answer:

How about importing a responsive_helper module to your spec file? For example,

module ResponsiveHelpers

  def resize_window_to_mobile
    resize_window_by([640, 480])
  end

  def resize_window_to_tablet
    resize_window_by([960, 640])
  end

  def resize_window_default
    resize_window_by([1024, 768])
  end

private

  def resize_window_by(size)
    Capybara.current_session.driver.browser.manage.window.resize_to(size[0], size[1]) if Capybara.current_session.driver.browser.respond_to? 'manage'
  end
end

Check it out!