我正在尝试在我的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' } ).
但在失败的expect
调用之前立即调用 page.driver.browser.manage.logs.get(:browser)
,只返回一个空数组。
也许我的做法有问题?
确保Capybara在页面加载完成之前不会超时
Capybara.default_max_wait_time = 10