how handle alerts popups selenium webdriver selenium tutorial 16
Modalități eficiente de gestionare a alertelor / ferestrelor pop-up Windows și Web în Selenium WebDriver:
aplicație de unde puteți descărca videoclipuri YouTube
În tutorialul anterior, ne-am concentrat discuția pe diferite tipuri de așteptări furnizate de WebDriver . De asemenea, am discutat despre diferite tipuri de opțiuni de navigare disponibile în WebDriver.
Mergând mai departe în Tutoriale Selenium WebDriver , vom discuta despre diferite tipuri de alerte disponibile în timpul testării aplicațiilor web și a strategiilor de gestionare a acestora.
Există două tipuri de alerte pe care ne-am concentra în mod major :
- Ferestre pop-up de alertă bazate pe Windows
- Ferestre pop-up de alertă bazate pe web
După cum știm că gestionarea ferestrelor pop-up bazate pe Windows depășește capacitățile WebDriver, astfel vom exercita unele utilități terțe pentru a gestiona ferestrele pop-up.
Gestionarea ferestrelor pop-up este una dintre cele mai provocatoare lucrări de automatizare în timpul testării aplicațiilor web. Datorită diversității tipurilor de ferestre pop-up, situația este mai complexă.
Ce este caseta Alertă / Casetă pop-up / Casetă de confirmare / Prompt / Casetă de autentificare?
Nu este altceva decât o cutie mică care apare pe ecranul de afișare pentru a vă oferi un fel de informații sau pentru a vă avertiza cu privire la o operațiune potențial dăunătoare sau poate chiar să vă ceară permisiunile pentru operație.
Exemplu: Să luăm în considerare un exemplu din viața reală pentru o mai bună înțelegere; Să presupunem că am încărcat o fotografie pe oricare dintre aceste populare site-uri de rețele sociale. Mai târziu, doresc să șterg fotografia încărcată. Deci, pentru a șterge, am făcut clic pe butonul de ștergere. De îndată ce fac clic pe butonul de ștergere, sistemul mă avertizează împotriva acțiunii mele, solicitând - Chiar doriți să ștergeți fișierul? Deci, acum avem opțiunea de a accepta sau a respinge această alertă.
Deci, înainte de sesiune, să vedem cum respingem sau acceptăm alertele în funcție de tipurile lor. Începând cu ferestrele pop-up bazate pe web.
Ce veți învăța:
Ferestre pop-up bazate pe web
Să vedem cum le gestionăm folosind WebDriver.
Gestionarea casetei pop-up bazate pe web
WebDriver oferă utilizatorilor un mod foarte eficient de a gestiona aceste ferestre pop-up utilizând interfața Alert.
Există cele patru metode pe care le-am folosi împreună cu interfața Alert.
1) renunță la nul () - Metoda dismiss () face clic pe butonul „Cancel” imediat ce apare fereastra pop-up.
Două) void accept () - Metoda accept () face clic pe butonul „Ok” imediat ce apare fereastra pop-up.
3) Șir getText () - Metoda getText () returnează textul afișat în caseta de alertă.
4) void sendKeys (String stringToSend) - Metoda sendKeys () introduce modelul șirului specificat în caseta de alertă.
Să mergem mai departe și să analizăm implementarea efectivă.
Explicația cererii sub test
Am proiectat o pagină web într-un mod care să includă câteva tipuri fundamentale de elemente web. Aceasta este aceeași aplicație pe care am introdus-o în timp ce discutam clasa Select mai devreme în această serie.
- Hyperlink : Au fost furnizate cele două hyperlinkuri și anume „Google” și „abodeQA” care redirecționează utilizatorul către „http://www.google.com/” și „http://www.abodeqa.com/” respectiv pe faceți clic pe eveniment.
- Scapă jos : Cele trei hyperlinkuri au fost create pentru selectarea culorilor, fructelor și animalelor, cu o valoare setată ca implicită.
- Buton : A fost creat un buton „Încercați-l” pentru a afișa caseta pop-up cu butoane OK și Anulare la evenimentul de clic.
(Faceți clic pe imagine pentru a vedea mărit)
Ulterior este codul HTML utilizat pentru a crea pagina web menționată mai sus:
Testarea clasei selectateRoșu Verde Galben Gri | Apple Orange Mango Lime | Selectați Elephant Mouse Dog |
Faceți clic pe buton pentru a afișa o casetă de confirmare. Încercați să funcționeze myFunction () {confirm ('Apăsați un buton!'); } |
Scenariu care urmează să fie automatizat
- Lansați browserul web și deschideți pagina web
- Faceți clic pe butonul „Încercați”
- Acceptați alerta
- Faceți din nou clic pe butonul „Încercați”
- Respingeți alerta
Cod WebDriver folosind Select Class
Rețineți că, pentru crearea de scripturi, vom folosi proiectul „Learning_Selenium” creat în fostul tutorial.
Pasul 1 : Creați o nouă clasă Java denumită „DemoWebAlert” în cadrul proiectului „Learning_Selenium”.
Pasul 2 : Copiați și lipiți codul de mai jos în clasa „DemoWebAlert.java”.
Mai jos este scriptul de test care este echivalent cu scenariul menționat mai sus.
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(); } }
Cod de parcurs
Declarații de import
Import org.openqa.selenium.Alert - Importați acest pachet înainte de crearea scriptului Pachetul face trimitere la clasa Alertă care este necesară pentru a gestiona alertele bazate pe web în WebDriver.
Crearea obiectelor pentru clasa Alertă
Alert alert = driver.switchTo (). Alert ();
Creăm o variabilă de referință pentru clasa Alert și o referim la alertă.
software care este instalat pe un computer și utilizat pentru gestionarea mașinilor virtuale
Treceți la Alertă
Driver.switchTo (). Alert ();
Comanda de mai sus este utilizată pentru a comuta controlul la fereastra pop-up recent generată.
Acceptați Alerta
alert.accept ();
Comanda de mai sus acceptă alerta făcând astfel clic pe butonul Ok.
Respingeți Alerta
alert.dismiss ();
Comanda de mai sus închide alerta făcând clic pe butonul Cancel și, prin urmare, operațiunea nu ar trebui să continue.
Ferestre pop-up bazate pe ferestre
Uneori, în timpul automatizării, avem câteva scenarii în care trebuie să gestionăm ferestrele pop-up generate de ferestre, cum ar fi o fereastră de tipărire sau o fereastră de navigare în timp ce încărcăm un fișier.
Citiți și = >> Cum să gestionați încărcarea fișierelor în Selenium
Gestionarea acestor ferestre pop-up a fost întotdeauna puțin dificilă, deoarece știm că Selenium este un instrument de testare a automatizării care acceptă doar testarea aplicațiilor web, ceea ce înseamnă că nu acceptă aplicații bazate pe Windows, iar alerta de ferestre este una dintre ele. Cu toate acestea, seleniul singur nu poate ajuta la situație, dar împreună cu o intervenție terță parte, această problemă poate fi depășită.
Există mai multe instrumente terță parte disponibile pentru gestionarea ferestrelor pop-up bazate pe ferestre împreună cu seleniu.
cum să solicitați promovare în evaluarea performanței
Așadar, acum să gestionăm o fereastră pop-up bazată pe fereastră folosind clasa Robot.
Clasa robot este un utilitar bazat pe java care emulează acțiunile tastaturii și mouse-ului.
Înainte de a merge mai departe, să luăm un moment pentru a arunca o privire asupra aplicației supuse testului (AUT).
Explicația cererii sub test
Ca aplicație testată, am folosi „gmail.com”. Cred că aplicația nu mai necesită prezentări.
Scenariu care urmează să fie automatizat
- Lansați browserul web și deschideți aplicația - „gmail.com”
- Introduceți numele de utilizator și parola valide
- Faceți clic pe butonul de conectare
- Faceți clic pe butonul de compunere
- Faceți clic pe pictograma atașare
- Selectați fișierele care vor fi încărcate cu fereastra pop-up bazată pe ferestre.
WebDriver Code folosind Robot Class
Rețineți că, pentru crearea de scripturi, vom folosi proiectul „Learning_Selenium” creat în fostul tutorial.
Pasul 1 : Creați o nouă clasă Java denumită „DemoWindowAlert” în cadrul proiectului „Learning_Selenium”.
Pasul 2 : Copiați și lipiți codul de mai jos în clasa „DemoWindowAlert.java”.
Mai jos este scriptul de test care este echivalent cu scenariul menționat mai sus.
import java.awt.Robot;
import java.awt.event.KeyEvent; import org.junit.After; import org.junit.Înainte; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; clasă publică DemoWindowAlert {driver WebDriver; @Înainte de public void setUp () {driver = new FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maximize (); } @Test public void testWindowAlert () aruncă Excepție {// introduceți o adresă de e-mail validă driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // introduceți o parolă validă driver.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // faceți clic pe butonul de conectare driver.findElement (By.id ('signIn')). faceți clic pe (); Thread.sleep (30000); // faceți clic pe butonul compune driver.findElement (By.xpath ('// div [@ class =' z0 '] // div [contine (text (),' COMPOSE ')]')). click (); // faceți clic pe pictograma atașare fișiere driver.findElement (By.xpath ('// div [conține (comanda @,' Fișiere ')] // div [conține (clasa @,' aaA ')]')). faceți clic pe ( ); // crearea instanței clasei Robot (Un utilitar bazat pe java) Robot rb = robot nou (); // apăsarea tastelor cu ajutorul tastelor Press și keyRelease evenimente 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 (); }} Cod de parcurs
Declarații de import
import java.awt.Robot - Importați acest pachet înainte de crearea scriptului Pachetul face trimitere la clasa Robot în java care este necesară pentru a simula evenimente de la tastatură și mouse.
import java.awt.event.KeyEvent - Pachetul permite utilizatorului să utilizeze evenimente keyPress și keyRelease ale unei tastaturi.
Crearea obiectelor pentru clasa Robot
Robot rb = robot nou ();
Creăm o variabilă de referință pentru clasa Robot și o instanțiem.
Evenimente KeyPress și KeyRelease
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
Metodele KeyPress și keyRelease simulează utilizatorul apăsând și eliberând respectiv o anumită tastă de pe tastatură.
Concluzie
În acest tutorial, am încercat să vă facem cunoștință cu clasa Alertă WebDriver care este utilizată pentru a gestiona ferestrele pop-up bazate pe web. De asemenea, v-am informat despre clasa Robot care poate fi utilizată pentru a popula valoarea în alerta bazată pe fereastră cu ajutorul evenimentelor keyPress și keyRelease.
Rezumatul articolului:
- Alertele sunt o casetă mică care apare pe ecranul de afișare pentru a vă oferi un fel de informații sau pentru a vă avertiza despre o operațiune potențial dăunătoare sau poate chiar să vă ceară permisiunile pentru operațiune.
- Există în mod popular două tipuri de alerte -
- Ferestre pop-up de alertă bazate pe Windows
- Ferestre pop-up de alertă bazate pe web
- Înainte de scriptul propriu-zis, trebuie să importăm un pachet pentru a putea crea un script WebDriver pentru gestionarea unui meniu derulant și pentru a face accesibilă clasa Select.
- WebDriver oferă utilizatorilor un mod foarte eficient de a gestiona aceste ferestre pop-up utilizând interfața Alert.
- renunță la nul () - renunța () metoda face clic pe butonul „Anulare” imediat ce apare fereastra pop-up.
- void accept () - Accept() metoda face clic pe butonul „Ok” imediat ce apare fereastra pop-up.
- Şir getText () - getText () metoda returnează textul afișat în caseta de alertă.
- void sendKeys (String stringToSend) - sendKeys () metoda introduce modelul de șir specificat în caseta de alertă.
- Gestionarea ferestrelor pop-up bazate pe ferestre au fost întotdeauna puțin complicate, deoarece știm că Selenium este un instrument de testare a automatizării care acceptă doar testarea aplicațiilor web, ceea ce înseamnă că nu acceptă aplicații bazate pe Windows, iar alerta pentru ferestre este una dintre ele.
- Clasa robotului este un utilitar bazat pe java care emulează acțiunile tastaturii și mouse-ului și poate fi utilizat în mod eficient pentru gestionarea ferestrelor pop-up bazate pe ferestre cu ajutorul evenimentelor de pe tastatură.
- Metodele KeyPress și keyRelease simulează utilizatorul apăsând și eliberând respectiv o anumită tastă de pe tastatură.
Următorul tutorial # 17 : În viitorul tutorial, am discuta despre celelalte comenzi WebDriver utilizate în mod obișnuit . Am arunca lumină pe subiecte precum gestionarea excepțiilor și gestionarea iframe. De asemenea, am discuta despre comenzile get furnizate în WebDriver.
Vom explica aceste subiecte cu exemple rapide pentru a le face ușor de înțeles pentru ca cititorii să-și exercite aceste concepte în scripturile de zi cu zi.
Notă pentru cititori : Până atunci, rămâneți la curent și automatizați paginile web cu ferestre pop-up bazate pe web și pe ferestre utilizând utilitarul WebDriver - „Clasa de alertă” și utilitarul Java - „Clasa robotului”.
Nu ezitați să postați întrebările / comentariile dvs. despre acest lucru sau despre orice alte tutoriale anterioare în comentariile de mai jos.
Lectură recomandată
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Implementarea primului nostru script WebDriver - Selenium WebDriver Tutorial # 10
- WebDriver Întreg instalare și instalare cu Eclipse - Selenium Tutorial # 9
- Verificați vizibilitatea elementelor web folosind diferite tipuri de comenzi WebDriver - Tutorial Selenium # 14
- Tutorial GeckoDriver Selenium: Cum se folosește GeckoDriver în proiecte Selenium
- Integrarea Jenkins cu Selenium WebDriver: Tutorial pas cu pas
- Scenarii eficiente cu scripturi și depanare Selenium - Tutorial Selenium # 27