Die*_*ego 4 ruby-on-rails phantomjs poltergeist bootstrap-typeahead angular-ui-bootstrap
我在测试我的输入输入时遇到问题.我正在使用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
Run Code Online (Sandbox Code Playgroud)
如果我使用Chrome驱动程序运行它,它会成功运行.但是,当使用Poltergeist运行时,虽然服务器收到请求并相应地返回用户,但未显示建议框.
我认为这fill_in是blur在场上触发,使得盒子消失.我曾经Capybara::Screenshot看过是否有任何建议出现,但没有.输入字段甚至没有得到焦点.
Die*_*ego 10
我发现它真的是因为Poltergeist触发了blurin fill_in.在填写预先输入字段之前,我所要做的就是执行以下脚本:
page.execute_script "$('input[typeahead]').unbind('blur')"
Run Code Online (Sandbox Code Playgroud)
这样,UI Typeahead的blur事件不会被调用,并且它认为它具有焦点在该字段上,相应地呈现建议框.
如果您不使用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');
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |