如何模拟在Rspec中按Enter键

Gle*_*ita 6 rspec ruby-on-rails capybara rspec-rails ruby-on-rails-3.2

我有一个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
Run Code Online (Sandbox Code Playgroud)

我想删除按钮'search_all'并将其更改为类似按键盘输入的事件.

如何使用RSpec编写代码?

问候,

eMg*_*Mgz 7

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

fill_in "keyword", with: "London\n"
Run Code Online (Sandbox Code Playgroud)

  • 请注意,只有当您对“with”值使用双引号时,这才有效。如果您使用单引号,例如 `with: 'London\n'`,它实际上会键入换行符,因为除了转义单引号字符之外,转义序列在单引号内不起作用。 (2认同)

sie*_*ied 5

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

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

希望这可以帮助。