JavaScriptが無効のときでも機能するように設計されたアプリがありますので、それらのケースをカバーする仕様をいくつか書きたいと思います。Capybara + Seleniumを使用しているときにJavaScriptを無効にする
私はカピバラとセレン(Firefoxの)を使用していると私は(セレンのjavascript.enabled
プロパティを経由して)無効にはJavaScriptを使用して新しいドライバを登録してい
# 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
機能仕様は、実際にJavaScriptを無効にするには失敗しています。テスト中にブラウザウィンドウがポップアップして、binding.pry
で一時停止すると、JavaScriptが必要であることが分かっているアイテムをクリックして動作させることができます。
サイドノート:実際にFirefoxの設定に行きJavaScriptを無効にすると、テストに合格します。つまり、ブラウザに設定した設定を継承し、ドライバを登録するときに指定された設定を実際に使用していないように見えます。
これは正しいアプローチですか、私が逃したものはありますか?
ありがとうございます!
代替オプションとして、ずっと前に私のために働いた['noscript'拡張機能(http://stackoverflow.com/a/27217451/771848)]を試してみてください。 – alecxe