ruby-on-rails – 为什么我的Capybara / Poltergeist测试从jQuer
更新:我已经修复了这个问题,经过我自己的许多艰苦的工作.我很高兴成为任何需要手的人的资源.这是
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,看看它是否有效,如果它让你离开树林,你可以使用一个不同的驱动程序(它打败了几天的工作一个工作的小部件). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |