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

ruby-on-rails – 无法使用Poltergeist和PhantomJS测试Angular U

发布时间:2020-12-17 03:55:49 所属栏目:百科 来源:网络整理
导读:我在测试我的输入输入时遇到问题.我正在使用Rails,RSpec,Capybara,Angular UI 0.10,AngularJS,Poltergeist.这是我的测试: create(:user,name: "Test User")fill_in 'User',with: "Test"find('#delegations').find('li.active').click 如果我使用Chrome驱动
我在测试我的输入输入时遇到问题.我正在使用Rails,RSpec,Capybara,Angular UI 0.10,AngularJS,Poltergeist.这是我的测试:

create(:user,name: "Test User")
fill_in 'User',with: "Test"
find('#delegations').find('li.active').click

如果我使用Chrome驱动程序运行它,它会成功运行.但是,当使用Poltergeist运行时,虽然服务器收到请求并相应地返回用户,但未显示建议??框.

我认为fill_in会触发场上的模糊,使得框消失.我用Capybara :: Screenshot看看是否有任何建议出现,但没有.输入字段甚至没有得到焦点.

解决方法

我发现它确实是因为Poltergeist触发了fill_in中的模糊.在填写预先输入字段之前,我所要做的就是执行以下脚本:

page.execute_script "$('input[typeahead]').unbind('blur')"

这样,UI Typeahead的模糊事件不会被调用,并且它认为它具有焦点在该字段上,相应地呈现建议框.

如果您不使用JQuery,此脚本适用于AngularJS:

elements = document.getElementsByTagName('input');
for (var i = 0; i < elements.length; i++) {
  if (elements[i].hasAttribute('typeahead')) {
    angular.element(elements[i]).unbind('blur');
  }
}

(编辑:李大同)

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

    推荐文章
      热点阅读