【问题标题】:How do I select an option from a select box using Capybara in Rails 4?如何在 Rails 4 中使用 Capybara 从选择框中选择一个选项?
【发布时间】:2015-11-03 03:18:28
【问题描述】:

我正在尝试使用 Capybara 从选择框中选择一个选项,并且我尝试了多种组合和方法来选择该项目,但 Capybara 说它找不到该元素。这是它从中选择的 HTML:

   <select id="subject_id" name="subject[id]"><option value="">Select a subject</option>
    <option value="25">Biology &amp; Life Sciences</option>
    <option value="26">Business &amp; Management</option>
    <option value="27">Chemistry</option>
    <option value="28">Communication</option>
    <option value="29">Computer Science</option>
   </select>

我尝试了多种组合,例如从列表中选择值为“29”的“计算机科学”:

select "Computer Science", from: "subject_id"

find('subject_id').find(:xpath, 'option[29]').select_option

find('subject_id').find("option[value='29']").click

select "29", from: "subject[id]"

我知道这与我登录时位于正确的页面无关,并且我已经运行了需要身份验证但不需要使用选择框的类似测试。

到目前为止,这些只是我尝试过的 9 或 10 种不同组合之一。我做错了什么,我该怎么做才能停止收到这个Capybara::ElementNotFound 错误?

【问题讨论】:

    标签: ruby-on-rails ruby rspec capybara


    【解决方案1】:

    要选择&lt;option value="29"&gt;Computer Science&lt;/option&gt; 选项,您需要选择如下选项:

    select "29", from: "subject_id"
    

    将选项值传递给select

    29 是选项Computer Science 的选项值。

    【讨论】:

    • 嘿,我终于找到了我的问题!我正在使用集合选择,但我忘记了 Rails 使用单独的数据库进行测试,其中包含空表,这就是为什么它无法找到该元素,因为它首先不存在。愚蠢的我.......
    • @Jamaal 你应该发布你的解决方案
    猜你喜欢
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2013-03-13
    • 2015-02-13
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多