2011-08-31 15 views
12

Ho una forma particolarmente difficile che sto cercando di fare clic sul pulsante di ricerca e non riesco a farlo. Ecco il codice per la forma dalla sorgente della pagina:Fare clic su un pulsante con Ruby Mechanize

<input type="image" name="" src="http://images.example.com/WOKRS53B4/images/search.gif" align="absmiddle" border="0" onclick="return check_form_inputs('UA_GeneralSearch_input_form','search');" title="Search" alt="Search" class=""> 

Io sto cercando di fare l'azione standard mechanize clic:

login_page = agent.click(homepage.link_with(:text => "Search")) 

È questo perché il pulsante utilizza Javascript? Se sì, qualche suggerimento?

risposta

5

Non è un collegamento, è un pulsante. Quello che devi fare è cercare il modulo (ad esempio, con form_with) e quindi cercare ImageButton e submit.

+0

Avete un codice che dimostra come utilizzare un input di immagine per inviare un modulo? – Kris

+1

Penso che dovresti prendere in considerazione la possibilità di porre una domanda appropriata in quanto non sembra correlata a questa. – Serabe

32

Ho lottato anche con questo, soprattutto perché il mio modulo aveva più pulsanti.

Ci sono diversi modi per presentare un modulo (con molti utilizzando un blocco 'form_with'), ma questo mi ha aiutato:

# get the form 
form = agent.page.form_with(:name => "my-form") 
# get the button you want from the form 
button = form.button_with(:value => "Search") 
# submit the form using that button 
agent.submit(form, button) 

Tutte le informazioni here

Inoltre, assicurarsi di eseguire l'aggiornamento a l'ultima meccanizzazione. Stavo usando mechanize 1.x, che mi stava dando errori "metodo indefinito" per il codice sopra.

Problemi correlati