我正在升级我的 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/

10-13 02:14