2011-08-31 18 views
12

Tengo una forma particularmente difícil de tratar de hacer clic en el botón de búsqueda y parece que no puedo hacerlo. Aquí está el código para el formulario de la página de origen:Al hacer clic en un botón 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=""> 

que estoy tratando de hacer la acción mecanizar clic estándar:

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

¿Esto es porque el botón utiliza javascript? Si es así, ¿alguna sugerencia?

Respuesta

5

No es un enlace, es un botón. Lo que debe hacer es buscar el formulario (por ejemplo, con form_with) y luego buscar ImageButton y submit.

+0

¿Tiene algún código que demuestre cómo usar una entrada de imagen para enviar un formulario? – Kris

+1

Creo que deberías considerar hacer una pregunta adecuada ya que no parece estar relacionada con esta. – Serabe

32

Tuve problemas con esto también, especialmente porque mi forma tenía varios botones.

Existen múltiples maneras de enviar un formulario (con muchas de ellas con un bloque 'form_with'), pero esto me ayudó:

# 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) 

Ver más información here

Además, asegúrese de actualizar a el último mecanizado. Estaba usando mechanize 1.x, que me estaba dando errores de "método indefinido" para el código anterior.

Cuestiones relacionadas