我正在使用 Cucumber 对我的 Rails 应用程序进行一些测试,一切都很顺利,直到我必须从下拉菜单中选择一个选项。(用simple_form
gem 制作的选择器。)我安装了selenium-webdriver
gem。
此菜单适用于实际测试(Chrome、Firefox、Safari),但是当我运行 Cucumber 测试时,菜单是空的。我已经@javascript
启用了这个场景,我看到它通过 Firefox 运行。它可以找到菜单,当它“点击”它时,列表是空的,所以测试失败(因为它需要选择一个指示的选项——它不存在)。有任何想法吗?
编辑:这是黄瓜中的代码(步骤定义)
#...
find('#user_device_device_id').click
select('<some menu option>', :from => 'user_device_device_id' )
#...
这是 new.html 中下拉菜单的 HAML 代码:
= simple_form_for [:manage, @user_device], :html => {:class => 'form-vertical' } do |f|
= f.select(:device_id, Device.all.collect{ |d| [d.get_name, d.id, {'data-connectiontype' => d.connection_type}] }, :required => true)
HTML 中选择器的源代码(来自 Firefox——不是在 Cucumber 测试期间):
<select id="user_device_device_id" name="user_device[device_id]">
<option value="1" data-connectiontype="abc">Device 1</option>
<option value="2" data-connectiontype="defg">Device 2</option>
</select>