2016-03-06 13 views
8

Sto cercando di cancellare un campo di testo utilizzando questa azione:campo di testo in chiaro usando DELETE o BACK tasto SPACE nel WebDriver

emailField.sendKeys("gmail.com"); 
emailField.sendKeys(Keys.CONTROL,"a",Keys.DELETE); 

Nel codice di cui sopra, l'ultima riga seleziona solo il testo, non lo elimina, ma se separo le azioni funziona.

emailField.sendKeys(Keys.CONTROL,"a"); 
emailField.sendKeys(Keys.DELETE); 

risposta

6

Dal JavaDoc per WebElement.clear():

Se questo elemento è un elemento di inserimento del testo, questo sarà cancellare il valore. Non ha alcun effetto su altri elementi. Gli elementi di immissione del testo sono INPUT e elementi TEXTAREA. Tieni presente che gli eventi attivati ​​da questo evento potrebbero non essere come ti aspetteresti. In particolare, non attiviamo eventi di tastiera o mouse . Se si desidera assicurarsi che gli eventi della tastiera vengano attivati, prendere in considerazione utilizzando qualcosa come sendKeys(CharSequence) con la chiave backspace. Per assicurarsi di ottenere un evento di cambiamento, considerare di seguito con una chiamata a sendKeys(CharSequence) con il tasto tab.

Molto probabilmente è sufficiente chiamare:

emailField.sendKeys("gmail.com"); 
emailField.clear(); 

Ma se avete bisogno di compensazione deve essere fatto tramite la tastiera, per qualche motivo, utilizzare backspace.

+5

Il tasto backspace è scritto come "\ b" (da http://stackoverflow.com/questions/6448257/selenium-delete-contents-from-a-textbox/22603085#22603085) –

+0

Non funziona in IE11 per me (non fa niente). – Christian

7

keys.DELETE non funziona per eliminare il testo di input, è necessario utilizzare i tasti.BACKSPACE.

emailField.sendKeys(Keys.BACKSPACE) 
Problemi correlati