2010-06-29 28 views
16

Necesito simular una pulsación de tecla tabular en Selenium RC, utilizando la API de Java.Simular evento de pulsación de tecla TAB en Selenium RC

hago esto después de haber entrado en un texto usando:

selenium.type(input, "mytext"); 

He intentado 3 alternativas para obtener la ficha de trabajo:

selenium.keyPress(input, "\\9"); 

y:

selenium.focus(input); 
selenium.keyPressNative("09"); 

y incluso:

selenium.getEval("var evt = window.document.createEvent('KeyboardEvent');evt.initKeyEvent ('keypress', true, true, window,0, 0, 0, 0,0, 9,0);window.document.getElementsByTagName('input')[2].dispatchEvent(evt);") 

Lo mejor que puedo conseguir es un "espacio pestaña" para ser insertado después de mi texto, de modo que termino con esto en el campo de entrada:

"mytext " 

Lo que en realidad lo que quiero es pestaña al siguiente control . ¿Alguna pista? ¡Gracias!

(Nota: Tengo a la pestaña de usar y no puedo utilizar el enfoque o seleccione para elegir el elemento que quiero ir a, por diversas razones, así que no hay sugerencias en este sentido por favor)

Respuesta

4
selenium.keyPressNative(java.awt.event.KeyEvent.VK_TAB + ""); 

I no use la API de Java, pero this post de los grupos de google sugiere que es su solución. No puedo imaginar que "9" sea diferente de "09" en tu pregunta, pero inténtalo.

+0

09 o 9, no hace la diferencia me temo. – Joel

+0

¿Qué sucede si no enfocas primero? es decirsolo haga clic en el formulario, luego ingrese algo al final (no digo que esto resuelva su problema, solo curiosidad) – Ryley

+1

Me pareció necesario enfocar y luego tabular para desencadenar un desenfoque. – Upperstage

2

Prueba el carbón oficial TAB: \t o \u0009

+1

no, lo intenté ya – Joel

+1

@Joel: Actualice la pregunta para mencionarla. No veo '\ t' en ningún lado. –

1

respuesta de improvisación Ryley, podemos utilizar

selenium.keyDownNative(java.awt.event.KeyEvent.VK_TAB + ""); 
selenium.keyUpNative(java.awt.event.KeyEvent.VK_TAB + ""); 

Intenté este método para VK_CONTROL en IE y funcionó bien.

0

Uso typeKeys():

Citando el enlace anterior:

A diferencia del comando simple "tipo", lo que obliga al valor especificado en la página directamente, este comando puede o no tener ningún efecto visible, incluso en los casos en que escribir claves normalmente tendría un efecto visible. Por ejemplo, si usa "typeKeys" en un elemento de formulario, puede ver o no los resultados de lo que escribió en el campo.

En algunos casos, puede necesitar usar el comando "type" simple para establecer el valor del campo y luego el comando "typeKeys" para enviar los eventos de pulsación de tecla correspondientes a lo que acaba de escribir.

Cuestiones relacionadas