0

我正在使用 Cucumber 对我的 Rails 应用程序进行一些测试,一切都很顺利,直到我必须从下拉菜单中选择一个选项。(用simple_formgem 制作的选择器。)我安装了selenium-webdrivergem。

此菜单适用于实际测试(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>
4

1 回答 1

0

没关系,发现问题了。测试中使用的数据库在开始时总是空的,所以我的设备实际上都不存在于测试中。修复只是Device.create!在我转到表单页面之前在其中一个步骤中使用必要的参数进行调用。工作完美。

于 2013-07-17T14:33:55.600 回答