jquery-ui - 使用 Cucumber 测试 JQuery 自动完成 ui

标签 jquery-ui cucumber capybara jquery-ui-autocomplete

我得到了这个 cucumber 场景:

When I fill in "End User" with "john"
Then wait
Then wait
When I click "John Doe"
Then show me the page

步骤定义:

Then /^wait$/ do
  sleep 2
end

When /^(?:|I )click "([^"]*)"$/ do |selector|
  find(":contains('#{selector}')").click
end

它通过了,但没有选择用户。“最终用户”等于“显示页面”中的“john”。

我什至无法让它在 JavaScript 控制台中工作。以下代码不选择任何内容。

$(":contains('John Doe')").last().trigger('click')
# => [<a class=​"ui-corner-all" tabindex=​"-1"...

如何编写自动完成选择脚本?无论是纯 JavaScript 还是 Cucumber。

最佳答案

尝试一下

When /^I type in "([^\"]*)" into autocomplete list "([^\"]*)" and I choose "([^\"]*)"$/ do |typed, input_name,should_select|
   page.driver.browser.execute_script %Q{ $('input[data-autocomplete]').trigger("focus") }
   fill_in("#{input_name}",:with => typed)
   page.driver.browser.execute_script %Q{ $('input[data-autocomplete]').trigger("keydown") }
   sleep 1
   page.driver.browser.execute_script %Q{ $('.ui-menu-item a:contains("#{should_select}")').trigger("mouseenter").trigger("click"); }
end

像这样使用

And I type in "Foo" into autocomplete list "input_id" and I choose "Foobar"

关于jquery-ui - 使用 Cucumber 测试 JQuery 自动完成 ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355586/

相关文章:

jquery - 多个 .CSS Jquery 行

ruby-on-rails - cucumber : Size of features

使用 Capybara 测试渐进增强的功能

ruby-on-rails - 在 rails 中使用 RSpec 和 Capybara 时未定义的方法 `visit'

jquery - 如何使用 z-index 在前面显示 ui 时间选择器?

javascript - Jquery UI .draggable 和 Chrome

javascript - jsp如何在模态对话框中显示 “no results found”

ruby-on-rails - Rails 3.1.1 和 Cucumber - 错误

ruby-on-rails-4 - Capybara::Poltergeist 状态错误,无法访问服务器

ruby-on-rails - 访问设计用于 Rspec 和 Capybara 测试的配置消息