Selenium Alert & Afhandeling van pop-upvensters: hoe te handelen?

Inhoudsopgave:

Anonim

In deze zelfstudie leren we hoe u omgaat met pop-ups in Selenium en de verschillende soorten waarschuwingen die u aantreft in het testen van webtoepassingen. We zullen ook zien hoe u met Alert in Selenium WebDriver om moet gaan en hoe we de waarschuwing accepteren en afwijzen, afhankelijk van de soorten waarschuwingen.

In deze tutorial leer je-

  • Wat is Alert?
  • Hoe om te gaan met Alert in Selenium WebDriver
  • Hoe Selenium Popup-venster te gebruiken met Webdriver

Wat is Alert in Selenium?

Een waarschuwing in Selenium is een klein berichtvenster dat op het scherm verschijnt om de gebruiker wat informatie of een melding te geven. Het informeert de gebruiker met een aantal specifieke informatie of fouten, vraagt ​​om toestemming om bepaalde taken uit te voeren en het geeft ook waarschuwingsberichten.

Hier zijn enkele waarschuwingen in Selenium-typen:

1) Eenvoudige waarschuwing

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

2) Snelle waarschuwing.

Deze Prompt Alert vraagt ​​wat input van de gebruiker en Selenium webdriver kan de tekst invoeren met sendkeys ("input

​ ​

3) Bevestigingsalarm.

Deze bevestigingswaarschuwing vraagt ​​toestemming om een ​​bepaalde bewerking uit te voeren.

Hoe om te gaan met Alert in Selenium WebDriver

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

1) void dismiss () // Om op de knop 'Annuleren' van de waarschuwing te klikken.

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

2) void accept () // Om op de 'OK' knop van de waarschuwing te klikken.

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

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

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

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

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

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

We kunnen gemakkelijk overschakelen naar alert vanuit het hoofdvenster door de .switchTo () -methode van Selenium te gebruiken.

Nu automatiseren we het onderstaande scenario.

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

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

Stap 2) Voer een klant-ID in.

Stap 3) Na het invoeren van de klant-ID, klikt u op de knop "Verzenden".

Stap 4) Weigeren / accepteren de waarschuwing.

Afhandelingswaarschuwing in Selenium Webdriver met behulp van het bovenstaande scenario

import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.openqa.selenium.NoAlertPresentException;importeer org.openqa.selenium.Alert;openbare klasse AlertDemo {public static void main (String [] args) gooit NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");WebDriver-stuurprogramma = nieuwe ChromeDriver ();// Afhandeling van waarschuwingsberichtendriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("submit")). submit ();// Overschakelen naar AlertAlert alert = driver.switchTo (). Alert ();// Waarschuwingsbericht vastleggen.String alertMessage = driver.switchTo (). Alert (). GetText ();// Weergeven van waarschuwingsberichtSystem.out.println (alertMessage);Thread.sleep (5000);// Acceptatie alertalert.accept ();​​

Uitgang:

Wanneer u de bovenstaande code uitvoert, wordt de site gestart. Probeer de klant-ID te verwijderen door de bevestigingswaarschuwing die op het scherm wordt weergegeven af ​​te handelen en daarmee de klant-ID uit de applicatie te verwijderen.

Hoe Selenium Pop-upvenster te gebruiken met Webdriver

Als we bij automatisering meerdere vensters in een webtoepassing hebben, moet de activiteit mogelijk de besturing tussen verschillende vensters van het ene naar het andere schakelen om de bewerking te voltooien. Na voltooiing van de operatie, moet het terugkeren naar het hoofdvenster, dwz het hoofdvenster in Selenium. We zullen dit verder in het artikel met een voorbeeld zien.

In Selenium-webstuurprogramma zijn er methoden waarmee we met meerdere vensters kunnen omgaan.

Driver.getWindowHandles ();

Om alle geopende vensters met een webstuurprogramma af te handelen, kunnen we "Driver.getWindowHandles ()" gebruiken en dan kunnen we van het ene venster naar het andere wisselen in een webtoepassing. Het retourtype is Iterator .

Driver.getWindowHandle ();

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

Voor raamafhandeling in Selenium volgen we de onderstaande stappen:

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

In dit scenario zullen we de "Guru99" -demosite gebruiken om het afhandelen van vensters te illustreren.

Stap 1) Start de site.

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

Stap 2) Klik op de link "Klik hier".

Wanneer de gebruiker op de link "Klik hier" klikt, wordt een nieuw kindvenster geopend.

Stap 3) Nieuw kindvenster wordt geopend.

Er wordt een nieuw venster geopend, vraag de gebruiker om het e-mailadres in te voeren en de pagina in te dienen.

Stap 4) Voer uw e-mail-ID in en verzend deze.

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

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

  1. Sluit het kindvenster waarin de inloggegevens worden weergegeven.
  1. Schakel over naar het bovenliggende venster.

Omgaan met meerdere vensters in Selenium-webdriver met behulp van het bovenstaande scenario.

importeer java.util.Iterator;importeer java.util.Set;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.firefox.FirefoxDriver;openbare klasse WindowHandle_Demo {public static void main (String [] args) gooit InterruptedException {WebDriver-stuurprogramma = nieuwe FirefoxDriver ();// Lancering van de site.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). maximaliseren ();driver.findElement (By.xpath ("// * [bevat (@ href, 'popup.php')]")). click ();String MainWindow = driver.getWindowHandle ();// Om alle nieuw geopende vensters af te handelen.Stel  s1 = driver.getWindowHandles ();Iterator  i1 = s1.iterator ();while (i1.hasNext ())​String ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow))​// Overschakelen naar kindvensterdriver.switchTo (). venster (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te bekijken.");driver.findElement (By.name ("btnLogin")). click ();// Het kindvenster sluiten.driver.close ();​​// Overschakelen naar het oudervenster, dwz het hoofdvenster.driver.switchTo (). window (MainWindow);​​

Uitgang:

Wanneer u de bovenstaande code uitvoert, wordt de site gestart en door op de link "Klik hier" te klikken, wordt een onderliggend venster geopend in een nieuw tabblad. U kunt het onderliggende venster sluiten en naar het bovenliggende venster overschakelen zodra de bewerking volledig is voltooid. Vandaar het afhandelen van meer dan één venster in de applicatie.

Behandeling van meerdere vensters in selenium

Gevolgtrekking:

  • We hebben de soorten waarschuwingen gedefinieerd en deze met een schermafbeelding getoond.
  • Gedemonstreerd omgaan met de waarschuwing met Selenium WebDriver in een bepaald scenario.
  • Behandelde meerdere vensters met Selenium WebDriver in een bepaald scenario.