find('order-button',:disabled => false)引发ArgumentError:无效的键

时间:2013-04-23 10:32:30

标签: cucumber capybara capybara-webkit

在我正在测试的网站上,发生以下情况:

  • 点击按钮
  • 执行ajax-call,暂时禁用所有输入字段
  • 一旦检索到数据,就会填写字段并且不再禁用

等待这种情况发生(没有睡眠或其他愚蠢的解决方案),我在考虑这样的事情:

find('order-button', :disabled => false).click

但我得到以下例外:ArgumentError: invalid keys :disabled, should be one of :text, :visible, :between, :count, :maximum, :minimum, :exact, :match, :wait

我如何让它工作?我使用的是最新版本的Capybara(2.1.0)

高度赞赏此处的任何输入:)

1 个答案:

答案 0 :(得分:3)

:disabled选项is supported only by following selector types

:field
:link_or_button
:button
:fillable_field
:radio_button
:checkbox
:select
:file_field

可以用作:

find(:field, 'field_id', disabled: false)

您似乎使用的:css不支持此选项。

使用:css时,您需要使用css的属性,这些属性要短得多:

find('#field_id:not([disabled])')