Hoe u waarschuwingen en pop-ups in uw browser kunt verwerken Selenium?
โก Slimme samenvatting
Waarschuwingen en pop-ups in Selenium zijn JavaScriptdialoogvensters en subvensters die de automatiseringsworkflow blokkeren. Dit artikel legt uit hoe u eenvoudige, prompt- en bevestigingsmeldingen kunt identificeren, ernaar kunt overschakelen met WebDriver en meerdere vensters kunt beheren met getWindowHandles().
Wat is een waarschuwing in Selenium?
An Waarschuw binnen Selenium is een klein JavaEen scriptdialoogvenster dat op het scherm verschijnt om de gebruiker informatie of een melding te geven. Het kan een specifieke actie bevestigen, toestemming vragen om een โโbewerking uit te voeren of een waarschuwingsbericht weergeven.
In deze handleiding leer je hoe je pop-ups kunt beheren in Selenium en de verschillende soorten waarschuwingen die in webapplicaties voorkomen het testen vanWe zullen ook zien hoe we een waarschuwing kunnen afhandelen in Selenium WebDriver en hoe je een melding kunt accepteren of weigeren, afhankelijk van het type melding.
Soorten waarschuwingen in Selenium
JavaHet script toont drie waarschuwingsvensters die Selenium moet anders worden aangepakt.
1) Simple Alert
De eenvoudige melding geeft informatie of een waarschuwing weer op het scherm. De gebruiker kan deze alleen bevestigen door te klikken. OK.
2) Prompt Alert
De promptmelding vraagt โโde gebruiker om invoer. Selenium WebDriver kan erin typen met behulp van sendKeys("input...").
3) Confirmation Alert
De bevestigingsmelding vraagt โโde gebruiker om een โโbewerking goed te keuren of te annuleren. Het toont beide opties. OK en Annuleer knoppen.
Hoe ga je om met een waarschuwing in Selenium webdriver
De Alert interface in Selenium webdriver beschrijft vier methoden die alle interacties met waarschuwingen dekken.
- ongeldig ontslaan() โ klikt op Annuleer knop.
driver.switchTo().alert().dismiss();
- ongeldig accepteren() โ klikt op OK knop.
driver.switchTo().alert().accept();
- Tekenreeks getText() โ legt het waarschuwingsbericht vast.
driver.switchTo().alert().getText();
- void sendKeys(String stringToSend) โ typt tekst in een promptmelding.
driver.switchTo().alert().sendKeys("Text");
Eclipse Autocomplete toont de beschikbare waarschuwingsmethoden na typing alert. op de editorregel. Schakel op elk gewenst moment van het hoofdvenster naar de waarschuwing met Selenium's .overschakelen naar() methode.
Uitgewerkt voorbeeld: Klantdemo verwijderen
Laten we het volgende scenario automatiseren. We zullen gebruikmaken van de Guru99 demonstratiesites ter illustratie Selenium Afhandeling van meldingen.
Stap 1) Start de browser en open https://demo.guru99.com/test/delete_customer.php.
Stap 2) Voer een willekeurige klant-ID in.
Stap 3) Klik op de Verzenden knop.
Stap 4) Accepteer of weiger de resulterende bevestigingsmelding.
Selenium Java Code: Hendel 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();
}
}
Output: De browser opent de pagina 'Klant verwijderen', verzendt het klant-ID, accepteert de bevestigingsmelding en verwijdert het record uit de demo-applicatie.
Hoe om te gaan met pop-ups Windows in Selenium webdriver
Wanneer automatisering in meerdere browservensters moet werken, moet de test na elke bewerking de focus tussen de vensters wisselen en terugkeren naar het hoofdvenster. Selenium WebDriver biedt twee methoden die dit mogelijk maken.
driver.getWindowHandles()
Retourneert a Set<String> van elke geopende venstergreep. Doorloop de set om te schakelen tussen het hoofdvenster en een willekeurig subvenster in de applicatie.
driver.getWindowHandle()
Retourneert a String met de unieke handle van het huidige venster. Leg deze vast voordat u een subvenster opent, zodat u later naar het hoofdvenster kunt terugkeren.
Volg deze stappen om de vensterafhandeling te demonstreren. Guru99 pop-up demo.
Uitgewerkt voorbeeld: Vensterwisseling
Stap 1) Start de browser en open https://demo.guru99.com/popup.php.
Stap 2) Klik op de Klik Hier link. Er wordt een nieuw subvenster geopend.
Stap 3) Het subvenster vraagt โโde gebruiker om een โโe-mailadres in te voeren en te verzenden.
Stap 4) Voer het e-mailadres in en klik op verzenden.
Stap 5) De pagina toont de toegangsgegevens die door de demo zijn geretourneerd.
Na het weergeven van de inloggegevens:
- Sluit het subvenster.
- Zet de focus terug naar het hoofdvenster.
Selenium Java CodeMeerdere verwerken 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();
}
}
Output: De website wordt gelanceerd, de Klik hier De link opent een subtabblad. Selenium Voert het e-mailadres in en verzendt het, sluit het subvenster en keert terug naar het hoofdvenster.
Conclusie
- De drie gedefinieerd Selenium Meldingstypen โ eenvoudig, prompt en bevestiging โ met een schermafbeelding voor elk.
- Demonstratie van het afhandelen van waarschuwingen met de WebDriver.
Alertinterface met behulp van een werkend scenario voor het verwijderen van een klant. - Meerdere browservensters werden beheerd door handles vast te leggen met
getWindowHandle()engetWindowHandles()en ertussen wisselen.
















