如何在Rails 4中使用Capybara从选择框中选择一个选项?

时间:2014-03-30 15:17:47

标签: ruby-on-rails ruby rspec capybara

我尝试使用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>

我尝试过多种组合来选择“计算机科学”和“#34;其值为&#34; 29&#34;从列表中:

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错误?

1 个答案:

答案 0 :(得分:2)

要选择<option value="29">Computer Science</option>选项,您需要选择以下选项:

select "29", from: "subject_id"

将选项值传递给select

29是选项Computer Science的选项值。