2013-07-09 78 views
6

我與RSpec的測試像下面如何模擬按下回車鍵在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編寫代碼?

問候,

回答

4

可以使用capybara-webkit,這是一個水豚驅動程序允許您測試JavaScript做到這一點。簡單地讀取安裝它,讓它在你的項目中的工作文檔,那麼你應該能夠模擬點擊使用這段代碼在鍵盤上:

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

希望這有助於。

+1

謝謝:)其驚人的作品! –

6

一個「\ n」只需添加到您的查詢字符串的結尾:

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

非常好。我幾乎爲了這個超級平凡的任務安裝了QB和capybara-webkit。我正在使用rspec與水豚,這也起作用:'find('#thing')。set「word \ n」' – taystack