Cum să gestionezi alertele și ferestrele popup în Selenium?
În ce este Alert Selenium?
An Alertă în Selenium este o casetă mică de mesaje care apare pe ecran pentru a oferi utilizatorului câteva informații sau notificări. Acesta anunță utilizatorul cu anumite informații sau erori specifice, solicită permisiunea de a efectua anumite sarcini și oferă, de asemenea, mesaje de avertizare.
În acest tutorial, vom învăța cum să gestionăm pop-up-ul Selenium și diferite tipuri de alerte găsite în aplicația web Testarea. Vom vedea, de asemenea, cum să gestionăm Alert în Selenium WebDriver și aflați cum acceptăm și respingem alerta în funcție de tipurile de alertă.
Tipuri de alerte în Selenium
1) Simple Alert
Clasa de alertă simplă în Selenium afișează unele informații sau avertismente pe ecran.
2) Prompt Alert
Acest Prompt Alert cere ceva input de la utilizator și Selenium webdriver poate introduce textul folosind sendkeys(” input…. “).
3) Confirmation Alert
Această alertă de confirmare cere permisiunea de a efectua un anumit tip de operație.
Cum să gestionați Alert în Selenium webdriver
Interfața de alertă oferă următoarele câteva metode care sunt utilizate pe scară largă în Selenium Webdriver.
1) anulează respingerea () // Pentru a face clic pe butonul „Anulare” al alertei.
driver.switchTo().alert().dismiss();
2) void accept()// Pentru a face clic pe butonul „OK” al alertei.
driver.switchTo().alert().accept();
3) String getText() // Pentru a capta mesajul de alertă.
driver.switchTo().alert().getText();
4) void sendKeys(String șirToSend) // Pentru a trimite unele date către caseta de alertă.
driver.switchTo().alert().sendKeys("Text");
Puteți vedea că sunt afișate un număr de metode de alertă, așa cum se arată în ecranul de mai jos sugerat de Eclipse.
Putem comuta cu ușurință la alertă din fereastra principală utilizând Selenium'S .schimba cu() metodă.
Acum automatizăm scenariul de mai jos.
În acest scenariu, vom folosi site-ul demonstrativ Guru99 pentru a ilustra Selenium Gestionarea alertelor.
Pas 1) Lansați browserul web și deschideți site-ul https://demo.guru99.com/test/delete_customer.php
Pas 2) Introduceți orice ID de client.
Pas 3) După introducerea ID-ului clientului, faceți clic pe butonul „Trimite”.
Pas 4) Respinge/accepta alerta.
Alerta de manipulare în Selenium Webdriver
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) throws NoAlertPresentException,InterruptedException { System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); // Alert Message handling driver.get("https://demo.guru99.com/test/delete_customer.php"); driver.findElement(By.name("cusid")).sendKeys("53920"); driver.findElement(By.name("submit")).submit(); // Switching to Alert Alert alert = driver.switchTo().alert(); // Capturing alert message. String alertMessage= driver.switchTo().alert().getText(); // Displaying alert message System.out.println(alertMessage); Thread.sleep(5000); // Accepting alert alert.accept(); } }
ieșire:
Când executați codul de mai sus, acesta lansează site-ul. Încercați să ștergeți ID-ul clientului gestionând alerta de confirmare care se afișează pe ecran și, prin urmare, ștergeți ID-ul clientului din aplicație.
Cum să gestionați fereastra pop-up folosind Selenium Webdriver
În automatizare, atunci când avem mai multe ferestre în orice aplicație web, este posibil ca activitatea să fie nevoie să comute controlul între mai multe ferestre de la una la alta pentru a finaliza operațiunea. După finalizarea operațiunii, trebuie să se întoarcă la fereastra principală, adică în fereastra părinte Selenium. Vom vedea acest lucru în continuare în articol cu un exemplu.
In Selenium driver web există metode prin care putem gestiona mai multe ferestre.
Driver.getWindowHandles();
Pentru a gestiona toate ferestrele deschise prin driver web, putem folosi „Driver.getWindowHandles()” și apoi putem comuta fereastra de la o fereastră la alta într-o aplicație web. Tipul său de returnare este Iterator .
Driver.getWindowHandle();
Când se deschide site-ul, trebuie să ne ocupăm de fereastra principală driver.getWindowHandle(). Aceasta va gestiona fereastra curentă care o identifică în mod unic în cadrul acestei instanțe de driver. Tipul său de returnare este String.
Pentru manipularea ferestrelor în Selenium, vom urma pașii de mai jos:
Acum, vom automatiza scenariul de mai jos pentru a vedea cum să gestionăm mai multe ferestre folosind Selenium Webdriver.
În acest scenariu, vom folosi site-ul demonstrativ „Guru99” pentru a ilustra gestionarea ferestrelor.
Pas 1) Lansați site-ul.
Lansați browserul și deschideți site-ul https://demo.guru99.com/popup.php
Pas 2) Faceți clic pe linkul „Click Here”.
Când utilizatorul face clic pe linkul „Clic aici”, se deschide o nouă fereastră copil.
Pas 3) Se deschide o nouă fereastră pentru copii.
Se deschide o nouă fereastră, cereți utilizatorului să introducă ID-ul de e-mail și să trimită pagina.
Pas 4) Introduceți ID-ul dvs. de e-mail și trimiteți.
Pas 5) Afișați acreditările de acces la trimiterea paginii.
Când executați codul, veți vedea că fereastra copil este deschisă într-o filă nouă.
- Închideți fereastra Copil pe care sunt afișate acreditările.
- Comutați la fereastra părinte.
Cum să gestionezi mai multe Windows in Selenium
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) throws InterruptedException { WebDriver driver=new FirefoxDriver(); //Launching the site. driver.get("https://demo.guru99.com/popup.php"); driver.manage().window().maximize(); driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click(); String MainWindow=driver.getWindowHandle(); // To handle all new opened window. Set<String> s1=driver.getWindowHandles(); Iterator<String> i1=s1.iterator(); while(i1.hasNext()) { String ChildWindow=i1.next(); if(!MainWindow.equalsIgnoreCase(ChildWindow)) { // Switching to Child window driver.switchTo().window(ChildWindow); driver.findElement(By.name("emailid")) .sendKeys("gaurav.3n@gmail.com"); driver.findElement(By.name("btnLogin")).click(); // Closing the Child Window. driver.close(); } } // Switching to Parent window i.e Main Window. driver.switchTo().window(MainWindow); } }
ieșire:
Când executați codul de mai sus, lansează site-ul și, făcând clic pe linkul „Click aici”, se deschide o fereastră copil într-o filă nouă. Puteți închide fereastra copil și trece la fereastra părinte odată ce operațiunea este complet finalizată. Prin urmare, gestionați mai mult de o fereastră în aplicație.
Concluzie
- Am definit tipurile de alertă și le-am arătat cu o captură de ecran.
- A demonstrat gestionarea alertei cu Selenium WebDriver care utilizează un anumit scenariu.
- Gestionat mai multe ferestre cu Selenium WebDriver care utilizează un anumit scenariu.