2013-08-22 13 views

Antwort

12

könnten Sie, dass 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

Dann muss ich das in jeder spec-Datei richtig machen? Wie mache ich das für * alles *? – CDub

+1

Sie können RSpec.configure verwenden, um Module in Ihre Beispiele aufzunehmen oder zu erweitern. Fügen Sie dann Ihr before: all /: jedes in das Modul ein, das Sie hinzufügen/erweitern: https://www.relishapp.com/rspec/rspec-core/docs/helper-methods/define-helper-methods-in-modul –

+0

@CDub sehe meine Antwort. Die obige Sache funktionierte nicht für mich auch –

34

Ein richtiger Weg, es ist für alle js Tests zu tun, unter definieren folgende innerhalb spec_helper.rbRSpec.configure Block hinzufügen

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

das Fenster zu maximieren. Wechseln Sie zu resize_to(x,y), um eine beliebige Fenstergröße festzulegen.

EDIT: Wenn Sie Poltergeist die richtige Art und Weise geschehen sein mit

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

Dies scheint nicht mit Capybara und Poltergeist funktionieren: 'undefined Methode 'verwalten' für # ' – tirdadc

+0

Hey @ Tirdadc welche Version sind verwendest du? –

+0

ok, ich kann sehen, dass es keinen Poltergeist gibt, aber es gibt eine Möglichkeit, die Größe zu ändern und die Antwort zu aktualisieren! –

8

Vielleicht aufgrund einer kürzlich erfolgten Änderung zu tun in Capybara, was für mich gearbeitet war es:

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

Dies ist der einzige, der derzeit etwas tut, aber ich bekomme Capybara :: NotSupportedByDriverError Fehler. Ich habe sowohl Poltergeist als auch Webkit ausprobiert. Ich benutze Ubuntu 16.04, jeder hat eine Idee, was ist los? – Aurimas

+0

@Aurimas Sie können versuchen, Ihren Treiber zu ändern, versuchen Sie 'js: true' in Ihrer Spezifikation zu verwenden – ilgam

0

@tirdadc Wenn Sie Poltergeist verwenden, können Sie so etwas zu Ihrer rails_helper.rb Datei hinzufügen:

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

Für Testlaufzeit in Capybara 2.2.4 Version kann dies

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

indem Oder

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

Wenn Sie Capybara :: NotSupportedByDriverError erhalten: Capybara :: Treiber :: Base # current_window_handle SIE MÜSSEN IHREN TREIBER FÜR BEISPIELE VERWENDEN JAVASCRIPT-TREIBER!

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

scenario js: true do 
    # your test here 
end 
Verwandte Themen