Kuidas käsitleda teateid ja hüpikaknaid Selenium?

⚡ Nutikas kokkuvõte

Märguanded ja hüpikaknad sees Selenium See on JavaSkriptidialoogid ja alamaknad, mis blokeerivad automatiseerimise voogu. See artikkel selgitab, kuidas tuvastada lihtsaid, viipa- ja kinnitushoiatusi, neile WebDriveri abil lülituda ja mitut akent getWindowHandles() abil hallata.

  • 🔔 Põhidefinitsioon: A Selenium hoiatus on JavaLehe kohal kuvatav skriptidialoog, mis tuleb enne edasisi toiminguid käsitleda.
  • 🗂️ Kolm hoiatustüüpi: Lihtne (info), küsi (tekstisisestus) ja kinnitus (jah/ei) nõuavad kõik erinevaid WebDriver-päringuid.
  • 🛠️ Teavituste API: Dialoogiboksis suhtlemiseks kasuta funktsiooni driver.switchTo().alert() koos funktsioonidega accept(), dismiss(), getText() ja sendKeys().
  • 🪟 Akna käitlemine: getWindowHandle() tagastab praeguse akna ID; getWindowHandles() tagastab täieliku komplekti vahetamiseks.
  • 🚀 Selenium 4 märkus: Selenium Haldur lahendab draiverid automaatselt, kõrvaldades vajaduse kõvakodeeritud chromedriver.exe teede järele.
  • 🤖 AI abi: Tehisintellekti agendid genereerivad asukoha tuvastavaid hoiatusi ja akende skripte, vähendades käsitsi koormust testimiskomplektides.

Kuidas käsitleda teateid ja hüpikaknaid Selenium

Mis on hoiatus? Selenium?

An Hoiatus sisse Selenium on väike JavaSkripti dialoogiboks, mis kuvatakse ekraanil, et anda kasutajale teavet või teavitust. See võib kinnitada konkreetset toimingut, küsida luba toimingu sooritamiseks või kuvada hoiatusteate.

Selles õpetuses õpid, kuidas hüpikakendega toime tulla Selenium ja veebirakenduses leiduvad erinevat tüüpi hoiatused testimineSamuti näeme, kuidas hoiatusega toime tulla. Selenium WebDriver ja kuidas seda olenevalt hoiatuse tüübist vastu võtta või tagasi lükata.

Märguannete tüübid Selenium

JavaSkript kuvab kolm hoiatusdialoogi, mis Selenium tuleb teistmoodi käituda.

1) Simple Alert

Lihtne hoiatus kuvab ekraanil teavet või hoiatust. Kasutaja saab selle kinnitada ainult klõpsates OK.

Lihtne hoiatusdialoogi näide brauseris

2) Prompt Alert

Kiire hoiatus küsib kasutajalt sisendit. Selenium WebDriver saab sinna sisestada, kasutades sendKeys("input...").

Kiire hoiatusdialoog koos sisestusväljaga

3) Confirmation Alert

Kinnitushoiatus palub kasutajal toiming heaks kiita või tühistada. See kuvab mõlemad OK ja tühistama nupud.

Kinnitushoiatuse dialoog nuppudega OK ja Tühista

Kuidas hoiatusega toime tulla Selenium Veebidraiver

. Alert liides sisse Selenium Veebidraiver paljastab neli meetodit, mis hõlmavad kõiki häirete interaktsioone.

  1. tühine loobumine () — klõpsab tühistama nuppu.
driver.switchTo().alert().dismiss();
  1. tühine aktsepteerimine () — klõpsab OK nuppu.
driver.switchTo().alert().accept();
  1. String getText() — jäädvustab hoiatusteate.
driver.switchTo().alert().getText();
  1. void sendKeys (string stringToSend) — tipib teksti teavitusaknasse.
driver.switchTo().alert().sendKeys("Text");

Eclipse automaatne täitmine kuvab pärast ty-d saadaolevaid hoiatusmeetodeidping alert. redaktorireal. Peaaknast hoiatusaknasse saab igal ajal lülituda, kasutades Selenium'S .switchTo() meetod.

Eclipse automaatne täitmine, mis kuvab häirete käsitlemise meetodeid

Töötatud näide: Kliendi demo kustutamine

Automatiseerime järgmise stsenaariumi. Kasutame Guru99 demosaiti illustreerimiseks Selenium häirete käsitlemine.

Step 1) Käivitage brauser ja avage https://demo.guru99.com/test/delete_customer.php.

Step 2) Sisestage mis tahes kliendi ID.

Kliendi demolehe kustutamine koos kliendi ID väljaga

Step 3) kliki Saada nuppu.

Esita nupp kinnitushoiatuse käivitamiseks

Step 4) Nõustuge või ignoreerige saadud kinnitushoiatust.

Kustutamistoimingu käivitatud kinnitushoiatus

Selenium Java Code: Käepide Confirmation Alert

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 {
        // Selenium 4 ships Selenium Manager, so an explicit driver path is no longer required.
        WebDriver driver = new ChromeDriver();

        // Open the Delete Customer demo page
        driver.get("https://demo.guru99.com/test/delete_customer.php");

        driver.findElement(By.name("cusid")).sendKeys("53920");
        driver.findElement(By.name("submit")).submit();

        // Switch to the confirmation alert
        Alert alert = driver.switchTo().alert();

        // Capture the alert message
        String alertMessage = alert.getText();
        System.out.println(alertMessage);
        Thread.sleep(5000);

        // Accept the alert
        alert.accept();

        driver.quit();
    }
}

Väljund: Brauser avab lehe „Kustuta klient“, sisestab kliendi ID, aktsepteerib kinnitusteate ja eemaldab kirje demorakendusest.

Kuidas hüpikakendega toime tulla Windows in Selenium Veebidraiver

Kui automatiseerimine peab töötama mitmes brauseriaknas, peab test pärast iga toimingut nende vahel fookust vahetama ja naasma põhiaknasse. Selenium WebDriver pakub kahte meetodit, mis selle võimalikuks teevad.

driver.getWindowHandles()

Tagastab a Set<String> iga avatud akna käepideme kohta. Itereerige kogum läbi, et lülituda rakenduse põhiaknast mis tahes alamaknasse.

driver.getWindowHandle()

Tagastab a String praeguse akna unikaalse pidemega. Salvesta see enne mis tahes alamakna avamist, et saaksid hiljem ülemakna juurde naasta.

Akna käsitlemise demonstreerimiseks järgige neid samme Guru99 hüpikakna demo.

Töötatud näide: Akna vahetamine

Step 1) Käivitage brauser ja avage https://demo.guru99.com/popup.php.

Guru99 hüpikakna demo maandumisleht

Step 2) kliki Kliki siia link. Avaneb uus alamaken.

Lapseakna avamine lingilt „Klõpsa siia“

Step 3) Lapseaknas palutakse kasutajal sisestada e-posti aadress ja see esitada.

Lapseakna e-posti sisestamise vorm

Step 4) Sisestage e-posti aadress ja saatke see.

E-kirja esitamine alamaknas

Step 5) Lehel kuvatakse demo tagastatud juurdepääsuandmed.

Lapseaknas kuvatavad juurdepääsu volitused

Pärast volituste kuvamist:

  1. Sulge lapse aken.

Lapseakna sulgemine brauseris

  1. Lülitage fookus tagasi ülemaknale.

Fookuse tagasilülitamine põhiaknale

Selenium Java Code: Mitme käsitlemine Windows

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 {
        // Selenium 4 auto-resolves the browser driver via Selenium Manager
        WebDriver driver = new FirefoxDriver();

        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();

        // Capture every open window handle
        Set<String> allWindows = driver.getWindowHandles();
        Iterator<String> iterator = allWindows.iterator();

        while (iterator.hasNext()) {
            String childWindow = iterator.next();

            if (!mainWindow.equalsIgnoreCase(childWindow)) {
                // Switch to the child window
                driver.switchTo().window(childWindow);
                driver.findElement(By.name("emailid")).sendKeys("gaurav.3n@gmail.com");
                driver.findElement(By.name("btnLogin")).click();

                // Close the child window
                driver.close();
            }
        }
        // Return focus to the main window
        driver.switchTo().window(mainWindow);
        driver.quit();
    }
}

Väljund: Sait käivitatakse Kliki siia link avab alamvahekaardi, Selenium sisestab e-kirja ja esitab selle, sulgeb alamakna ning naaseb vanema aknasse.

Mitme akna käsitlemine on lõpule viidud Selenium

Järeldus

  • Määratles kolm Selenium hoiatuste tüübid – lihtne, kiire ja kinnitav – koos ekraanipildiga igaühe kohta.
  • WebDriveriga demonstreeritud häirete käsitlemine Alert liides, mis kasutab toimivat kliendi kustutamise stsenaariumi.
  • Mitme brauseriakna haldamine käepidemete jäädvustamise teel getWindowHandle() ja getWindowHandles() ja nende vahel vahetamine.

KKK

Hoiatus on pärismaalane JavaSkriptidialoog, mis peatab lehe kuni selle käsitlemiseni. Hüpikaken on uus brauseriaken või vahekaart. Teavituste puhul kasutatakse funktsiooni switchTo().alert(); hüpikakende puhul kasutatakse funktsiooni switchTo().window() koos funktsiooni getWindowHandles() tagastatud käepidemega.

Kui switchTo().alert() käivitatakse, aga hetkel ei kuvata ühtegi hoiatust, siis tekib NoAlertPresentException. Lisage kutse WebDriverWait'i abil, kuni ExpectedConditions.alertIsPresent() on tõene, et anda lehele aega dialoogi käivitamiseks.

Põhilised autentimishüpikaknad pole standardsed JavaSkriptihoiatused. Edastage volikirjad URL (https://user:pass@site.com) või kasutage Selenium 4 CDP Network.setExtraHTTPHeaders. SSO hüpikakende jaoks kasutage BrowserStacki või registreeritud hasAuthentication-käitlejat.

Tehisintellekti assistendid, näiteks AI Koodi kaaspiloodid genereerivad lokaatoripõhiseid häirete käitlejaid, ennustavad vajalikke ooteaegu ja refaktoreerivad brittle XPath'i. Samuti mustandavad nad väiteid häirete teksti ja alamakna jaoks. URLs, kiirenev Selenium testi loomine.

Jah. Isetervenevad testimisplatvormid kasutavad tehisintellekti DOM-i muutuste tuvastamiseks, katkiste lokaatorite vahetamiseks ja ooteaegade kohandamiseks, kui hoiatused või hüpikaknad muutuvad. See vähendab hooldust Selenium sviidid, mis töötavad sageli uuendatavate esiotsadega.

Võta see postitus kokku järgmiselt: