在我的规范中我有
select call_status.name, from: 'call_status_id'
当我在此命令之前或之后执行save_and_open_page时,有
<select class="form-control" id="call_status_id" name="call[status_id]">
但是当我运行这个测试时,我有
Failure/Error: select call_status.name, from: 'call_status_id'
Capybara::ElementNotFound:
Unable to find select box "call_status_id"
我也试过
select call_status.name, from: '#call_status_id'
或
select call_status.name, from: 'Call Status Id'
或
select call_status.name, from: 'Call Status'
但是我得到了同样的错误。
答案 0 :(得分:2)
尝试将您的选择包装在within
块中?
within('//divname') do
select call_status.name, from: '#call_status_id'
end
我无法告诉您代码无法正常工作的原因 - 我认为您在运行时100%确定页面上存在ID - 但这可能会为您提供解决方法;在类似的情况下,它对我有用。
答案 1 :(得分:1)
Semantic-UI 的下拉列表组件出现问题,该组件使用选择 html组件并设法使用visible = false解决,如下所示:
select 'Male', from: :user_gender, visible: false
答案 2 :(得分:0)
您可以在支持文件夹e.i features / support / world.rb下创建一个帮助程序 将此方法添加到该文件中:
def select_from_chosen(item_text, options)
page.execute_script("
$('##{options[:from]} option').filter(function () {
return $(this).text() == '#{item_text}';
})[0].selected = true;
$('##{options[:from]}').trigger('liszt:updated');"
)
end
现在您可以在步骤定义中使用此方法,如下所示:
select_from_chosen('Select call status',from: 'call_status_id')
我希望这会有所帮助。
答案 3 :(得分:0)
使用标签文本值。在下面的示例中,您应该使用select call_status.name, from: 'Call Status'
<label>Call Status</label>
<select class="form-control" id="call_status_id" name="call[status_id]">