2012-12-10 14 views

risposta

26

È possibile utilizzare il metodo resize_to(width, height) che fa parte del web driver del selenio.

Ad esempio, il seguente farebbe il browser 100px di larghezza e 200px di altezza:

page.driver.browser.manage.window.resize_to(100,200) 
+1

Ho anche raffinati questa soluzione come segue: 'page.br ... 00) se page.driver.browser.respond_to? 'manage'', che consente di eseguire i test in modalità headless –

+1

'page.driver.browser.manage.window.resize_to (1280,800) se page.driver.browser.respond_to? 'manage'' # funziona solo quando: selenium è il javascript_driver – Magne

4

E 'l'aiuto di per 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

Questo ha funzionato anche per me, grazie – Tom

0

Costruire sulla risposta utile di Justin Ko:

Come sull'importazione di un modulo responsive_helper nel tuo file spec? Ad esempio,

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!

Problemi correlati