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.
2) Prompt Alert
Deze Prompt Alert vraagt wat input van de gebruiker en Selenium webdriver kan de tekst invoeren met behulp van sendkeys(”input…. “).
3) Confirmation Alert
In deze bevestigingsmelding wordt toestemming gevraagd om een bepaalde handeling uit te voeren.
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.
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.
Stap 3) Nadat u de klant-ID heeft ingevoerd, klikt u op de knop "Verzenden".
Stap 4) Weiger/accepteer de waarschuwing.
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
Stap 2) Klik op de link “Klik hier”.
Wanneer de gebruiker op de link ‘Klik hier’ klikt, wordt een nieuw onderliggend venster geopend.
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.
Stap 4) Voer uw e-mailadres in en verstuur.
Stap 5) Geef de toegangsgegevens weer bij het indienen van de pagina.
Wanneer u de code uitvoert, ziet u dat het onderliggende venster op een nieuw tabblad is geopend.
- Sluit het venster Kind waarin de referenties worden weergegeven.
- Schakel over naar het bovenliggende venster.
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.
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.