水豚歧义失败 select 列表

Capybara Ambiguity Failure select list

我正在 不明确的匹配,找到 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 而不是 jenny

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

也无法检测到值 select select 列表已隐藏

chosen_select 是辅助方法

Chosen::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

我进行了一些搜索,我猜您正在使用 chosen-rails gem,它提供了 https://github.com/tsechingho/chosen-rails/blob/fb28dfcf0dca5ef49344a8d961b733b5bd96449f/lib/chosen-rails/rspec.rb This ends up calling chosen_select! which should work due to the specifying of :prefer_exact for the matching method at https://github.com/tsechingho/chosen-rails/blob/fb28dfcf0dca5ef49344a8d961b733b5bd96449f/lib/chosen-rails/rspec.rb#L66 中定义的 chosen_select 方法。由于它对您不起作用,而且您仍在使用 Capybara 2.1.0,我猜您也使用了指定匹配方法之前的真正旧版本的 chosen-rails 。如果是这种情况,并且您无法升级 gem,您可以尝试指定一个 Regexp 以强制文本查找进入精确模式

chosen_select(/\Ajeeny\z/, from: 'column'