Подтвердить что ты не робот

Изменение размера окна браузера Capybara

Итак, что касается тестирования интеграции с использованием Capybara и RSpec, я знаю, что могу это сделать:

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

per Как установить размер окна браузера в Rspec (Selenium) для конкретных тестов RSpec, но есть ли способ сделать это глобально, чтобы каждый тест, который был затронут по медиа-запросам не нужно это определять?

4b9b3361

Ответ 1

Вы можете определить, что под 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

Правильный способ сделать это для всех js-тестов - добавить следующий внутри spec_helper.rb RSpec.configure block

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

чтобы увеличить окно. Перейдите на resize_to(x,y), чтобы установить размер окна.

РЕДАКТИРОВАТЬ. Если вы используете Полтергейст, правильный способ сделать это

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

Ответ 3

Возможно, из-за недавнего изменения в Capybara то, что сработало для меня, было:

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

Ответ 4

@tirdadc, если вы используете Poltergeist, вы можете добавить что-то вроде этого в ваш файл rails_helper.rb:

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