【问题标题】:Capybara Angular rspec testing for select dropdown form选择下拉表单的 Capybara Angular rspec 测试
【发布时间】:2013-12-07 17:25:40
【问题描述】:

我在 Angular.js 中实现了以下下拉菜单/选择:

<select id="user_accounts" ng-model="account_chosen" 
  ng-options="item.name for item in accounts">
  <option value="">All</option>
</select>

账户持有一组对象:账户A、账户B、账户C,在客户端呈现给用户查看。

在 Capybara RSpec 方面,我想像这样集成一个测试:

select('account A', from: "user_accounts")

但是,在运行测试时,我收到“无法找到选项‘帐户 A’”错误。如何配置测试以正确地从下拉列表中选择一个选项?

【问题讨论】:

    标签: ruby-on-rails angularjs rspec capybara


    【解决方案1】:

    假设你有一个像 phantomjs 或 selenium 这样的驱动程序,你可以做这些事情:

    通过文本选择点击:

    find('#user_accounts').find(:xpath, "option[normalize-space(text())='account A']").select_option
    

    或检查选择框是否有文本:

    element=find('#user_accounts')
    element.should have_selector(:xpath, "option[normalize-space(text())='account A']")
    

    【讨论】:

      【解决方案2】:

      您没有提到您正在使用哪个 Capybara 驱动程序,但如果您的测试依赖于客户端渲染,您需要确保使用可以执行 JavaScript 的驱动程序。默认的 RackTest 驱动程序不能。

      有关将驱动程序设置为 Selenium 或其他支持 JavaScript 的选项的说明,请参阅 https://github.com/jnicklas/capybara#drivers。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-06
        • 2015-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多