2012-01-10 52 views
6

Estoy tratando de escribir un número flotante en un cuadro de texto con el valor predeterminado 0.00. Pero trata de obtener un anexado en lugar de sobrescribirlo. Intenté con .clear() y luego send_keys ('123.00') pero aún se anexa. Luego probé con send_keys (Keys.CONTROL + 'a', '123.00'). Se actualiza solo con 0.00.Para enviar tres teclas usando send_keys() en selenium python webdriver

Cualquier ayuda es realmente apreciada.

Para obtener más información .. URL: http://new.ossmoketest.appspot.com ID de usuario: [email protected] - mycompanyname = orangescape (lo siento para evitar correos no deseados) contraseña no necesita ahora. clic hojaPedido ... en forma de nuevos productos y complacer nuevo precio ... aplicación de ejemplo para la automatización .. gracias

+0

Agregue mucho más del código real en su pregunta –

+1

atlast encontré la respuesta ... send_keys (Keys.CONTROL + 'a' + Keys.NULL, str (newprice)) – senthil3569

Respuesta

4

que he tenido buenos resultados con:

from selenium.webdriver.common.keys import Keys 

element.send_keys(Keys.CONTROL, 'a') 
element.send_keys('123.00') 

Si eso no funciona puede tener algo que ver con el código en la página web.

+0

@Miebster ¡Gracias! – Smur

3

me acaba de encontrar el comando claro() - ver here:

Si este elemento es un elemento de introducción de texto, lo que eliminará el valor. No tiene efecto en otros elementos. Los elementos de entrada de texto son elementos INPUT y TEXTAREA.

EDIT: Por lo que su enfoque sería:

element.clear(); 
    element.sendKeys('123.00'); 
+0

send_keys (Keys.CONTROL + 'a' + Keys.NULL, str (newprice)) funciona – senthil3569

5

A menos que tenga caja de edición personalizada, click() debe trabajar para usted:

from selenium.webdriver import Firefox 

b = Firefox() 
b.get('http://google.com') 
e = b.find_element_by_id('lst-ib') 

e.click() # is optional, but makes sure the focus is on editbox. 
e.send_keys('12.34') 
e.get_attribute('value') 
# outputs: u'12.34' 

e.click() 
e.clear() 
e.get_attribute('value') 
# outputs: u'' 

e.send_keys('56.78') 
e.get_attribute('value') 
# outputs: u'56.78' 
1

que he experimentado problemas con todos los ejemplos dado en otras respuestas.

el.send_keys(Keys.CONTROL + 'a' + Keys.NULL, 'your string') 

ha trabajado en todos los proyectos en los que he trabajado, por lo mucho que me he envuelto en mi propia implementación de la clase WebDriver con las operaciones más robustas.

Cuestiones relacionadas