【问题标题】:Integration Tests: Filling Autocomple Dropdown in Rails_Admin using Capybara for集成测试:在 Rails Admin 中使用 Capybara 填充自动完成下拉菜单
【发布时间】:2016-07-25 14:31:11
【问题描述】:

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

我假设我需要采取以下措施

  1. 点击胡萝卜图标,
  2. 从下拉列表中选择第一个值

或者是否有其他方法来填充此类数据,即执行脚本等。 但是我该怎么做呢?

编辑

到目前为止,我已经开始使用 selenium 驱动程序,并且正在使用以下解决方案

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

建议一些更好的方法。

提前致谢,

【问题讨论】:

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


    【解决方案1】:

    我查看了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 驱动程序看到的内容。

    【讨论】:

      【解决方案2】:

      你怎么做真的取决于页面上的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(默认情况下会这样做),则 find 调用中的 :css 不是必需的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-11
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多