¿Cómo establecer el valor de una entrada oculta con Selenium?

Ya he mirado esto pero no tuve suerte.

He intentado ese ejemplo y dice undefined browserbot , también probé el simple:

 @browser.navigate.to "http://example.com" @browser.execute_script("$('#hiddenthing').val('foo bar')") 

lo que no funciona en absoluto, si intenté establecer el valor sin javascript, dice you can't interact with hidden elements .

¿Alguna sugerencia?

Selenium WebDriver no puede interactuar con elementos ocultos, solo puede encontrarlos. Si intenta realizar cualquier interacción basada en el usuario en un elemento oculto, obtendrá el error que vio anteriormente.

Esto se debe a que SWD se creó para emular las cosas que un usuario puede hacer directamente (con algunas excepciones). Ser capaz de interactuar con elementos ocultos queda fuera del scope de SWD.

Sin embargo, SWD ofrece la capacidad de inyectar cualquier javascript en el DOM del navegador (lo que hace que el manejo de este tipo de requisitos sea más razonable, aunque un poco más difícil).

Pruebe estas dos formas ejecutando javascript (como vio en el hilo anterior al que se vinculó). Solo recuerda que requiere el uso del comando de return :

 @browser.execute_script("return document.getElementById('hiddinthing').value = 'foo';") 

o si tienes jQuery

 @browser.execute_script("return $('#hiddenthing').val('foo');")