Domanda

Le seguenti istruzioni

Selenium.typeKeys("location", "gmail.com");

digita la stringa gmailcom invece di gmail.com .

Cosa sta succedendo lì?

Dai commenti:
Sto cercando di simulare il riempimento automatico e l'unico modo per farlo attualmente sul selenio è combinare tipo e tipoKey. ad esempio:

selenium.type("assigned_to", split[0]+"@");
selenium.typeKeys("assigned_to", "gmail.com");

Ora la mia domanda è: perché typeKeys non digita il 'punto' tra gmail.com?

È stato utile?

Soluzione

Hai provato a usare le funzioni dei tasti nativi e codici char javascript ? Non sono riuscito a far funzionare un carattere "punto" usando loro (carattere 190), ma ho ottenuto il decimale (carattere 110) per funzionare bene, e la casella di testo non dovrebbe avere problemi con nessuno dei due.

selenium.Focus("assigned_to");
selenium.Type("assigned_to", split[0]+"@");
selenium.TypeKeys("assigned_to", "gmail");
selenium.KeyPressNative("110");
selenium.TypeKeys("assigned_to", "com");

Altri suggerimenti

Utilizza il metodo type .

Dal javadoc per le macchine da scrivere :

  

questo comando può o meno averne uno   effetto visibile, anche nei casi in cui   i tasti di battitura normalmente avrebbero a   effetto visibile

     

...

     

In alcuni casi, è possibile   è necessario utilizzare il semplice "tipo" comando   per impostare il valore del campo e quindi   i tasti "typeKeys" comando per inviare il file   sequenze di tasti corrispondenti a cosa   hai appena digitato.

Abbiamo avuto problemi simili utilizzando le tasti di scelta rapida in selenio python.

Una soluzione alternativa che abbiamo pensato per risolvere questo problema è quella di utilizzare la combinazione di 'type' e 'type_keys'. Come forse saprai, il tipo non presenta tali problemi.

Lo abbiamo fatto nel nostro script di selenio in pitone e funziona perfettamente.

Ad esempio: Se è presente un indirizzo e-mail da inserire in una casella di testo: test.me@test.me.uk

Quindi

type(locator,’test.me@test.me.’)
type_keys(locator,’uk’)

Forse un modo molto grezzo di fare, ma ha fatto il suo lavoro.

Spero che questo aiuti qualcun altro con un problema simile.

Prova anche a mettere a fuoco l'elemento prima di scriverlo.

selenium.focus(locator);
selenium.typeKeys(locator, value);

ha funzionato nel mio caso, gestendo un input type = password.

Supponiamo che la stringa da digitare usando typeKeys sia " abc.xyz.efg " ;. Quindi, possiamo usare i comandi type e typeKeys per scrivere la stringa data.

type(locator,"abc.xyz.")
typeKeys(locator,"efg")

I due passaggi precedenti sono utili ogni volta che si desidera selezionare un elemento nella casella a discesa e il menu a discesa viene visualizzato solo se si utilizza il comando typeKeys.

Vedo anche questo comportamento quando uso Selenium RC (C #) e con caratteri diversi ('y' per esempio che sembra anche rimuovere il personaggio seguirlo dall'azione di battitura ..)

Per alcune situazioni è del tutto possibile aggirare il problema digitando i tasti con le funzioni TypeKeys o KeyPress, ma non sono riuscito a trovare una soluzione che funzioni quando si desidera digitare il testo in un campo, immettere caratteri di controllo ([Enter] o una nuova riga, ad esempio), quindi digitare più testo .. (utilizzando la funzione 'Tipo' in questo caso, semplicemente sovrascrive il contenuto del campo ...).

Se qualcuno riesce a trovare una soluzione ragionevole a questo problema, si prega di aggiungerlo a questa domanda in quanto sta iniziando a venire su google ora e probabilmente aiuterebbe molte persone fuori .. (Avrei iniziato una generosità se potessi ..)

Questo è un bug aperto nel selenio (bug SEL-519 ).

Dopo averci armeggiato, sono finalmente riuscito a inserire '.' in una textarea utilizzando JavaScript. Esegui qualcosa come window.document.getElementById ('assegnato_to'). Valore + = '.' tramite storeEval o simili.

Ho ottenuto lo stesso comportamento ma l'ho risolto passando una variabile al comando Type anziché una stringa.

string email = @"name@gmail.com";
selenium.Type(inputfield, email);

Funziona come un fascino!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top