我正在尝试在我的 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 在页面完成加载之前不会超时
Capybara.default_max_wait_time = 10