2013-07-09 13 views
6

Ho un test con RSpec come qui di seguitoCome simulare premendo Invio in 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 

voglio rimuovere il pulsante 'search_all' e cambiarlo con l'evento come premere invio da tastiera.

Come si scrive codice con RSpec?

saluti,

risposta

4

si può fare usando capybara-webkit, che è un driver Capybara che consente di testare i JavaScript. È sufficiente leggere il documento per installarlo e farlo funzionare nel progetto, allora si dovrebbe essere in grado di simulare un clic sulla tastiera utilizzando questo pezzo di codice:

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

Spero che questo aiuti.

+1

grazie :) suo funziona incredibilmente !! –

6

Basta aggiungere un '\ n' alla fine della stringa di query:

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

Molto bello. Ho quasi installato Qt con capybara-webkit per questo compito super-triviale. Sto usando rspec con capybara e questo ha funzionato anche: 'find ('# thing'). Set" word \ n "' – taystack

Problemi correlati