如何模拟在Rspec中按Enter键

时间:2013-07-09 07:12:14

标签: ruby-on-rails rspec ruby-on-rails-3.2 capybara rspec-rails

我有一个RSpec测试,如下所示

describe "visitor do search" do      
  before do
      fill_in "keyword", with: "London"
      click_button "search_all"
    end

    it "should visit search result path" do
      page.should have_selector('title', :text => "Search Result")
    end
end

我想删除按钮'search_all'并使用按键输入等事件进行更改。

如何使用RSpec编写代码?

此致

2 个答案:

答案 0 :(得分:7)

只需添加' \ n'到查询字符串的末尾:

fill_in "keyword", with: "London\n"

答案 1 :(得分:4)

您可以使用capybara-webkit来执行此操作,这是一个允许您测试Javascript的Capybara驱动程序。只需阅读文档以安装它并使其在您的项目中工作,然后您应该能够使用这段代码模拟键盘上的点击:

keypress = "var e = $.Event('keydown', { keyCode: 13 }); $('body').trigger(e);"
page.driver.execute_script(keypress)

希望这有帮助。