加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 通过Capybara(v2)与Bootstrap模式交互的麻烦

发布时间:2020-12-16 19:24:53 所属栏目:百科 来源:网络整理
导读:在Rails应用程序中,我试图使用Capybara和capybara-webkit驱动程序在Rspec中使用 jQuery TokenInput field测试一个 Bootstrap modal.有关部分如下: click_link 'Create Team Modal'sleep 1within('div#modal_popup') do fill_in 'input#token-input-team_nam
在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%>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读