Selenium: ¿Cómo uso JavaScript para borrar un valor de un campo de formulario?
-
06-07-2019 - |
Pregunta
Estoy usando el IDE de selenio y el dispositivo Selenium-Fitnesse Bridge y estoy tratando de probar que cuando borro un valor predeterminado de un campo de formulario, mi formulario muestra un mensaje de error.
Entonces, cuando grabo con Selenium IDE, lo que hace es el equivalente a decirle a Selenium que no escriba nada.
| type | text_field | |
El problema con esto es que el accesorio Fitnesse que estoy usando espera que ese segundo argumento no sea nulo.
¿Hay alguna forma en Selenium para "borrar un valor"? en lugar de "no escribir nada"
Solución 2
Usé esto para que funcione. reg_start_date
es la identificación de mi campo de entrada.
| storeEval | window.document.getElementById('reg_start_date').value = '' |
De la referencia de selenio:
Tenga en cuenta que, de forma predeterminada, el fragmento se ejecutará en el contexto de " selenium " objeto en sí, por lo que
this
se referirá al objeto Selenium. Usewindow
para referirse a la ventana de su aplicación, p.window.document.getElementById('foo')
Además, evite envolver el código javascript con javascript {}, no funcionará.
Otros consejos
Puede hacerlo a través de javascript como tal:
| verifyEval | javascript{this.browserbot.getCurrentWindow().document.getElementById('CONTROL_ID').value = ''} ||
Efectivamente, la declaración generateEval le permite ejecutar cualquier pieza de javascript que desee. Hace que algunos problemas difíciles de lograr con Selenium sean mucho más simples.
Utilicé este tutorial (hoy lo creas o no) para resolver cosas fuera.
También tuvimos este problema al principio. Probar: | tipo | campo_texto | en blanco |
Busque más información sobre la documentación de Fitnesse para el uso de espacios en blanco y nulos.
:)