我正在尝试解决为学习Rails和测试而编写的功能规范。这是Rails 4应用程序的edit_spec。我正在使用RSpec和Capybara。

问题:
水豚无法从表单上的两个下拉列表中找到元素。这是表单源代码的相关部分:

<div class="field">
<label for="appointment_member_id">Member</label><br>
<select id="appointment_member_id" name="appointment[member_id]">
<option value="1">Callis Callis</option>
<option value="2">Rachale Rachale</option>
<option value="3">Hal Hal</option>
<option value="4">Kallis Kallis</option>
<option value="5">Earle Earle</option>
<option value="6">Rudy Rudy</option></select>
</div>
<div class="field">
<label for="appointment_trainer_id">Trainer</label><br>
<select id="appointment_trainer_id"
name="appointment[trainer_id]"> <option value="1">Jacob Jacob</option>
<option value="2">Michele Michele</option>
<option value="3">Alex Alex</option>
<option value="4">Yanni Yanni</option>
<option value="5">Upton Upton</option>
<option value="6">Willham Willham</option></select>
</div>


在我的edit_spec中,我尝试使用“选项值”和“选择ID”来使水豚从下拉列表中选择名称:

select('4', :from => 'appointment_member_id')
select('2', :from => 'appointment_trainer_id')


结果是Capybara :: ElementNotFound错误。这是错误消息的全文:

使用更正的信息成功更新约会(失败-1)

失败:

1) Editing appointments updates an appointment successfully with corrected information
 Failure/Error: select('4', :from => 'appointment_member_id')
 Capybara::ElementNotFound:
   Unable to find option "4"


我研究了Capybara的问题和文档,也研究了类似问题的Stackoverflow帖子。海报解决了问题,但不记得他是怎么做到的。我对为什么水豚无法从下拉列表中找到成员和培训师感到困惑?选项值和名称似乎在窗体上可见。我想念什么?感谢您的帮助!

最佳答案

水豚模拟用户的行为。因此,请尝试使用用户看到的内容代替ID和值:

select 'Kallis Kallis', from: 'Member'
select 'Michele Michele', from: 'Trainer'

关于ruby-on-rails - capybara 在下拉列表中找不到元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28057864/

10-12 04:20