how handle alerts popups selenium webdriver selenium tutorial 16
Modi efficienti per gestire avvisi / popup Windows e basati su Web in Selenium WebDriver:
c ++ esempio di albero binario
Nel tutorial precedente, abbiamo concentrato la nostra discussione su diversi tipi di attesa forniti dal WebDriver . Abbiamo anche discusso dei vari tipi di opzioni di navigazione disponibili in WebDriver.
Andando avanti nel Esercitazioni su Selenium WebDriver , discuteremo di diversi tipi di avvisi disponibili durante il test delle applicazioni Web e delle relative strategie di gestione.
Esistono due tipi di avvisi su cui ci concentreremo principalmente :
- Pop-up di avviso basati su Windows
- Pop-up di avviso basati sul Web
Poiché sappiamo che la gestione dei pop-up basati su Windows va oltre le capacità di WebDriver, quindi utilizzeremmo alcune utilità di terze parti per gestire i pop-up delle finestre.
La gestione dei pop-up è uno dei lavori più impegnativi da automatizzare durante il test delle applicazioni web. A causa della diversità dei tipi di pop up, la situazione è ancora più complessa.
Che cos'è la casella di avviso / casella popup / casella di conferma / prompt / casella di autenticazione?
Non è altro che una piccola casella che appare sullo schermo del display per darti qualche tipo di informazione o per avvisarti di un'operazione potenzialmente dannosa o potrebbe anche chiederti i permessi per l'operazione.
Esempio: Consideriamo un esempio di vita reale per una migliore comprensione; Supponiamo di aver caricato una fotografia su uno di questi popolari siti di social networking. Successivamente, desidero eliminare la fotografia caricata. Quindi, per eliminare, ho fatto clic sul pulsante Elimina. Non appena clicco sul pulsante Elimina, il sistema mi avverte della mia azione, chiedendomi: Vuoi davvero eliminare il file? Quindi ora abbiamo la possibilità di accettare questo avviso o rifiutarlo.
Quindi prima della sessione, vediamo come rifiutiamo o accettiamo gli avvisi a seconda del tipo. A partire dai popup basati sul web.
Cosa imparerai:
Popup basati sul Web
Vediamo come li gestiamo utilizzando WebDriver.
Gestione della casella pop-up basata sul web
WebDriver offre agli utenti un modo molto efficiente per gestire questi popup utilizzando l'interfaccia di avviso.
Ci sono i quattro metodi che utilizzeremmo insieme all'interfaccia di avviso.
1) void dismiss () - Il metodo dismiss () fa clic sul pulsante 'Annulla' non appena viene visualizzata la finestra a comparsa.
2) void accept () - Il metodo accept () fa clic sul pulsante 'Ok' non appena viene visualizzata la finestra a comparsa.
3) String getText () - Il metodo getText () restituisce il testo visualizzato nella finestra di avviso.
4) void sendKeys (String stringToSend) - Il metodo sendKeys () inserisce lo schema di stringa specificato nella casella di avviso.
Andiamo avanti e guardiamo all'effettiva implementazione.
Spiegazione dell'applicazione in prova
Abbiamo progettato una pagina web in modo da includere alcuni tipi fondamentali di elementi web. Questa è la stessa applicazione che abbiamo introdotto durante la discussione della classe Select in precedenza in questa serie.
- Collegamento ipertestuale : Sono stati forniti i due collegamenti ipertestuali 'Google' e 'abodeQA' che reindirizzano l'utente a 'http://www.google.com/' e 'http://www.abodeqa.com/' rispettivamente sul evento clic.
- Cadere in picchiata : I tre collegamenti ipertestuali sono stati creati per selezionare colori, frutti e animali con un valore impostato di default.
- Pulsante : È stato creato un pulsante 'provalo' per mostrare la finestra a comparsa con i pulsanti OK e Annulla all'evento del clic.
(Clicca sull'immagine per visualizzarla ingrandita)
Segue il codice HTML utilizzato per creare la suddetta pagina web:
Prova Seleziona classeRosso Verde Giallo Grigio | Mela Arancia Mango Lime | Seleziona Elephant Mouse Dog |
Fare clic sul pulsante per visualizzare una casella di conferma. Prova la funzione myFunction () {confirm ('Press a button!'); } |
Scenario da automatizzare
- Avvia il browser web e apri la pagina web
- Fare clic sul pulsante 'Provalo'
- Accetta l'avviso
- Fare nuovamente clic sul pulsante 'Prova'
- Rifiuta l'avviso
Codice WebDriver utilizzando Seleziona classe
Si prega di notare che per la creazione dello script, utilizzeremo il progetto 'Learning_Selenium' creato nel precedente tutorial.
Passo 1 : Crea una nuova classe java denominata 'DemoWebAlert' nel progetto 'Learning_Selenium'.
Passo 2 : Copia e incolla il codice seguente nella classe 'DemoWebAlert.java'.
Di seguito è riportato lo script di test che è equivalente allo scenario sopra menzionato.
import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; /** * class description */ public class DemoWebAlert { WebDriver driver; /** * Constructor */ public DemoWebAlert() { } /** * Set up browser settings and open the application */ @Before public void setUp() { driver=new FirefoxDriver(); // Opened the application driver.get('file:///F:/Work/Selenium/Testing-Presentation/DemoWebPopup.htm'); driver.manage().window().maximize(); } /** * Test to check Select functionality * @throws InterruptedException */ @Test public void testWebAlert() throws InterruptedException { // clicking on try it button driver.findElement(By.xpath('//button[contains(text(),'Try it')]')).click(); Thread.sleep(5000); // accepting javascript alert Alert alert = driver.switchTo().alert(); alert.accept(); // clicking on try it button driver.findElement(By.xpath('//button[contains(text(),'Try it')]')).click(); Thread.sleep(5000); // accepting javascript alert driver.switchTo().alert().dismiss(); // clicking on try it button driver.findElement(By.xpath('//button[contains(text(),'Try it')]')).click(); Thread.sleep(5000); // accepting javascript alert System.out.println(driver.switchTo().alert().getText()); driver.switchTo().alert().accept(); } /** * Tear down the setup after test completes */ @After public void tearDown() { driver.quit(); } }
Procedura dettagliata del codice
Dichiarazioni di importazione
Importa org.openqa.selenium.Alert - Importare questo pacchetto prima della creazione dello script Il pacchetto fa riferimento alla classe Alert, necessaria per gestire gli avvisi basati sul Web in WebDriver.
Creazione di oggetti per la classe Alert
Alert alert = driver.switchTo (). Alert ();
Creiamo una variabile di riferimento per la classe Alert e la fa riferimento all'avviso.
app Android per spiare un altro telefono
Passa ad Avviso
Driver.switchTo (). Alert ();
Il comando precedente viene utilizzato per passare il controllo alla finestra popup generata di recente.
Accetta l'avviso
alert.accept ();
Il comando precedente accetta l'avviso facendo clic sul pulsante Ok.
Rifiuta l'avviso
alert.dismiss ();
Il comando precedente chiude l'avviso facendo clic sul pulsante Annulla e quindi l'operazione non dovrebbe procedere.
Pop-up basati su finestre
A volte durante l'automazione, otteniamo alcuni scenari, in cui dobbiamo gestire i popup generati da finestre come un popup di stampa o una finestra di navigazione durante il caricamento di un file.
Leggi anche = >> Come gestire il caricamento dei file in Selenium
La gestione di questi pop-up è sempre stata un po 'complicata poiché sappiamo che Selenium è uno strumento di test di automazione che supporta solo il test di applicazioni web, il che significa che non supporta le applicazioni basate su Windows e l'avviso di finestra è uno di questi. Tuttavia il selenio da solo non può aiutare la situazione, ma insieme a qualche intervento di terze parti, questo problema può essere superato.
Sono disponibili diversi strumenti di terze parti per la gestione dei pop-up basati su finestre insieme al selenio.
qa lead intervista domande e risposte pdf
Quindi ora gestiamo un pop-up basato su una finestra utilizzando la classe Robot.
La classe Robot è un'utilità basata su Java che emula le azioni della tastiera e del mouse.
Prima di andare avanti, prendiamoci un momento per dare un'occhiata all'applicazione sotto test (AUT).
Spiegazione dell'applicazione in prova
Come applicazione in prova, utilizzeremo 'gmail.com'. Credo che l'applicazione non richieda ulteriori presentazioni.
Scenario da automatizzare
- Avvia il browser web e apri l'applicazione - 'gmail.com'
- Immettere nome utente e password validi
- Fare clic sul pulsante di accesso
- Fare clic sul pulsante di composizione
- Fare clic sull'icona Allega
- Seleziona i file da caricare con la finestra pop-up.
Codice WebDriver utilizzando Robot Class
Si prega di notare che per la creazione dello script, utilizzeremo il progetto 'Learning_Selenium' creato nel precedente tutorial.
Passo 1 : Crea una nuova classe java denominata 'DemoWindowAlert' nel progetto 'Learning_Selenium'.
Passo 2 : Copia e incolla il codice seguente nella classe 'DemoWindowAlert.java'.
Di seguito è riportato lo script di test che è equivalente allo scenario sopra menzionato.
import java.awt.Robot;
import java.awt.event.KeyEvent; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class DemoWindowAlert {WebDriver driver; @Before public void setUp () {driver = new FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maxim (); } @Test public void testWindowAlert () genera un'eccezione {// inserisci un indirizzo email valido driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // inserisci una password valida driver.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // fai clic sul pulsante di accesso driver.findElement (By.id ('signIn')). click (); Thread.sleep (30000); // fai clic sul pulsante di composizione driver.findElement (By.xpath ('// div [@ class =' z0 '] // div [contiene (text (),' COMPOSE ')]')). click (); // fare clic sull'icona allegare file driver.findElement (By.xpath ('// div [contiene (@ comando,' File ')] // div [contiene (@ class,' aaA ')]')). fare clic su ( ); // creazione di un'istanza della classe Robot (un'utilità basata su Java) Robot rb = new Robot (); // premendo i tasti con l'aiuto degli eventi keyPress e keyRelease rb.keyPress (KeyEvent.VK_D); rb.keyRelease (KeyEvent.VK_D); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_BACK_SLASH); rb.keyRelease (KeyEvent.VK_BACK_SLASH); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_P); rb.keyRelease (KeyEvent.VK_P); rb.keyPress (KeyEvent.VK_I); rb.keyRelease (KeyEvent.VK_I); rb.keyPress (KeyEvent.VK_C); rb.keyRelease (KeyEvent.VK_C); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_ENTER); rb.keyRelease (KeyEvent.VK_ENTER); Thread.sleep (2000); } @After public void tearDown () {driver.quit (); }} Procedura dettagliata del codice
Dichiarazioni di importazione
importare java.awt.Robot - Importare questo pacchetto prima della creazione dello script Il pacchetto fa riferimento alla classe Robot in java che è richiesta per simulare eventi di tastiera e mouse.
importare java.awt.event.KeyEvent - Il pacchetto consente all'utente di utilizzare gli eventi keyPress e keyRelease di una tastiera.
Creazione di oggetti per la classe Robot
Robot rb = nuovo Robot ();
Creiamo una variabile di riferimento per la classe Robot e la istanziamo.
Eventi KeyPress e KeyRelease
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
I metodi keyPress e keyRelease simulano rispettivamente la pressione e il rilascio di un determinato tasto sulla tastiera da parte dell'utente.
Conclusione
In questo tutorial, abbiamo cercato di farti conoscere la classe Alert di WebDriver che viene utilizzata per gestire i popup basati sul Web. Ti abbiamo anche informato sulla classe Robot che può essere utilizzata per popolare il valore nell'avviso basato su finestra con l'aiuto degli eventi keyPress e keyRelease.
Riepilogo dell'articolo:
- Gli avvisi sono una piccola casella che appare sullo schermo del display per darti qualche tipo di informazione o per avvisarti di un'operazione potenzialmente dannosa o potrebbe anche chiederti i permessi per l'operazione.
- Esistono comunemente due tipi di avvisi -
- Pop-up di avviso basati su Windows
- Pop-up di avviso basati sul Web
- Prima dello scripting effettivo, è necessario importare un pacchetto per poter creare uno script WebDriver per la gestione di un menu a discesa e rendere accessibile la classe Select.
- WebDriver offre agli utenti un modo molto efficiente per gestire questi popup utilizzando l'interfaccia di avviso.
- void dismiss () - Il respingere() il metodo fa clic sul pulsante 'Annulla' non appena viene visualizzata la finestra a comparsa.
- void accept () - Il accettare() il metodo fa clic sul pulsante 'Ok' non appena viene visualizzata la finestra a comparsa.
- Corda getText () - Il getText () restituisce il testo visualizzato nella casella di avviso.
- void sendKeys (String stringToSend) - Il sendKeys () inserisce il modello di stringa specificato nella casella di avviso.
- Gestione dei pop-up basati su finestre sono sempre stati un po 'complicati perché sappiamo che Selenium è uno strumento di test di automazione che supporta solo il test di applicazioni web, il che significa che non supporta le applicazioni basate su Windows e la finestra di avviso è una di queste.
- Classe di robot è un'utilità basata su Java che emula le azioni della tastiera e del mouse e può essere utilizzata efficacemente per gestire i pop-up basati su finestre con l'aiuto degli eventi della tastiera.
- I metodi keyPress e keyRelease simulano rispettivamente la pressione e il rilascio di un determinato tasto sulla tastiera da parte dell'utente.
Prossimo tutorial n. 17 : Nel prossimo tutorial, discuteremo dei vari altri comandi WebDriver comunemente usati . Faremmo luce su argomenti come la gestione delle eccezioni e la gestione degli iframe. Discuteremo anche dei comandi get forniti in WebDriver.
Spiegheremo questi argomenti con esempi rapidi per renderli comprensibili ai lettori per esercitare questi concetti nella loro scrittura quotidiana.
Nota per i lettori : Fino ad allora, rimanete sintonizzati e automatizzate le pagine web con i pop-up basati sul web e su finestre utilizzando l'utilità WebDriver - 'Classe di avviso' e l'utilità Java - 'Classe robot'.
Sentiti libero di pubblicare le tue domande / commenti su questo o altri tutorial precedenti nei commenti qui sotto.
Lettura consigliata
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Implementazione del nostro primo script WebDriver - Selenium WebDriver Tutorial # 10
- WebDriver intera configurazione e installazione con Eclipse - Selenium Tutorial # 9
- Verifica la visibilità degli elementi Web utilizzando vari tipi di comandi WebDriver - Selenium Tutorial # 14
- Tutorial GeckoDriver Selenium: come utilizzare GeckoDriver nei progetti Selenium
- Integrazione di Jenkins con Selenium WebDriver: tutorial passo passo
- Scripting efficiente del selenio e scenari di risoluzione dei problemi - Tutorial sul selenio n. 27