在Rails应用程序中,我试图使用Capybara和capybara-webkit驱动程序在Rspec中使用
jQuery TokenInput field测试一个
Bootstrap modal.有关部分如下:
click_link 'Create Team Modal' sleep 1 within('div#modal_popup') do fill_in 'input#token-input-team_name',with: 'Fancy team name' sleep 1 fill_in 'input#token-input-team_name',with: '\t' sleep 1 click_button 'Create Team' end page.should have_content('Fancy team name')
>点击按钮获得模态
>使用团队名称填写TokenInput
>模拟一个Tab键按下来选择它
>创建团队
>验证名称显示在页面上
这只适用于所有睡眠1的地方;否则Capybara在had_content中崩溃,最终导致服务器错误,因为无法正确选择团队名称.然而,没有TokenInput字段的其他Bootstrap模式在加载之前不需要睡眠1.
所有这一切,有什么办法摆脱睡眠,这样正常吗? Capybara 2拿出wait_until(有很好的理由),因为它将在默认的等待时间内等待测试某件事情,但这似乎并没有反映在我上面的测试中;就好像水豚进入/退出这个模式时不参与那个等待期.任何人都有这方面的经验?使用Rails 3.2.10,Rspec 2.12,Capybara 2,capybara-webkit 0.14.0,TokenInput 1.6.
解决方法
尝试在test env,layouts / applicaiton.html.erb中禁用动画
<% if Rails.env.test? %> <style type="text/css"> .modal.fade,.fade { -webkit-transition: opacity 0.01s; -moz-transition: opacity 0.01s; -ms-transition: opacity 0.01s; -o-transition: opacity 0.01s; transition: opacity 0.01s; } </style> <%end%>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。