我正在升级我的 Rails 应用程序以使用 Turbolinks 5 来利用 Native Wrappers。我的所有 javascript 都已更新,并且在浏览器和 Android 应用程序中一切正常。我在使用 js true 时遇到了一些 capybara 测试的问题。在撰写本文时,我正在使用最新的 capybara (2.11.0)、poltergeist (1.12.0) 和 phantomjs (2.1)。我也尝试过 capybara-webkit 驱动程序,但没有成功。
我似乎遇到问题的地方是,在 turbolinks 5 中,所有表单都应该远程提交,而 turbolinks 知道如何处理请求。我发现使用 Capbara,我的表单在提交后不会重定向,而是停留在同一页面上。我已经做了很多谷歌搜索和反复试验,并且有一些短。任何帮助将不胜感激。如果需要更多信息,请告诉我。
scenario 'user has dispatch permission and valid attributes', js: true do
sign_in('jdoe')
page.visit path
page.fill_in 'contact_text_input', with: 'Jimmy'
page.select 'Medium - 3 Hours', from: 'Priority'
page.fill_in 'Created By', with: 'John Doe'
page.click_button 'Create This'
save_and_open_page
expect(page.current_path).to eq("/dispatch")
expect(page).to have_content('This was created successfully')
end
def sign_in(username)
page.visit '/'
page.fill_in 'Username', with: username
page.fill_in 'Password', with: 'test'
page.click_button 'Log In'
end
最佳答案
您可以通过进度条跟踪 Turbolinks AJAX 请求,例如:
def wait_for_turbolinks
has_css?('.turbolinks-progress-bar', visible: true)
has_no_css?('.turbolinks-progress-bar')
end
关于javascript - Turbolinks 5/ capybara /Rails,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41683670/