Jak radzić sobie z alertami i wyskakującymi okienkami w Selenium?
⚡ Inteligentne podsumowanie
Alerty i wyskakujące okienka w Selenium jest JavaDialogi skryptów i okna podrzędne blokujące przepływ automatyzacji. W tym artykule wyjaśniono, jak identyfikować alerty proste, monity i potwierdzenia, przełączać się między nimi za pomocą WebDriver oraz zarządzać wieloma oknami za pomocą getWindowHandles().

Czym jest alert w Selenium?
An Alarm w Selenium jest małe JavaOkno dialogowe skryptu, które pojawia się na ekranie, aby przekazać użytkownikowi pewne informacje lub powiadomienie. Może ono potwierdzić określoną czynność, poprosić o pozwolenie na wykonanie operacji lub wyświetlić komunikat ostrzegawczy.
W tym samouczku dowiesz się, jak radzić sobie z wyskakującymi okienkami w Selenium i różne rodzaje alertów dostępnych w aplikacjach internetowych testowanie. Zobaczymy również, jak poradzić sobie z alertem w Selenium WebDriver i sposób jego akceptacji lub odrzucenia w zależności od typu alertu.
Rodzaje alertów w Selenium
JavaSkrypt udostępnia trzy okna dialogowe z alertami, które: Selenium musimy sobie radzić inaczej.
1) Simple Alert
Prosty alert wyświetla na ekranie informacje lub ostrzeżenie. Użytkownik może potwierdzić jego działanie, klikając OK.
2) Prompt Alert
Alert prosi użytkownika o podanie danych. Selenium WebDriver może do niego pisać za pomocą sendKeys("input...").
3) Confirmation Alert
Alert potwierdzający prosi użytkownika o zatwierdzenie lub anulowanie operacji. Ujawnia on zarówno OK oraz Anuluj przyciski.
Jak poradzić sobie z alertem w Selenium Sterownik sieciowy
Alert interfejs w Selenium Sterownik sieciowy udostępnia cztery metody obejmujące każdą interakcję z alertem.
- nieważne zwolnienie() — klika Anuluj przycisk.
driver.switchTo().alert().dismiss();
- unieważnij akceptację() — klika OK przycisk.
driver.switchTo().alert().accept();
- Ciąg getText() — przechwytuje komunikat ostrzegawczy.
driver.switchTo().alert().getText();
- void sendKeys(Ciąg stringToSend) — wpisuje tekst do alertu.
driver.switchTo().alert().sendKeys("Text");
Eclipse funkcja autouzupełniania pokazuje dostępne metody alertów poping alert. w wierszu edytora. Możesz w dowolnym momencie przełączyć się z okna głównego do alertu za pomocą Selenium'S .Przełącz na() Metoda.
Przykład rozwiązania: Usuwanie wersji demonstracyjnej klienta
Zautomatyzujmy następujący scenariusz. Użyjemy Guru99 witryna demonstracyjna do zilustrowania Selenium obsługa alertów.
Krok 1) Uruchom przeglądarkę i otwórz https://demo.guru99.com/test/delete_customer.php.
Krok 2) Wprowadź dowolny identyfikator klienta.
Krok 3) Kliknij ikonę Wyślij przycisk.
Krok 4) Zaakceptuj lub odrzuć wyświetlony alert potwierdzający.
Selenium Java Code: Uchwyt 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();
}
}
Wyjście: Przeglądarka otwiera stronę Usuń klienta, przesyła identyfikator klienta, akceptuje alert potwierdzający i usuwa rekord z aplikacji demonstracyjnej.
Jak radzić sobie z wyskakującymi okienkami Windows in Selenium Sterownik sieciowy
Gdy automatyzacja musi działać w wielu oknach przeglądarki, test musi przełączać się między nimi i powracać do okna nadrzędnego po każdej operacji. Selenium WebDriver udostępnia dwie metody, które to umożliwiają.
driver.getWindowHandles()
Zwraca a Set<String> każdego uchwytu otwartego okna. Przechodź przez zestaw, aby przełączać się z okna głównego na dowolne okno podrzędne w aplikacji.
sterownik.getWindowHandle()
Zwraca a String z unikalnym uchwytem bieżącego okna. Zapisz to przed otwarciem dowolnego okna podrzędnego, aby móc później wrócić do okna nadrzędnego.
Aby zademonstrować obsługę okna, wykonaj poniższe kroki Guru99 wyskakujących demonstracji.
Przykład pracy: przełączanie okien
Krok 1) Uruchom przeglądarkę i otwórz https://demo.guru99.com/popup.php.
Krok 2) Kliknij ikonę Kliknij tutaj link. Otworzy się nowe okno podrzędne.
Krok 3) W oknie podrzędnym wyświetlany jest monit o podanie adresu e-mail i przesłanie go.
Krok 4) Wprowadź adres e-mail i wyślij.
Krok 5) Na stronie wyświetlane są dane uwierzytelniające zwrócone przez wersję demonstracyjną.
Po wyświetleniu danych uwierzytelniających:
- Zamknij okno podrzędne.
- Powróć do okna nadrzędnego.
Selenium Java Code:Obsługa wielu 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();
}
}
Wyjście: Strona zostaje uruchomiona, Kliknij tutaj link otwiera kartę podrzędną, Selenium wprowadza adres e-mail i go wysyła, zamyka okno podrzędne i wraca do okna nadrzędnego.
Wniosek
- Zdefiniowano trzy Selenium rodzaje alertów — prosty, natychmiastowy i potwierdzający — ze zrzutem ekranu dla każdego z nich.
- Zaprezentowano obsługę alertów za pomocą WebDriver
Alertinterfejs wykorzystujący działający scenariusz usuwania klienta. - Obsługiwano wiele okien przeglądarki poprzez przechwytywanie uchwytów za pomocą
getWindowHandle()orazgetWindowHandles()i przełączanie się między nimi.















