web-dev-qa-db-ja.com

デフォルトのカピバラブラウザのウィンドウサイズを変更する

したがって、CapybaraとRSpecを使用した統合テストに関して、私はこれを実行できることを知っています。

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

per Rspec(Selenium)でブラウザウィンドウのサイズを設定する方法 特定のRSpecテストに対してこれをグローバルに行う方法があるため、メディアクエリの影響を受けるすべてのテストでこれを定義する必要はありません?

30
CDub

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
14
Amey

すべてのjsテストに対してそれを行う適切な方法は、_spec_helper.rb_ _RSpec.configure_ブロック内に以下を追加することです

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

ウィンドウを最大化します。ウィンドウサイズを設定するには、resize_to(x,y)に変更します。

[〜#〜] edit [〜#〜]:ポルターガイストを使用している場合の正しい方法は

_config.before(:each, js: true) do
  Capybara.page.driver.browser.resize(x,y)
end
_
35
Mike Szyndel

おそらく、カピバラの最近の変更が原因で、私にとってうまくいったのは:

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

Capybara 2.2.4バージョンのテストランタイムの場合、次のようにしてこれを実現できます。

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

または

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

Capybara :: NotSupportedByDriverError:Capybara :: Driver :: Base#current_window_handleが表示される場合は、使用例のドライバーを変更する必要がありますJAVASCRIPTドライバー

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

scenario js: true do
  # your test here
end
5
ilgam

@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
2
Nico Brenner