Hoe aan te pakken Selenium Waarschuwingen en pop-ups?

Wat is Alert in Selenium?

An Waarschuw binnen Selenium is een klein berichtenvak dat op het scherm verschijnt om de gebruiker informatie of een melding te geven. Het informeert de gebruiker over specifieke informatie of een fout, vraagt ​​toestemming om bepaalde taken uit te voeren en het geeft ook waarschuwingsberichten.

In deze zelfstudie leren we hoe u met pop-ups omgaat Selenium en verschillende soorten waarschuwingen gevonden in de webapplicatie Testen. We zullen ook zien hoe we met Alert in kunnen omgaan Selenium WebDriver en ontdek hoe we de waarschuwing accepteren en weigeren, afhankelijk van de waarschuwingstypen.

Soorten waarschuwingen in Selenium

1) Simple Alert

De eenvoudige waarschuwingsklasse in Selenium geeft enige informatie of waarschuwing op het scherm weer.

Simple Alert

2) Prompt Alert

Deze Prompt Alert vraagt ​​wat input van de gebruiker en Selenium webdriver kan de tekst invoeren met behulp van sendkeys(”input…. “).

Prompt Alert

3) Confirmation Alert

In deze bevestigingsmelding wordt toestemming gevraagd om een ​​bepaalde handeling uit te voeren.

Confirmation Alert

Hoe om te gaan met Alert-in Selenium webdriver

De waarschuwingsinterface biedt de onderstaande methoden die veel worden gebruikt Selenium Webstuurprogramma.

1) ongeldig ontslaan() // Om op de knop 'Annuleren' van de waarschuwing te klikken.

driver.switchTo().alert().dismiss();

2) ongeldig accepteren()// Om op de knop 'OK' van de waarschuwing te klikken.

driver.switchTo().alert().accept();

3) Tekenreeks getText() // Om het waarschuwingsbericht vast te leggen.

driver.switchTo().alert().getText();

4) void sendKeys(String stringToSend) // Om gegevens naar het waarschuwingsvenster te sturen.

driver.switchTo().alert().sendKeys("Text");

U kunt een aantal waarschuwingsmethoden zien die worden weergegeven zoals weergegeven in het onderstaande scherm dat wordt voorgesteld door Eclipse.

We kunnen eenvoudig overschakelen naar waarschuwingen vanuit het hoofdvenster door gebruik te maken van Selenium's .overschakelen naar() methode.

Behandel waarschuwing in Selenium webdriver

Nu automatiseren we het onderstaande scenario.

In dit scenario zullen we de Guru99-demosite gebruiken om dit te illustreren Selenium Afhandeling van waarschuwingen.

Stap 1) Start de webbrowser en open de site https://demo.guru99.com/test/delete_customer.php

Stap 2) Voer een willekeurige klant-ID in.

Behandel waarschuwing in Selenium webdriver

Stap 3) Nadat u de klant-ID heeft ingevoerd, klikt u op de knop "Verzenden".

Behandel waarschuwing in Selenium webdriver

Stap 4) Weiger/accepteer de waarschuwing.

Behandel waarschuwing in Selenium webdriver

Melding afhandelen Selenium Webstuurprogramma

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

}
		

Output:

Wanneer u de bovenstaande code uitvoert, wordt de site gestart. Probeer de Customer ID te verwijderen door de bevestigingswaarschuwing die op het scherm wordt weergegeven te verwerken en zo de Customer ID uit de applicatie te verwijderen.

Hoe om te gaan met een pop-upvenster met behulp van Selenium Webstuurprogramma

Bij automatisering, wanneer we meerdere vensters in een webapplicatie hebben, kan het nodig zijn dat de activiteit de controle over meerdere vensters van de ene naar de andere moet overschakelen om de bewerking te voltooien. Na voltooiing van de bewerking moet het terugkeren naar het hoofdvenster, d.w.z. het bovenliggende venster in Selenium. We zullen dit verder zien in het artikel met een voorbeeld.

In Selenium webdriver Er zijn methoden waarmee we meerdere vensters kunnen verwerken.

Driver.getWindowHandles();

Om alle geopende vensters door de webdriver te verwerken, kunnen we “Driver.getWindowHandles()” gebruiken en dan kunnen we van het ene venster naar het andere venster in een webapplicatie schakelen. Het retourtype is Iterator .

Driver.getWindowHandle();

Wanneer de site wordt geopend, moeten we het hoofdvenster behandelen driver.getWindowHandle(). Hiermee wordt het huidige venster afgehandeld dat het op unieke wijze identificeert binnen deze driverinstantie. Het retourtype is String.

Voor raambediening in Selenium, volgen we de onderstaande stappen:

Nu gaan we het onderstaande scenario automatiseren om te zien hoe je met meerdere vensters kunt omgaan Selenium Webdriver.

In dit scenario zullen we de demosite “Guru99” gebruiken om de omgang met vensters te illustreren.

Stap 1) Lanceer de site.

Start de browser en open de site https://demo.guru99.com/popup.php

Behandel het pop-upvenster met behulp van Selenium Webstuurprogramma

Stap 2) Klik op de link “Klik hier”.

Wanneer de gebruiker op de link ‘Klik hier’ klikt, wordt een nieuw onderliggend venster geopend.

Behandel het pop-upvenster met behulp van Selenium Webstuurprogramma

Stap 3) Nieuw kindvenster wordt geopend.

Er wordt een nieuw venster geopend. De gebruiker wordt gevraagd zijn e-mailadres in te voeren en de pagina te verzenden.

Behandel het pop-upvenster met behulp van Selenium Webstuurprogramma

Stap 4) Voer uw e-mailadres in en verstuur.

Behandel het pop-upvenster met behulp van Selenium Webstuurprogramma

Stap 5) Geef de toegangsgegevens weer bij het indienen van de pagina.

Behandel het pop-upvenster met behulp van Selenium Webstuurprogramma

Wanneer u de code uitvoert, ziet u dat het onderliggende venster op een nieuw tabblad is geopend.

  1. Sluit het venster Kind waarin de referenties worden weergegeven.

Behandel het pop-upvenster met behulp van Selenium Webstuurprogramma

  1. Schakel over naar het bovenliggende venster.

Behandel het pop-upvenster met behulp van Selenium Webstuurprogramma

Hoe om te gaan met meerdere 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);				
    }
}		

Output:

Wanneer u de bovenstaande code uitvoert, start het de site en wanneer u op de link "Klik hier" klikt, opent het een subvenster in een nieuw tabblad. U kunt het subvenster sluiten en overschakelen naar het bovenliggende venster zodra de bewerking volledig is voltooid. Zo worden er meer dan één venster in de applicatie verwerkt.

Meerdere vensterafhandeling in Selenium
Meerdere vensterafhandeling in Selenium

Conclusie

  • We hebben de soorten waarschuwingen gedefinieerd en deze weergegeven met een schermafdruk.
  • Gedemonstreerd omgaan met de waarschuwing met Selenium WebDriver gebruikt een bepaald scenario.
  • Meerdere vensters behandeld met Selenium WebDriver gebruikt een bepaald scenario.

Lees Verder readmore