Memorizza variabili, eco, avvisi, gestione popup in Selenium IDE
⚡ Riepilogo intelligente
Memorizza i comandi in Selenium L'IDE salva i valori di runtime in variabili denominate, li stampa nel log tramite il comando echo e una famiglia di comandi dedicata gestisce avvisi, finestre di dialogo di conferma e il passaggio tra più finestre del browser.

In questo tutorial imparerai i comandi dello store, il comando echo e la gestione di avvisi e popup in Selenium IDEInsieme, questi comandi trasformano uno script registrato fisso in uno script che reagisce a qualsiasi valore restituito dall'applicazione in fase di esecuzione.
⚠️ Nota sulle versioni: gli screenshot qui sotto provengono dall'originale Firefox-collegare Selenium IDE e i comandi utilizzano i suoi nomi camelCase Selenese. L'attuale Chrome, Firefox e l'estensione Edge mantiene lo stesso comportamento ma scrive la maggior parte dei nomi dei comandi con spazi. Una mappaping La tabella compare verso la fine di questo articolo e ogni comando e screenshot originale sono stati conservati così come pubblicati.
Selenium Variabili dell'IDE
Negozio
Per memorizzare le variabili in Selenium IDE, utilizziamo l' Tornare al suo account comando. L'illustrazione seguente memorizza il valore "tutorial" in una variabile denominata "myVariable".
Per accedere alla variabile, è sufficiente racchiuderla tra i simboli ${ … }. Ad esempio, per inserire il valore di "myVariable" nella casella di testo "userName" di Mercury Tours, inserisci ${myVariable} nel campo Valore.
Comando Echo in Selenium IDE
Una variabile memorizzata è invisibile finché qualcosa non la stampa, ed è questo che eco Il comando lo fa. Scrive un messaggio nel riquadro di log dell'IDE durante la riproduzione, il che lo rende il modo più rapido per confermare che un comando di memorizzazione abbia catturato ciò che ti aspettavi prima di costruire asserzioni su di esso.
Il comando accetta entrambe le forme:
- Una stringa letterale. Inserisci il testo nel Target campo, ad esempio Passaggio di accesso completato, per contrassegnare un punto di controllo in uno script lungo.
- Una variabile. Inserisci ${myVariable} nel Target campo e il valore memorizzato viene stampato al posto del nome.
Due abitudini rendono echo molto più utile di quanto sembri a prima vista. Stampa una variabile immediatamente dopo il comando store che la crea, in modo che un errore sia trace alla cattura piuttosto che all'asserzione venti passaggi dopo. E anteponi a ogni messaggio il passaggio a cui appartiene, perché il riquadro del log mostra ogni comando in un unico elenco piatto. Nota che echo scrive solo nel log: non cambia mai la pagina e non fallisce mai un test, quindi è sicuro lasciarlo in uno script in modo permanente.
StoreElementPresent
Questo comando memorizza "true" o "false" a seconda della presenza dell'elemento specificato. Lo script seguente memorizza il valore booleano "true" in "var1" e "false" in "var2". Per verificare, useremo il comando echo per visualizzare i valori di var1 e var2. La base URL per l'illustrazione sottostante è stato impostato su Mercury Home page dei tour.
StoreText
Questo comando viene utilizzato per memorizzare il testo interno di un elemento in una variabile. L'illustrazione seguente memorizza il testo interno del tag h1 nella pagina di registrazione di Facebook in una variabile denominata "textVar".
Poiché è l'unico elemento di questo tipo sulla pagina, è sicuro utilizzare "css=h1" come target. L'immagine seguente mostra che Selenium L'IDE è stato in grado di salvare la stringa "Sign Up" nella variabile "textVar", perché echo ne ha stampato correttamente il valore.
Avvisi, popup e multipli Windows
Gli avvisi sono probabilmente la forma più semplice di finestra pop-up. Il più comune Selenium I comandi IDE utilizzati per gestire gli avvisi sono i seguenti:
| Avvisi | si utilizza |
|---|---|
|
assertAlert assertNotAlert |
recupera il messaggio dell'avviso e lo confronta con un valore stringa specificato |
|
assertAlertPresent assertAlertNotPresent |
verifica se è presente un avviso o meno |
| storeAlert | recupera il messaggio di avviso e lo memorizza in una variabile da te specificata |
| storeAlertPresent | Restituisce TRUE se è presente un avviso, FALSE altrimenti. |
|
verificareAlert verificareNotAlert |
recupera il messaggio di avviso e verifica se corrisponde al valore stringa specificato |
|
verificareAlertPresent verificareAlertNotPresent |
verifica se è presente un avviso o meno |
Ricorda queste due cose quando lavori con gli avvisi:
- Selenium L'IDE fa clic automaticamente sul pulsante OK della finestra di avviso, quindi non potrai visualizzare l'avviso effettivo.
- Selenium L'IDE non è in grado di gestire gli avvisi che si attivano all'interno della funzione onload() della pagina. Gestisce solo gli avvisi generati dopo il caricamento completo della pagina.
In questo esempio utilizziamo il comando storeAlert per mostrare che anche se Selenium L'IDE non ha visualizzato l'avviso vero e proprio, ma è stato comunque in grado di recuperare il messaggio.
Passo 1) In Selenium IDE, imposta la base URL a http://jsbin.com. Il completo URL è http://jsbin.com/usidix. Questi snippet di jsbin risalgono al Firefox-il plugin è in uso e potrebbe non essere più in grado di risolvere il problema; qualsiasi pagina con un pulsante che genera un avviso riproduce lo stesso risultato.
Passo 2) Crea lo script come mostrato di seguito. Il comando click ha come obiettivo il pulsante Go!, storeAlert cattura il messaggio in alertMessage e echo lo stampa.
Passo 3) Eseguite lo script, ma non aspettatevi di visualizzare l'avviso vero e proprio. Il riquadro di registro sottostante mostra il messaggio acquisito, anche se la finestra di dialogo non è mai stata visibile.
conferme
Le conferme sono finestre a comparsa che offrono i pulsanti OK e ANNULLA, a differenza degli avvisi, che offrono solo il pulsante OK. I comandi utilizzabili per gestire le conferme sono analoghi a quelli degli avvisi.
- assertConfirmation / assertNotConfirmation
- assertConfirmationPresent / assertConfirmationNotPresent
- negozioConferma
- storeConfirmationPresent
- verificaConferma / verificaNonConferma
- verificaConfermaPresente / verificaConfermaNonPresente
Inoltre, questi comandi dicono Selenium quale pulsante scegliere, OK o ANNULLA.
- chooseOkOnNextConfirmation / chooseOkOnNextConfirmationAndWait
- scegliere Annulla alla conferma successiva
Inserisci questi comandi prima il comando che attiva la finestra di conferma, in modo che Selenium L'IDE sa in anticipo quale opzione scegliere. Anche in questo caso, non vedrai la finestra di conferma effettiva durante l'esecuzione dello script.
Proviamo a testare una pagina web con un pulsante programmato per segnalare se l'utente ha premuto OK o ANNULLA.
Passo 1) In Selenium IDE, imposta la base URL a http://jsbin.com. Il completo URL è http://jsbin.com/enifaf.
Passo 2) Crea lo script come mostrato di seguito. Questa volta premeremo prima il pulsante OK.
Passo 3) Esegui lo script e noterai che non vedi la conferma effettiva, ma la pagina web continua a segnalare quale pulsante Selenium IDE premuto.
Passo 4) Sostituisci il comando chooseOkOnNextConfirmation con chooseCancelOnNextConfirmation ed esegui nuovamente lo script. La pagina ora visualizzerà la scelta opposta.
multiplo Windows
Se fai clic su un collegamento che apre una finestra separata, devi prima istruire Selenium Nell'IDE è necessario selezionare la finestra prima di poter accedere agli elementi al suo interno. Nell'IDE precedente si utilizzava il titolo della finestra come localizzatore.
Utilizziamo il comando selectWindow per passare da una finestra all'altra.
Useremo il link http://jsbin.com/ocinaj/1, il cui titolo è "First Window". Il collegamento ipertestuale "qui" su quella pagina apre Facebook in una nuova finestra, dopodiché diamo istruzioni Selenium IDE per fare quanto segue:
- Trasferisci il controllo dalla finestra principale alla finestra di Facebook appena aperta utilizzando il comando selectWindow con il titolo della finestra come localizzatore.
- Verifica il titolo della nuova finestra.
- Seleziona nuovamente la finestra originale utilizzando il comando selectWindow con "null" come destinazione.
- Verificare il titolo della finestra attualmente selezionata.
Il piano sopra descritto si traduce nella sequenza in quattro fasi mostrata qui.
Passo 1) Impostare la base URL a http://jsbin.com.
Passo 2) Crea lo script come mostrato di seguito.
Abbiamo bisogno del comando di pausa per attendere che la finestra appena aperta si carichi prima di poterne leggere il titolo.
Passo 3) Esegui lo script. Si noti che il caso di prova Il test è andato a buon fine, il che significa che siamo stati in grado di passare da una finestra all'altra e verificarne correttamente i titoli.
Ricorda sempre che impostando il target selectWindow su "null" viene selezionata automaticamente la finestra padre, in questo caso la finestra in cui si trova l'elemento "link=here".
Nota: Da quando è stato creato questo tutorial, Facebook ha modificato il titolo della sua pagina. Modifica di conseguenza il titolo previsto nello script.
Moderno Selenium Equivalenti IDE di questi comandi
Migliori Firefox-il plugin IDE è stato ritirato quando Firefox passato all'architettura WebExtensions e l'attuale Chrome, Firefox L'estensione Edge ha rinominato la maggior parte dei comandi Selenese in una forma con spazi. Il comportamento è rimasto invariato, quindi la tabella seguente è tutto ciò che serve per leggere gli script sopra riportati in relazione a un'installazione corrente.
| Comando legacy in questo tutorial | Corrente Selenium Comando IDE |
|---|---|
| Tornare al suo account | Tornare al suo account |
| eco | eco |
| negozio Testo | testo del negozio |
| storeElementPresent | memorizza l'elemento presente (o verifica la presenza dell'elemento) |
| assertAlert / verifyAlert | avviso di asserzione / verifica dell'avviso |
| scegliOKallaProssimaConferma | Seleziona OK alla prossima conferma |
| scegliere Annulla alla conferma successiva | Seleziona Annulla alla prossima conferma |
| selectWindow (title come target) | seleziona la finestra con handle=${handle} |
Ci sono due differenze da sottolineare. I prompt, che l'articolo precedente non trattava, ora hanno i propri comandi: rispondere alla prossima richiesta pianifica la risposta prima che appaia la finestra di dialogo e risposta di WebDriver su prompt visibile digita in un prompt già aperto. E il passaggio tra le finestre non dipende più dal titolo della pagina. Esegui maniglia per vetrina del negozio per catturare prima un handle, poi passare handle=${yourHandle} per selezionare la finestra. Tale modifica elimina la modalità di errore descritta nella nota precedente, in cui un sito rinomina semplicemente la sua pagina e lo script smette di trovare la finestra. L'ufficiale Selenium Sito del progetto IDE Elenca l'intero set di comandi attualmente in uso.













