Hälytysten ja ponnahdusikkunoiden käsittely Selenium?

⚡ Älykäs yhteenveto

Hälytykset ja ponnahdusikkunat Selenium olemme JavaSkriptivalintaikkunat ja ali-ikkunat, jotka estävät automaation työnkulun. Tässä artikkelissa selitetään, miten tunnistetaan yksinkertaiset, kehotteet ja vahvistushälytykset, miten niihin voi vaihtaa WebDriverin avulla ja miten useita ikkunoita hallitaan getWindowHandles()-funktiolla.

  • 🔔 Ydinmääritelmä: A Selenium hälytys on JavaSivun yläpuolella näkyvä skriptivalintaikkuna, joka on käsiteltävä ennen jatkotoimia.
  • 🗂️ Kolme hälytystyyppiä: Yksinkertainen (info), kehote (tekstisyöttö) ja vahvistus (kyllä/ei) vaativat kukin eri WebDriver-kutsuja.
  • 🛠️ Hälytys-API: Käytä driver.switchTo().alert()-funktiota yhdessä accept()-, dismiss()-, getText()- ja sendKeys()-funktioiden kanssa vuorovaikutukseen valintaikkunan kanssa.
  • 🪟 Ikkunoiden käsittely: getWindowHandle() palauttaa nykyisen ikkunan ID:n; getWindowHandles() palauttaa koko joukon vaihtoa varten.
  • 🚀 Selenium 4 Huomaa: Selenium Manager ratkaisee ajurit automaattisesti, jolloin kovakoodattuja chromedriver.exe-polkuja ei tarvita.
  • 🤖 AI-apu: Tekoälyagentit luovat paikannustietoisia hälytys- ja ikkunaskriptejä, mikä vähentää manuaalista työmäärää testisarjoissa.

Hälytysten ja ponnahdusikkunoiden käsittely Selenium

Mikä on hälytys Selenium?

An Hälytys sisään Selenium on pieni JavaSkriptivalintaikkuna, joka tulee näkyviin näytölle antaakseen käyttäjälle tietoja tai ilmoituksia. Se voi vahvistaa tietyn toiminnon, pyytää lupaa suorittaa toiminto tai näyttää varoitusviestin.

Tässä opetusohjelmassa opit käsittelemään ponnahdusikkunoita Selenium ja verkkosovelluksessa esiintyvät erityyppiset hälytykset testausNäemme myös, miten hälytystä käsitellään Selenium WebDriver ja miten se hyväksytään tai hylätään hälytystyypistä riippuen.

Hälytystyypit Selenium

JavaSkripti näyttää kolme varoitusikkunaa, jotka Selenium on toimittava eri tavalla.

1) Simple Alert

Yksinkertainen hälytys näyttää tietoja tai varoituksen näytöllä. Käyttäjä voi kuitata sen vain napsauttamalla OK.

Yksinkertainen esimerkki hälytysikkunasta selaimessa

2) Prompt Alert

Hälytyskehote pyytää käyttäjältä syötettä. Selenium WebDriver voi kirjoittaa siihen käyttämällä sendKeys("input...").

Kehotushälytysvalintaikkuna syöttökentällä

3) Confirmation Alert

Vahvistushälytys pyytää käyttäjää hyväksymään tai peruuttamaan toiminnon. Se paljastaa molemmat OK ja Peruuttaa painikkeet.

Vahvistushälytysikkuna, jossa on OK- ja Peruuta-painikkeet

Hälytyksen käsittely Selenium web-ajuri

Alert käyttöliittymä Selenium web-ajuri esittelee neljä menetelmää, jotka kattavat kaikki hälytystoiminnot.

  1. mitätön hylkääminen () — napsauttaa Peruuttaa painiketta.
driver.switchTo().alert().dismiss();
  1. mitätön hyväksyntä() — napsauttaa OK painiketta.
driver.switchTo().alert().accept();
  1. merkkijono getText() — tallentaa hälytysviestin.
driver.switchTo().alert().getText();
  1. void sendKeys (StringToSend) — kirjoittaa tekstiä kehotteeseen.
driver.switchTo().alert().sendKeys("Text");

Eclipse automaattinen täydennys näyttää käytettävissä olevat hälytysmenetelmät ty:n jälkeenping alert. editoririvillä. Voit vaihtaa pääikkunasta hälytykseen milloin tahansa käyttämällä Selenium'S .vaihtaa() menetelmällä.

Eclipse automaattinen täydennys, joka näyttää hälytysten käsittelymenetelmät

Toimiva esimerkki: Poista asiakasdemo

Automatisoidaan seuraava skenaario. Käytämme Guru99 demosivustoa havainnollistamaan Selenium hälytysten käsittely.

Vaihe 1) Käynnistä selain ja avaa https://demo.guru99.com/test/delete_customer.php.

Vaihe 2) Syötä mikä tahansa asiakastunnus.

Poista asiakkaan demosivu, jossa on asiakastunnuskenttä

Vaihe 3) Valitse Lähetä painiketta.

Lähetä-painike vahvistushälytyksen käynnistämiseksi

Vaihe 4) Hyväksy tai hylkää vahvistusilmoitus.

Poistotoiminnon laukaisema vahvistushälytys

Selenium Java Code: Kahva 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();
    }
}

lähtö: Selain avaa Poista asiakas -sivun, lähettää asiakastunnuksen, hyväksyy vahvistushälytyksen ja poistaa tietueen demosovelluksesta.

Ponnahdusikkunoiden käsittely Windows in Selenium web-ajuri

Kun automaation on toimittava useissa selainikkunoissa, testin on vaihdettava kohdistusta niiden välillä ja palattava pääikkunaan jokaisen toiminnon jälkeen. Selenium WebDriver esittelee kaksi menetelmää, jotka mahdollistavat tämän.

driver.getWindowHandles()

Palauttaa a:n Set<String> jokaisen avoimen ikkunan kahvan. Toista joukkoa vaihtaaksesi pääikkunasta mihin tahansa sovelluksen ali-ikkunaan.

driver.getWindowHandle()

Palauttaa a:n String nykyisen ikkunan yksilöllisellä kahvalla. Tallenna tämä ennen minkään ali-ikkunan avaamista, jotta voit palata pääikkunaan myöhemmin.

Seuraa näitä ohjeita ikkunoiden käsittelyn demonstroimiseksi Guru99 ponnahdusikkunademo.

Toimiva esimerkki: Ikkunan vaihto

Vaihe 1) Käynnistä selain ja avaa https://demo.guru99.com/popup.php.

Guru99 ponnahdusikkunan demosivu

Vaihe 2) Valitse Klikkaa tästä linkki. Uusi ali-ikkuna avautuu.

Lapsi-ikkuna avautuu napsauttamalla tästä -linkistä

Vaihe 3) Ali-ikkuna kehottaa käyttäjää antamaan sähköpostiosoitteensa ja lähettämään lomakkeen.

Lapsiikkunan sähköpostin syöttölomake

Vaihe 4) Syötä sähköpostiosoite ja lähetä.

Sähköpostin lähettäminen ali-ikkunassa

Vaihe 5) Sivulla näkyvät demon palauttamat käyttöoikeustiedot.

Ali-ikkunassa näkyvät käyttöoikeustiedot

Tunnistetietojen näyttämisen jälkeen:

  1. Sulje lapsi-ikkuna.

Lapsi-ikkunan sulkeminen selaimessa

  1. Vaihda kohdistus takaisin pääikkunaan.

Vaihtaa kohdistuksen takaisin pääikkunaan

Selenium Java Code: Käsittele useita 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();
    }
}

lähtö: Sivusto käynnistyy, Klikkaa tästä linkki avaa alivälilehden, Selenium syöttää sähköpostin ja lähettää sen, sulkee ali-ikkunan ja palaa pääikkunaan.

Useiden ikkunoiden käsittely suoritettu loppuun Selenium

Yhteenveto

  • Määritteli kolme Selenium hälytystyypit – yksinkertainen, kehote ja vahvistus – ja kustakin on kuvakaappaus.
  • Hälytysten käsittelyn esittely WebDriverin avulla Alert käyttöliittymä toimivan asiakkaan poistoskenaarion avulla.
  • Käsitteli useita selainikkunoita kaappaamalla kahvat getWindowHandle() ja getWindowHandles() ja vaihtamalla niiden välillä.

UKK

Hälytys on natiivi JavaSkriptivalintaikkuna, joka keskeyttää sivun, kunnes se käsitellään. Ponnahdusikkuna on uusi selainikkuna tai -välilehti. Hälytykset käyttävät switchTo().alert()-funktiota; ponnahdusikkunat käyttävät switchTo().window()-funktiota, jonka kahvan palauttaa getWindowHandles().

NoAlertPresentException-poikkeus syntyy, kun switchTo().alert() suoritetaan, mutta hälytystä ei näytetä tällä hetkellä. Kiedo kutsu WebDriverWait-metodiin, kunnes ExpectedConditions.alertIsPresent() on tosi, jotta sivulle annetaan aikaa käynnistää valintaikkuna.

Perusautentikointi-ponnahdusikkunat eivät ole vakiomuotoisia JavaSkriptihälytykset. Välitä tunnistetiedot URL (https://user:pass@site.com) tai käytä Selenium 4 CDP Network.setExtraHTTPHeaders. Käytä kertakirjautumisikkunoita varten BrowserStackia tai rekisteröityä hasAuthentication-käsittelijää.

Tekoälyavustajat, kuten AI koodin apuohjelmat luovat paikannustietoisia hälytyskäsittelijöitä, ennustavat vaaditut odotusajat ja uudistavat brittle XPath -funktioita. Ne myös luonnostelevat väitteitä hälytystekstille ja lapsi-ikkunalle. URLs, kiihtyvä Selenium testin luominen.

Kyllä. Itsekorjaavat testialustat käyttävät tekoälyä DOM-muutosten havaitsemiseen, rikkinäisten paikantimien vaihtamiseen ja odotusaikojen säätämiseen hälytysten tai ponnahdusikkunoiden muuttuessa. Tämä vähentää ylläpitoa Selenium usein päivitettävien käyttöliittymien päällä toimivat ohjelmistopaketit.

Tiivistä tämä viesti seuraavasti: