gpt4 book ai didi

ruby-on-rails - capybara 无法在下拉列表中找到元素

转载 作者:行者123 更新时间:2023-11-28 20:06:05 25 4
gpt4 key购买 nike

我正在尝试对我为学习 Rails 和测试而编写的功能规范进行故障排除。它是 Rails 4 应用程序的 edit_spec。我正在使用 RSpec 和 Capybara。

问题: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”让 capybara 从下拉列表中选择名称:

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 帖子。张贴者解决了这个问题,但不记得他是怎么做到的。我很困惑为什么Capybara无法从下拉列表中找到成员和培训师?选项值和名称在表单上似乎是可见的。我错过了什么?感谢您的帮助!

最佳答案

Capybara 模拟用户行为。因此,不要使用 id 和值,而是尝试使用用户看到的内容:

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com