In questo tutorial, impareremo come gestire i popup in Selenium e diversi tipi di avvisi trovati in Test di applicazioni web. Vedremo anche come gestire gli avvisi in Selenium WebDriver e impareremo come accettare e rifiutare gli avvisi a seconda dei tipi di avviso.
In questo tutorial imparerai-
- Cos'è Alert?
- Come gestire gli avvisi in Selenium WebDriver
- Come gestire la finestra Selenium Popup utilizzando Webdriver
Cos'è l'allerta nel selenio?
Un avviso in selenio è una piccola finestra di messaggio che appare sullo schermo per fornire all'utente alcune informazioni o notifiche. Notifica all'utente alcune informazioni o errori specifici, chiede l'autorizzazione per eseguire determinate attività e fornisce anche messaggi di avviso.
Qui ci sono alcuni avvisi nei tipi di selenio:
1) Avviso semplice
La classe di avviso semplice in Selenium mostra alcune informazioni o avvisi sullo schermo.
2) Avviso rapido.
Questo avviso richiede un input da parte dell'utente e il webdriver Selenium può inserire il testo utilizzando sendkeys ("input
…. ").3) Avviso di conferma.
Questo avviso di conferma chiede l'autorizzazione per eseguire un tipo di operazione.
Come gestire gli avvisi in Selenium WebDriver
L'interfaccia di avviso fornisce i seguenti metodi che sono ampiamente utilizzati in Selenium Webdriver.
1) void dismiss () // Per fare clic sul pulsante "Annulla" dell'avviso.
driver.switchTo (). alert (). dismiss ();
2) void accept () // Per fare clic sul pulsante "OK" dell'avviso.
driver.switchTo (). alert (). accept ();
3) String getText () // Per acquisire il messaggio di avviso.
driver.switchTo (). alert (). getText ();
4) void sendKeys (String stringToSend) // Per inviare alcuni dati alla casella di avviso.
driver.switchTo (). alert (). sendKeys ("Text");
È possibile vedere una serie di metodi di avviso visualizzati come mostrato nella schermata seguente suggerita da Eclipse.
Possiamo facilmente passare agli avvisi dalla finestra principale utilizzando il metodo .switchTo () di Selenium .
Ora automatizziamo lo scenario indicato di seguito.
In questo scenario, utilizzeremo il sito demo Guru99 per illustrare la gestione di Selenium Alert.
Passaggio 1) Avvia il browser web e apri il sito "http://demo.guru99.com/test/delete_customer.php"
Passaggio 2) Immettere qualsiasi ID cliente.
Passaggio 3) Dopo aver inserito l'ID cliente, fare clic sul pulsante "Invia".
Passaggio 4) Rifiuta / accetta l'avviso.
Gestione dell'avviso in Selenium Webdriver utilizzando lo scenario sopra
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.NoAlertPresentException;import org.openqa.selenium.Alert;public class AlertDemo {public static void main (String [] args) genera NoAlertPresentException, InterructedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = nuovo ChromeDriver ();// Gestione dei messaggi di avvisodriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("submit")). submit ();// Passaggio ad avvisoAlert alert = driver.switchTo (). Alert ();// Acquisizione del messaggio di avviso.String alertMessage = driver.switchTo (). Alert (). GetText ();// Visualizzazione del messaggio di avvisoSystem.out.println (alertMessage);Thread.sleep (5000);// Accettazione dell'avvisoalert.accept ();}}
Produzione :
Quando esegui il codice sopra, avvia il sito. Prova a eliminare l'ID cliente gestendo l'avviso di conferma che viene visualizzato sullo schermo e quindi eliminando l'ID cliente dall'applicazione.
Come gestire la finestra pop-up Selenium utilizzando Webdriver
Nell'automazione, quando abbiamo più finestre in qualsiasi applicazione web, l'attività potrebbe dover cambiare il controllo tra più finestre da una all'altra per completare l'operazione. Dopo il completamento dell'operazione, deve tornare alla finestra principale, ovvero la finestra genitore in Selenium. Lo vedremo più avanti nell'articolo con un esempio.
Nel driver web Selenium ci sono metodi attraverso i quali possiamo gestire più finestre.
Driver.getWindowHandles ();
Per gestire tutte le finestre aperte dal driver web, possiamo usare "Driver.getWindowHandles ()" e poi possiamo passare da una finestra all'altra in un'applicazione web. Il tipo restituito è Iterator
Driver.getWindowHandle ();
Quando il sito si apre, dobbiamo gestire la finestra principale tramite driver.getWindowHandle () . Questo gestirà la finestra corrente che la identifica in modo univoco all'interno di questa istanza del driver. Il tipo restituito è String.
Per la gestione delle finestre in selenio, seguiremo i passaggi seguenti:
Ora, automatizzeremo lo scenario indicato di seguito per vedere come gestire più finestre utilizzando Selenium Webdriver.
In questo scenario, utilizzeremo il sito demo "Guru99" per illustrare la gestione delle finestre.
Passaggio 1) Avvia il sito.
Avvia il browser e apri il sito " http://demo.guru99.com/popup.php "
Passaggio 2) Fare clic sul collegamento "Fare clic qui".
Quando l'utente fa clic sul collegamento "Fare clic qui", si apre una nuova finestra figlio.
Passaggio 3) Si apre la nuova finestra figlio.
Si apre una nuova finestra, chiedi all'utente di inserire l'ID e-mail e di inviare la pagina.
Passaggio 4) Inserisci il tuo ID e-mail e invia.
Passaggio 5) Visualizza le credenziali di accesso al momento dell'invio della pagina.
Quando esegui il codice, vedrai che la finestra figlia è aperta in una nuova scheda.
- Chiudere la finestra Figlio in cui vengono visualizzate le credenziali.
- Passa alla finestra principale.
Gestire più finestre nel webdriver Selenium utilizzando lo scenario sopra.
import java.util.Iterator;import java.util.Set;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;public class WindowHandle_Demo {public static void main (String [] args) genera InterructedException {Driver WebDriver = nuovo FirefoxDriver ();// Avvio del sito.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). maxim ();driver.findElement (By.xpath ("// * [contiene (@ href, 'popup.php')]")). click ();String MainWindow = driver.getWindowHandle ();// Per gestire tutte le nuove finestre aperte.Impostas1 = driver.getWindowHandles ();Iteratore i1 = s1.iterator ();while (i1.hasNext ()){String ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Passaggio alla finestra figliodriver.switchTo (). window (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Questo indirizzo email è protetto dagli spambots. Devi abilitare JavaScript per vederlo.");driver.findElement (By.name ("btnLogin")). click ();// Chiusura della finestra secondaria.driver.close ();}}// Passaggio alla finestra principale, ovvero la finestra principale.driver.switchTo (). window (MainWindow);}}
Produzione:
Quando esegui il codice sopra, si avvia il sito e facendo clic sul collegamento "Fare clic qui", si apre una finestra figlio in una nuova scheda. È possibile chiudere la finestra figlia e passare alla finestra padre una volta completata l'operazione. Quindi gestire più di una finestra nell'applicazione.
Gestione di più finestre in selenio
Conclusione:
- Abbiamo definito i tipi di avviso e li abbiamo mostrati con una schermata.
- Dimostrato come gestire l'avviso con Selenium WebDriver utilizzando uno scenario particolare.
- Gestito più finestre con Selenium WebDriver utilizzando uno scenario particolare.