2012-01-10 12 views
6

Sto provando a digitare un numero float in una casella di testo con il valore predefinito 0.00.Ma cerca di essere aggiunto invece di sovrascriverlo. Ho provato con .clear() e poi send_keys ('123.00') ma viene comunque aggiunto. Poi ho provato con send_keys (Keys.CONTROL + 'a', '123.00'). Aggiorna solo 0.00.Per inviare tre chiavi utilizzando send_keys() nel selenon python webdriver

Qualsiasi aiuto è molto apprezzato.

Per maggiori informazioni .. URL: http://new.ossmoketest.appspot.com userid: [email protected] - MyCompanyName = orangescape (mi dispiace per evitare messaggi di spam) password non serve ora. click PurchaseOrder ... nella forma compiacere nuovo prodotto e nuovo prezzo ... applicazione di esempio per l'automazione .. grazie

+0

aggiungere molto di più del codice vero e proprio nella vostra domanda –

+1

atlast ho trovato la risposta ... send_keys (Keys.CONTROL + 'a' + Keys.NULL, str (NewPrice)) – senthil3569

risposta

4

ho avuto buoni risultati con:

from selenium.webdriver.common.keys import Keys 

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

Se questo non funziona potrebbe avere qualcosa a che fare con il codice nella pagina web.

+0

@Miebster Grazie! – Smur

3

Ho appena trovato il comando clear() - vedi here:

Se questo elemento è un elemento di inserimento del testo, questo sarà chiaro il valore. Non ha alcun effetto su altri elementi. Gli elementi di immissione del testo sono elementi INPUT e TEXTAREA.

EDIT: Così il vostro approccio potrebbe essere:

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

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

5

A meno che non si dispone di editbox personalizzato, click() dovrebbe funzionare per voi:

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

ho sperimentato problemi con tutti gli esempi dato in altre risposte.

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

ha lavorato in tutti i progetti cui ho lavorato in, tanto ho avvolto nella mia propria implementazione della classe WebDriver con le operazioni più robuste.

Problemi correlati