集成测试:使用Capybara为Rails_Admin填充自动填充下拉列表

时间:2016-07-25 14:31:11

标签: ruby-on-rails capybara integration-testing rails-admin

在我的rails应用中,我使用的是rails_admin。我想填补一段感情。比方说,帖子属于作者。我想设置作者。 rails_admin使用自动完成表单来选择此数据,即xhr。如何使用capybara选择值并提交此数据。正常选择在这里不起作用。

我假设我需要采取以下行动

  1. 点击胡萝卜图标,
  2. 从下拉列表中选择第一个值
  3. 还是有其他方法来填充这些数据,即执行脚本等。 但是我该怎么做?

    修改

    截至目前,我已开始使用硒驱动器,并且我使用以下解决方案

    within '#post_user_id_field' do
      find(".input-group-btn").click
    end
    page.execute_script(%q{$("ul#ui-id-3").find("li")[1].click()})
    

    建议一些更好的方法。

    提前致谢,

2 个答案:

答案 0 :(得分:0)

我看了Using Capybara with RSpec我发现了一些有用的信息。如果没有看到任何代码,您可以执行以下操作(从上面的链接获取):

describe 'some stuff which requires js', :js => true do
  it 'will use the default js driver'
  it 'will switch to one specific driver', :driver => :webkit
end

这将在您的测试中启用javascript。如果您仍然无法选择,可以通过在测试代码中放置save_and_open_screenshot来查看javascript驱动程序看到的内容,从而进行一些调试。

答案 1 :(得分:0)

你是如何做的真的取决于页面上的html,但基本上归结为

find(:css, 'selector for the caret').click
find(:css, 'selector for the dropdown elements', text: 'text of the dropdown element to be selected').click

并确保您使用的是支持JS的驱动程序 - https://github.com/jnicklas/capybara#drivers

注意:如果Capybara.default_selector ==:css(默认情况下这样做),则不需要查找调用中的css