2013-08-22 10 views

Odpowiedz

12

Można określić, że pod 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 
+0

Następnie muszę to zrobić w każdym pliku specyfikacji, prawda? Jak mogę to zrobić dla * wszystkiego *? – CDub

+1

Możesz użyć RSpec.configure, aby dołączyć lub rozszerzyć moduły w swoich przykładach, a następnie umieścić swój poprzedni: all /: each w module, który włączasz/rozszerzasz: https://www.relishapp.com/rspec/rspec-core/docs/helper-methods/define-helper-methods-in-a-module –

+0

@CDub zobacz moją odpowiedź. Powyższe rzeczy też mi nie pomogły. –

34

właściwy sposób to zrobić dla wszystkich testów js jest dodanie następujących wewnątrz spec_helper.rbRSpec.configure bloku

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

aby zmaksymalizować okno. Zmień na resize_to(x,y), aby ustawić dowolny rozmiar okna.

EDIT: Jeśli zdarzy ci się być za pomocą Poltergeist poprawny sposób to zrobić jest

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

To nie działa z Capybarą i Poltergeistem: 'niezdefiniowana metoda 'zarządzaj' dla # ' – tirdadc

+0

Hej @ Tirdadc jaka wersja jest używasz? –

+0

OK, widzę, że nie ma zarządzenia dla Poltergeista, ale istnieje sposób na zmianę rozmiaru, aktualizując odpowiedź! –

8

Być może ze względu na niedawne zmiany w Kapibara, co pracował dla mnie było:

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

Jest to jedyna robiąca co najmniej obecnie, ale otrzymuję błąd Capybara :: NotSupportedByDriverError. Próbowałem zarówno poltergeist, jak i webkita. Używam Ubuntu 16.04, ktoś ma pomysł, co jest nie tak? – Aurimas

+0

@Aurimas Możesz spróbować zmienić sterownik, spróbuj użyć 'js: true' w swojej specyfikacji – ilgam

0

@tirdadc, jeśli używasz programu Poltergeist, możesz dodać coś takiego do pliku 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

Do wykonywania testu w Kapibara 2.2.4 wersji można osiągnąć wykonując

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 

Jeśli masz Kapibara :: NotSupportedByDriverError: Capybara :: kierowcy :: Base # current_window_handle MUSISZ ZMIENIĆ SWÓJ STEROWNIK DO KORZYSTANIA Z PRZYKŁADU JAVASCRIPT DRIVER!

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

scenario js: true do 
    # your test here 
end 
Powiązane problemy