Capybara Ambiguity Failure选择列表

时间:2017-01-10 04:21:06

标签: html rspec capybara

我到了 模糊匹配,发现2个元素匹配css" .active-result"用文字" jeeny"

<select style="display: none;" class="form-control input-sm" id="column" name="column"><option value="">Select</option><option value="UPPER(supervisor.name)">jeeny roat</option>
<option value="UPPER(suprem.code)">jenny</option>
<option value="UPPER(officer.code)">carl</option></select>

它能够检测到jeeny roat bu not jenny

 chosen_select('jeeny', from: 'column')
 chosen_select('jeeny roat', from: 'column')

也无法检测值选择列表隐藏

chosen_select是辅助方法

使用实例方法

选择:: Rspec :: FeatureHelpers
  def chosen_select(value, *args)
    opt = args.extract_options!
    input = chosen_input(opt)
    args.unshift(value).uniq.each { |item| chosen_select!(input, item) }
  end

1 个答案:

答案 0 :(得分:2)

我做了一些搜索,我猜你还在使用chosen-rails gem,它提供https://github.com/tsechingho/chosen-rails/blob/fb28dfcf0dca5ef49344a8d961b733b5bd96449f/lib/chosen-rails/rspec.rb定义的chosen_select方法。这最终会调用{{1}因为https://github.com/tsechingho/chosen-rails/blob/fb28dfcf0dca5ef49344a8d961b733b5bd96449f/lib/chosen-rails/rspec.rb#L66的匹配方法指定了:prefer_exact,它应该可以工作。既然它不适合你,而且你仍然在Capybara 2.1.0,我猜你也会在匹配之前选择一个非常老的选择轨道版本方法已指定。如果是这种情况,并且您无法升级gem,则可以尝试指定Regexp以强制文本查找到精确模式

chosen_select!