2012-07-23 15 views
5

Estoy tratando de probar una página web en selenio que se crea con angularjs. En esta página hay un campo de texto que el usuario completará. A medida que el usuario escribe en los campos de texto, angular recuperará cada pulsación de tecla y mostrará una vista previa sobre la marcha, exactamente cómo llenar una pregunta de stackoverflow genera una vista previa. :)Selenio en campos de texto que desencadenan eventos, una forma de imitar la interacción humana

Mi problema es que no puedo encontrar la manera de probarlo. Si hago clic en el campo de texto y escribo, funciona. He intentado, el comando de tipo de selenio, el comando typeKeys, usando el mousedown y el comando mouseup y luego tecleo Keys para intentar imitar a un usuario escribiendo. Pero no funcionan como si no estuvieran activando controladores de eventos. Necesito imitar la forma en que un ser humano escribe para que los eventos se desencadenen. Esto es lo que estoy pensando, pero no funciona.

<tr> 
    <td>mouseDown</td> 
    <td>name=appName</td> 
    <td></td> 
</tr> 
<tr> 
    <td>mouseUp</td> 
    <td>name=appName</td> 
    <td></td> 
</tr> 
<tr> 
    <td>typeKeys</td> 
    <td>name=appName</td> 
    <td>foobar</td> 
</tr> 

Si hay una manera usando javascript que sea aceptable también. Gracias.

Respuesta

5

Estaba teniendo el mismo problema al probar campos de formulario Angular JS utilizando Selenium IDE. Probé casi todas las combinaciones conocidas de foco, clic, clic en, presionar tecla, etc. Finalmente descubrí que lo que funcionaba era usar el comando sendKeys para poner el texto en el campo. Así que en Selenio-IDE, el comando fue

sendKeys | xpath=(//input[@type='text'])[2] | TEXT To Enter 

Nota que he utilizado la XPath, pero que no importaba lo que he utilizado para identificar el destino (CSS =, XPath, // div), cualquiera de las identificadores trabajados, solo se necesitó usar sendKeys para hacer el truco.

+0

¡Esto es lo que necesitaba! –

1

Pruebe los comandos de enfoque o clic.

Cuestiones relacionadas