Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 为什么我的Capybara / Poltergeist测试从jQuery自动填充字段中选择?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
更新:我已经修复了这个问题,经过我自己的许多艰苦的工作.我很高兴成为任何需要手的人的资源.这是 working setup.的一个要点

我已经尝试过我可以找到Google和SO的每一个解决方案.以下是我尝试过的一些不同的事情:

page.execute_script %Q{$('#{SELEctor}').val('#{value}').trigger('keydown')}

fill_in field,with: options[:with]
page.execute_script %Q{ $('##{fielD}').trigger('focus') }
page.execute_script %Q{ $('##{fielD}').trigger('keydown') }

这是什么失败:

page.should have_SELEctor('ul.ui-autocomplete li.ui-menu-item a')

但是当我在Firebug中看到它并且在浏览器中测试它时,它肯定是在那里.

这里有所有的细节,包括上述的重述.请记住,浏览器中的自动填充字段工作正常.

lisTing_integration_spec.rb

require "spec_Helper"

describe "LisTing Integration" do

  let!(:user) { login_user }

  it "lets a user add information lisTing",js: true do
    lisTing = create(:lisTing,user: user)
    click_link('Additional Information')
    click_link('Create')
    fill_autocomplete('lisTings_search',with: lisTing.item_id)
  end

end

规格/支持/ feature_Helper.rb

def fill_autocomplete(field,options = {})
  fill_in field,with: options[:with]
  page.execute_script %Q{ $('##{fielD}').trigger('focus') }
  page.execute_script %Q{ $('##{fielD}').trigger('keydown') }
  SELEctor = %Q{ul.ui-autocomplete li.ui-menu-item a:contains('#{options[:with]}')}
  page.should have_SELEctor('ul.ui-autocomplete li.ui-menu-item a')
  page.execute_script %Q{ $("##{SELEctor}").trigger('mouseenter').click() }
end

ERB从视图模板

<%= simple_fields_for :lisTings  do |f| %>
  <%= f.input :search,label: "Search by LisTing",required: true %>
<% end %>

和咖啡书:

$("#lisTings_search").autocomplete
  source: (request,responsE) ->
    options = 
      term: request.term
    $.get "/search_lisTings",options,(data) ->
      if Data.length == 0
        alert "No lisTings found."
      response data
  minLength: 2
  SELEct: (event,ui) ->
    add_lisTing_hash = 
      type: "GET"
      url: "/add_lisTing"
      data: { id: ui.item.id }
      success: () ->
    $.ajax(add_lisTing_hash)

解决方法

JS驱动程序一般都是meh,它们的速度很慢,并不是单一的,它们涵盖了100%的功能,而且它们常常很古怪,很难调试,但我相信你现在已经知道了.

我在rails 3.2,minitest和poltergeist 1.3.0(一个ajaxed的下拉列表)中有类似的代码,但是它没有什么好的理由定期休息(有人可能会说它有一个poltergeist?我已经采取了切换测试硒和poltergeist之间的情况呢几次),不知道为什么autocompleter不会为你工作,但感觉像一个bug,

提交问题到https://github.com/jonleighton/poltergeist(你已经有?https://github.com/jonleighton/poltergeist/issues/439),尝试改为SELEnium或webkit,看看它是否有效,如果它让你离开树林,你可以使用一个不同的驱动程序(它打败了几天的工作一个工作的小部件).

大佬总结

以上是大佬教程为你收集整理的ruby-on-rails – 为什么我的Capybara / Poltergeist测试从jQuery自动填充字段中选择?全部内容,希望文章能够帮你解决ruby-on-rails – 为什么我的Capybara / Poltergeist测试从jQuery自动填充字段中选择?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。