2014-06-17 9 views

risposta

16

Con Capybara è possibile attivare eventi click invece di cliccare direttamente su un elemento in questo modo:

page.find("#some_element").trigger("click") 

Il problema è questo non funziona in selenio. Quindi, cosa si può fare è condizionale eseguire un capibara normale click o un trigger("click") basata sul driver javascript corrente, che sarebbe simile:

if Capybara.javascript_driver == :selenium 
    page.find("#some_element").click 
else 
    page.find("#some_element").trigger("click") 
end 

Ovviamente questo è proprio l'ideale, ma è il modo migliore che ho trovato per affrontare situazioni come queste.

+0

destra sul posto . Il driver WebKit gestisce molto male i menu a tendina e l'unico modo per aggirare questo problema è tramite 'trigger'. – zakelfassi

0

Forse u dovrebbe cercare di essere più specifico nel percorso come la esattamente riga di una tabella invece di una linea, qualcosa come:

page.find('//*[@id="row_0_table"]') #returns error

page.find('//*[@id="table_0_0"]') #works