Ich habe eine App, die entworfen wurde, um immer noch funktionsfähig zu sein, wenn JavaScript deaktiviert ist, also wollte ich einige Spezifikationen schreiben, die diese Fälle abgedeckt haben.Deaktivieren von JavaScript bei der Verwendung von Capybara + Selenium
Ich bin mit Selen (Firefox) mit Capybara und ich bin einen neuen Treiber mit JavaScript deaktiviert Registrierung (über die Selenium javascript.enabled
Eigenschaft)
# spec/rails_helper.rb
Capybara.configure do |config|
config.ignore_hidden_elements = true
config.default_driver = :selenium
end
Capybara.register_driver :disable_js do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
profile["javascript.enabled"] = false
Capybara::Selenium::Driver.new(app, profile: profile)
end
# spec/features/siging_in_spec.rb
context "JavaScript disabled", driver: :disable_js do
it "user can still sign in" do
# ...
# ...
end
end
Die Feature-Spezifikationen scheitern JavaScript tatsächlich zu deaktivieren. Wenn das Browserfenster während des Tests auftaucht und ich es mit binding.pry
pausiere, kann ich definitiv auf Elemente klicken, von denen ich weiß, dass sie JavaScript benötigen, und sie funktionieren.
Randnotiz: Wenn ich tatsächlich zu meinen Firefox-Einstellungen gehe und JavaScript deaktiviere, wird der Test bestanden. Es scheint also, dass es die Konfiguration übernimmt, die ich in meinem Browser eingestellt habe, und nicht die Konfiguration, die bei der Registrierung des Treibers angegeben wurde.
Ist dies der richtige Ansatz hier, oder gibt es etwas, das ich vermisst habe?
Danke!
Als eine alternative Option, versuchen Sie die ['noscript' Erweiterung] (http://stackoverflow.com/a/27217451/771848) - arbeitete für mich vor langer Zeit. – alecxe