2012-05-14 12 views
9

Używam selenu Kapibara w moim projekcie Rails (w systemie Ubuntu 10.04) i właśnie uaktualniłem firefox teraz, gdy uruchamiam testy obciążenia firefoxem, ale teraz ma wszystkie zainstalowane dodatki i czeka, aż ustawię je po raz pierwszy.Jak wyłączyć dodatki w firefoxie podczas używania selenu

Czy istnieje sposób na wyłączenie wszystkich tych dodatków podczas uruchamiania selenu?

LUB

Czy istnieje sposób, aby ustawić wszystkie moje dodatki i zapisać ustawienia tak, że nie zapyta mnie za każdym razem testy są prowadził?

Aktualizacja

Jeśli zmienię go używać Chrome działa dobrze z tym.

Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end 

Capybara.javascript_driver = :selenium 

Chciałbym jednak wykonać testy z firefoxem. Mam ustawić „test” profil pod firefox i próbował go z następujących czynności:

Capybara.register_driver :selenium_firefox_custom do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => "test") 
end 

Capybara.default_driver = :selenium_firefox_custom 

co nie działa, to jeszcze próbował załadować mój profil domyślny.

Używam wersji gybki kapibara;

capybara (1.1.2) 
    mime-types (>= 1.16) 
    nokogiri (>= 1.3.3) 
    rack (>= 1.0.0) 
    rack-test (>= 0.5.4) 
    selenium-webdriver (~> 2.0) 
    xpath (~> 0.1.4) 

Ja również próbowałem przy użyciu Capybara.javascript_driver =: selenium_firefox_custom

+0

Czy jest to spowodowane automatycznymi aktualizacjami? Można to ustawić na karcie Zaawansowane w obszarze Aktualizacja. Jeśli jest skonfigurowany do pierwszego użycia, wyobrażam sobie, że musiałbyś zrobić to tylko raz? Czy używasz maszyny wirtualnej ze stanem początkowym? Jeśli nie, nie jestem pewien! Przepraszam! – Nashibukasan

+0

To konfiguracja wtyczek do pierwszego użycia.Jeśli je skonfiguruję, gdy selen zamknie przeglądarkę, wszystkie moje ustawienia zostaną zapomniane i muszę to zrobić jeszcze raz. – map7

+0

Chcesz wyłączyć sprawdzanie zgodności dodatków podczas uruchamiania przeglądarki? –

Odpowiedz

3

Spróbuj użyć profilu niestandardowego i nazywania go jednak chcesz:

Capybara.register_driver :selenium_firefox_custom do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => "custom") 
end 

Capybara.default_driver = :selenium_firefox_custom 

W zależności od wersji, której używasz, interfejs API mógł się zmienić, ale prawie to musisz zrobić.

+0

Podczas używania testów javascript z "js: true" nie słucha tego register_driver, czy istnieje sposób obejścia tego? – map7

+0

Zamiast tego użyj 'javascript_driver'. –

0

Ponieważ nie używam Ubuntu mogę tylko Zaproponuj obejście systemu Windows. Myślę, że to właściwy sposób na użycie drugiego profilu Firefoksa bez wtyczek do uruchamiania testów selenu.

W systemie Windows można to osiągnąć, przekazując "firefox.exe -ProfileManager -no-remote" do uruchomienia systemu Windows.

Niewygodną metodą dla Ubuntu byłyby [Alt] + [F2] i firefox -ProfileManager. To ważne, aby zamknąć wszystkie Firefox Windows i może zabić nadal istniejących procesów przed

+0

Dobrze, stworzyłem profil "testu" w Firefoksie i wyłączyłem wszystkie moje dodatki. W jaki sposób mogę powiedzieć mojej wtyczce railsowej dla selenu, aby używał profilu "testowego" w Firefoksie? – map7

+0

Odpowiedź jest w moim poście. :) –

4

Jeśli nie chcesz, aby utworzyć profil, który trzeba utrzymać (np: sprawdzanie w celu kontroli źródła itp), można utworzyć profil w locie, co następuje:

Capybara.register_driver :selenium_firefox do |app| 
    profile = Selenium::WebDriver::Firefox::Profile.new 
    profile["extensions.update.enabled"] = false 
    profile["app.update.enabled"] = false 
    profile["app.update.auto"] = false 
    Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile) 
end 

Capybara.default_driver = :selenium_firefox 

Że utworzy w locie profil, który nie aktualizuje wersji przeglądarki ani rozszerzeń. Mam nadzieję, że pomaga!

Powiązane problemy