2012-04-23 18 views
5

Quiero escribir la tecla y "&" en el cuadro de texto con selenium web-driver. Pero el selenio-2 pierde su enfoque de type-box mientras escribe el ampersand. Mi comando es, self.type ("&",: update => true)No se puede escribir el signo "&" en Selenium-2

Sé que en selenio, las claves se envían en formato UTF_8 y he intentado enviar el equivalente de signo pero el comportamiento sigue siendo el mismo (como se esperaba). Sé que XML o HTML son compatibles con algunos personajes especiales de escape. Quiero saber si hay alguna manera de reemplazar el ampersand con alguna secuencia de escape como (código HTML) "&" o "&" en el comando send_keys o type_keys?

O ¿hay alguna otra forma de escribir el símbolo "&" en el cuadro de texto con selenio-2?

Háganme llegar su sugerencia.

gracias, Sri

Respuesta

0

Como dijo here, "&" es la entidad HTML de signo. Pruébalo.

Sin embargo, pude poner un ampersand a través de WebDriver y Java sin ningún problema. Pruébelo en otra entrada para ver si no es un problema local ...

+0

Tengo el mismo problema que @usuario1352389, y yo también pensé que '&' ayudaría, pero no fue así. Estoy intentando: '$ searchBox-> send_keys (" baño & cuerpo "); $ searchBox-> send_keys (WebDriver :: ReturnKey()); ' – Ryan

2

Pasé horas en esto durante varios días, y eventualmente @Asaph me dijo "elimine temporalmente todo su javascript y vea si eso es lo que es causando que el ampersand quede en blanco ". Él estaba en lo correcto. Ahora $searchBox->send_keys("bath & body"); funciona bien.

Finalmente lo reduje a una parte de Jquery-ui Autocompletar que estaba interfiriendo. Esta propiedad: source:function(request, response) { //implementation removed } Todos los demás javascript pueden permanecer en su lugar y funcionar bien. Ahora quiero descubrir por qué Jquery-ui> Autocompletar> Fuente entró en conflicto con WebDriver y ver si hay una solución alternativa.

0

Me encontré con el mismo problema y lo resolvió mediante la ejecución de JavaScript en lugar de utilizar el método Selenium SendKeys.

IJavaScriptExecutor jsExec = (IJavaScriptExecutor) webDriver;
jsExec.ExecuteScript ("document.getElementById ('your-input-id-here'). Value =" + JsonConvert.SerializeObject (yourValueHere));

JsonConvert.SerializeObject() es de JSON.NET, que es una forma conveniente de codificar un valor de cadena para ser utilizado en JavaScript. Pero podría codificar el valor de su cadena de cualquier manera que tenga el formato correcto en JavaScript.

0

Mi requisito era escribir "R & d" en un campo de texto, intenté el código siguiente y funcionó.

textBox.sendKeys("R/&d") 
textBox.sendKeys(Keys.LEFT); 
textBox.sendKeys(Keys.LEFT); 
textBox.sendKeys(Keys.BACK_SPACE); 
0

Hey Lo resuelto primero por lo que es Appium controlador de Adroid conductor

Siguiente Encendí teclado de Google en el teléfono manualmente que se estableció el teclado appium tarde acabo escondí el teclado y funcionó para mí.

Gracias de todos modos por estar allí.

Cuestiones relacionadas