Hur hantera Selenium Varningar och popup-fönster?
Vad är Alert i Selenium?
An Varning in Selenium är en liten meddelanderuta som visas på skärmen för att ge användaren lite information eller meddelande. Det meddelar användaren med viss specifik information eller fel, ber om tillåtelse att utföra vissa uppgifter och det ger också varningsmeddelanden.
I den här handledningen kommer vi att lära oss hur man hanterar popup-fönster Selenium och olika typer av varningar som finns i webbapplikationer Testning. Vi kommer också att se hur man hanterar Alert in Selenium WebDriver och lär dig hur vi accepterar och avvisar varningen beroende på varningstyperna.
Typer av varningar i Selenium
1) Simple Alert
Den enkla varningsklassen i Selenium visar viss information eller varning på skärmen.
2) Prompt Alert
Denna Prompt Alert frågar lite input från användaren och Selenium webdriver kan skriva in texten med sendkeys(” input…. “).
3) Confirmation Alert
Denna bekräftelsevarning ber om tillåtelse att utföra någon typ av operation.
Hur man hanterar Alert in Selenium webbdrivrutin
Alert-gränssnitt tillhandahåller nedan några metoder som används ofta i Selenium Webdriver.
1) void avvisa() // För att klicka på "Avbryt"-knappen för varningen.
driver.switchTo().alert().dismiss();
2) void acceptera()// För att klicka på "OK"-knappen för varningen.
driver.switchTo().alert().accept();
3) Sträng getText() // För att fånga varningsmeddelandet.
driver.switchTo().alert().getText();
4) void sendKeys(String stringToSend) // För att skicka lite data till varningsrutan.
driver.switchTo().alert().sendKeys("Text");
Du kan se att ett antal varningsmetoder visas som visas på skärmen nedan som föreslås av Eclipse.
Vi kan enkelt växla till larm från huvudfönstret genom att använda SeleniumÄr .byta till() metod.
Nu automatiserar vi scenariot nedan.
I det här scenariot kommer vi att använda Guru99-demosidan för att illustrera Selenium Varningshantering.
Steg 1) Starta webbläsaren och öppna webbplatsen https://demo.guru99.com/test/delete_customer.php
Steg 2) Ange valfritt kund-id.
Steg 3) När du har angett kund-ID klickar du på knappen "Skicka".
Steg 4) Avvisa/acceptera varningen.
Hanteringsvarning in 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(); } }
Produktion:
När du kör ovanstående kod startar den webbplatsen. Försök att radera kund-ID genom att hantera en bekräftelselarm som visas på skärmen och därmed radera kund-id från applikationen.
Hur man hanterar popup-fönster med Selenium Webdriver
I automatisering, när vi har flera fönster i en webbapplikation, kan aktiviteten behöva byta kontroll mellan flera fönster från ett till ett annat för att slutföra operationen. Efter avslutad operation måste den återgå till huvudfönstret, dvs föräldrafönster in Selenium. Vi kommer att se detta vidare i artikeln med ett exempel.
In Selenium webbdrivrutin det finns metoder genom vilka vi kan hantera flera fönster.
Driver.getWindowHandles();
För att hantera alla öppna fönster av webbdrivrutinen kan vi använda "Driver.getWindowHandles()" och sedan kan vi byta fönster från ett fönster till ett annat i en webbapplikation. Dess returtyp är Iterator .
Driver.getWindowHandle();
När sidan öppnas måste vi hantera huvudfönstret genom att driver.getWindowHandle(). Detta kommer att hantera det aktuella fönstret som unikt identifierar det i den här drivrutinsinstansen. Dess returtyp är String.
För fönsterhantering i Selenium, kommer vi att följa stegen nedan:
Nu kommer vi att automatisera scenariot nedan för att se hur man hanterar flera fönster med hjälp av Selenium Webdriver.
I det här scenariot kommer vi att använda "Guru99" demosida för att illustrera fönsterhantering.
Steg 1) Starta webbplatsen.
Starta webbläsaren och öppna webbplatsen https://demo.guru99.com/popup.php
Steg 2) Klicka på länken "Klicka här".
När användaren klickar på länken " Klicka här " öppnas ett nytt barnfönster.
Steg 3) Nytt barnfönster öppnas.
Ett nytt fönster öppnas, be användaren att ange e-post-ID och skicka in sidan.
Steg 4) Ange ditt e-post-ID och skicka.
Steg 5) Visa åtkomstuppgifterna när du skickar in sidan.
När du kör koden kommer du att se att det underordnade fönstret är öppet i ny flik.
- Stäng fönstret underordnat där autentiseringsuppgifterna visas.
- Växla till föräldrafönstret.
Hur man hanterar flera 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); } }
Produktion:
När du kör ovanstående kod startar den webbplatsen och när du klickar på länken "Klicka här" öppnas ett underordnat fönster i en ny flik. Du kan stänga det underordnade fönstret och byta till det överordnade fönstret när operationen är helt klar. Hanterar därför mer än ett fönster i applikationen.
Slutsats
- Vi definierade varningstyperna och visade dem med en skärmdump.
- Demonstrerad hantering av varningen med Selenium WebDriver som använder ett särskilt scenario.
- Hanterade flera fönster med Selenium WebDriver som använder ett särskilt scenario.