Rails 6.1 アプリのいくつかのページに Turbo Drive を導入する実験を行っています。
Ḯ いくつかのレガシー JQuery プラグインの初期化を呼び出しから$(document).ready()
呼び出しに移動した後、期待どおりになりましたdocument.addEventListener('turbo:load', ..)
。
ただし、Capybara 機能仕様を実行しているときに、失敗した仕様のスクリーンショットから、JQuery プラグインが初期化されていないことがわかります。失敗するテストの典型的な例:
scenario 'element is visible', :js do
visit(my_page_path)
expect(page.find(#some-jquery-plugin-created-element).text).to \
eq 'some expected text from the plugin element'
end
これが機能仕様で機能しない理由を理解するのを手伝ってくれる人はいますか? turbo:load
イベントがまったくトリガーされていないように見えます。
私が試したこと
ブラウザのログを確認する
ドライバーでのログ記録を有効にします。
Selenium::WebDriver::Remote::Capabilities.chrome( "goog:loggingPrefs": { browser: 'ALL' } ).
..しかしpage.driver.browser.manage.logs.get(:browser)
、失敗したexpect
呼び出しの直前に呼び出すと、空の配列が返されます。
おそらく私はそれを間違っていますか?
ページの読み込みが完了する前にカピバラがタイムアウトしないようにする
Capybara.default_max_wait_time = 10