how handle alerts popups selenium webdriver selenium tutorial 16
Effiziente Möglichkeiten zum Umgang mit Windows und webbasierten Warnungen / Popups in Selenium WebDriver:
Implementierung einer doppelt verknüpften c ++ - Liste
Im vorherigen Tutorial haben wir uns auf konzentriert verschiedene Arten von Wartezeiten, die vom WebDriver bereitgestellt werden . Wir haben auch verschiedene Arten von Navigationsoptionen besprochen, die in WebDriver verfügbar sind.
Vorankommen in der Selenium WebDriver Tutorials werden wir darüber diskutieren Beim Testen von Webanwendungen und deren Handhabungsstrategien stehen verschiedene Arten von Warnungen zur Verfügung.
Es gibt zwei Arten von Warnungen, auf die wir uns hauptsächlich konzentrieren würden ::
- Windows-basierte Alarm-Popups
- Webbasierte Popups für Warnungen
Da wir wissen, dass die Handhabung von Windows-basierten Popups die Möglichkeiten von WebDriver übersteigt, würden wir einige Dienstprogramme von Drittanbietern für die Handhabung von Fenster-Popups verwenden.
Die Handhabung von Popups ist eine der schwierigsten Aufgaben beim Testen von Webanwendungen. Aufgrund der Vielfalt der Popup-Typen wird die Situation noch komplexer.
Was ist eine Warnbox / Popup-Box / Bestätigungsbox / Eingabeaufforderung / Authentifizierungsbox?
Es ist nichts anderes als ein kleines Kästchen, das auf dem Bildschirm angezeigt wird, um Ihnen Informationen zu geben oder Sie vor einem möglicherweise schädlichen Vorgang zu warnen, oder Sie werden möglicherweise sogar nach den Berechtigungen für den Vorgang gefragt.
Beispiel: Betrachten wir ein reales Beispiel für ein besseres Verständnis. Nehmen wir an, wir haben ein Foto auf einer dieser beliebten Social-Networking-Sites hochgeladen. Später möchte ich das hochgeladene Foto löschen. Um zu löschen, habe ich auf die Schaltfläche Löschen geklickt. Sobald ich auf die Schaltfläche Löschen klicke, warnt mich das System vor meiner Aktion und fordert Sie auf, die Datei wirklich zu löschen. Jetzt haben wir die Möglichkeit, diese Warnung entweder zu akzeptieren oder abzulehnen.
Also vor der Sitzung, Lassen Sie uns sehen, wie wir die Warnungen je nach Typ ablehnen oder akzeptieren. Beginnend mit den webbasierten Popups.
Was du lernen wirst:
Webbasierte Popups
Lassen Sie uns sehen, wie wir mit WebDriver damit umgehen.
Umgang mit webbasiertem Popup-Fenster
WebDriver bietet den Benutzern eine sehr effiziente Möglichkeit, diese Popups über die Alert-Oberfläche zu verarbeiten.
Es gibt die vier Methoden, die wir zusammen mit der Alert-Schnittstelle verwenden würden.
1) nichtig entlassen () - Die Methode accept () klickt auf die Schaltfläche 'Abbrechen', sobald das Popup-Fenster angezeigt wird.
zwei) void accept () - Die Methode accept () klickt auf die Schaltfläche „Ok“, sobald das Popup-Fenster angezeigt wird.
3) String getText () - Die Methode getText () gibt den im Warnfeld angezeigten Text zurück.
4) void sendKeys (String stringToSend) - Die sendKeys () -Methode gibt das angegebene Zeichenfolgenmuster in das Warnfeld ein.
Lassen Sie uns weitermachen und die tatsächliche Implementierung betrachten.
Erläuterung der zu testenden Anwendung
Wir haben eine Webseite so gestaltet, dass sie einige grundlegende Arten von Webelementen enthält. Dies ist dieselbe Anwendung, die wir bei der Erörterung der Select-Klasse weiter oben in dieser Reihe eingeführt haben.
- Hyperlink : Die beiden Hyperlinks 'Google' und 'abodeQA' wurden bereitgestellt, die den Benutzer auf 'http://www.google.com/' bzw. 'http://www.abodeqa.com/' auf der Website weiterleiten Klicken Sie auf Ereignis.
- Dropdown-Liste : Die drei Hyperlinks wurden für die Auswahl von Farben, Früchten und Tieren mit einem Standardwert erstellt.
- Taste : Eine Schaltfläche zum Ausprobieren wurde erstellt, um das Popup-Fenster mit den Schaltflächen OK und Abbrechen beim Klicken anzuzeigen.
(Klicken Sie auf das Bild, um es vergrößert anzuzeigen.)
Nachfolgend finden Sie den HTML-Code, der zum Erstellen der oben genannten Webseite verwendet wird:
Testen Wählen Sie KlasseRot Grün Gelb Grau | Apfel-Orangen-Mango-Limette | Wählen Sie Elephant Mouse Dog |
Klicken Sie auf die Schaltfläche, um ein Bestätigungsfeld anzuzeigen. Probieren Sie es aus Funktion myFunction () {bestätigen ('Drücken Sie eine Taste!'); }} |
Zu automatisierendes Szenario
- Starten Sie den Webbrowser und öffnen Sie die Webseite
- Klicken Sie auf die Schaltfläche 'Probieren Sie es aus'
- Akzeptieren Sie die Warnung
- Klicken Sie erneut auf die Schaltfläche 'Probieren Sie es aus'
- Den Alarm ablehnen
WebDriver-Code mit Klasse auswählen
Bitte beachten Sie, dass wir für die Skripterstellung das im vorherigen Tutorial erstellte Projekt „Learning_Selenium“ verwenden würden.
Schritt 1 : Erstellen Sie eine neue Java-Klasse mit dem Namen 'DemoWebAlert' im Projekt 'Learning_Selenium'.
Schritt 2 : Kopieren Sie den folgenden Code und fügen Sie ihn in die Klasse 'DemoWebAlert.java' ein.
Unten finden Sie das Testskript, das dem oben genannten Szenario entspricht.
import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; /** * class description */ public class DemoWebAlert { WebDriver driver; /** * Constructor */ public DemoWebAlert() { } /** * Set up browser settings and open the application */ @Before public void setUp() { driver=new FirefoxDriver(); // Opened the application driver.get('file:///F:/Work/Selenium/Testing-Presentation/DemoWebPopup.htm'); driver.manage().window().maximize(); } /** * Test to check Select functionality * @throws InterruptedException */ @Test public void testWebAlert() throws InterruptedException { // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert Alert alert = driver.switchTo().alert(); alert.accept(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert driver.switchTo().alert().dismiss(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert System.out.println(driver.switchTo().alert().getText()); driver.switchTo().alert().accept(); } /** * Tear down the setup after test completes */ @After public void tearDown() { driver.quit(); } }
Code-Durchgang
Anweisungen importieren
Importieren Sie org.openqa.selenium.Alert - Importieren Sie dieses Paket vor der Skripterstellung. Das Paket verweist auf die Alert-Klasse, die für die Verarbeitung der webbasierten Alerts in WebDriver erforderlich ist.
Objekterstellung für Warnungsklasse
Alert alert = driver.switchTo (). Alert ();
Wir erstellen eine Referenzvariable für die Alert-Klasse und verweisen auf die Alert.
Die besten Videospielunternehmen für 2018
Wechseln Sie zu Alarm
Driver.switchTo (). Alert ();
Der obige Befehl wird verwendet, um das Steuerelement auf das kürzlich generierte Popup-Fenster umzuschalten.
Akzeptieren Sie die Warnung
alert.accept ();
Der obige Befehl akzeptiert die Warnung und klickt dabei auf die Schaltfläche OK.
Warnung ablehnen
alert.dismiss ();
Der obige Befehl schließt die Warnung und klickt dabei auf die Schaltfläche Abbrechen. Daher sollte der Vorgang nicht fortgesetzt werden.
Fensterbasierte Popups
Während der Automatisierung treten manchmal Szenarien auf, in denen wir Popups verarbeiten müssen, die von Fenstern wie einem Druck-Popup oder einem Browserfenster beim Hochladen einer Datei generiert werden.
Lesen Sie auch = >> Vorgehensweise beim Hochladen von Dateien in Selenium
Die Handhabung dieser Popups war schon immer etwas schwierig, da wir wissen, dass Selenium ein Automatisierungstest-Tool ist, das nur Webanwendungstests unterstützt. Dies bedeutet, dass Windows-basierte Anwendungen nicht unterstützt werden und Windows Alert eine davon ist. Selen allein kann die Situation zwar nicht verbessern, aber zusammen mit einigen Eingriffen Dritter kann dieses Problem überwunden werden.
Neben dem Selen stehen mehrere Tools von Drittanbietern zur Verfügung, mit denen fensterbasierte Popups verarbeitet werden können.
qa Fragen und Antworten zum Hauptinterview pdf
Lassen Sie uns nun ein fensterbasiertes Popup mit der Robot-Klasse bearbeiten.
Die Roboterklasse ist ein Java-basiertes Dienstprogramm, das die Tastatur- und Mausaktionen emuliert.
Bevor wir fortfahren, nehmen wir uns einen Moment Zeit, um einen Blick auf die zu testende Anwendung (AUT) zu werfen.
Erläuterung der zu testenden Anwendung
Als zu testende Anwendung würden wir 'gmail.com' verwenden. Ich glaube, für die Anwendung sind keine weiteren Einführungen erforderlich.
Zu automatisierendes Szenario
- Starten Sie den Webbrowser und öffnen Sie die Anwendung - 'gmail.com'
- Geben Sie einen gültigen Benutzernamen und ein Passwort ein
- Klicken Sie auf die Schaltfläche Anmelden
- Klicken Sie auf die Schaltfläche Verfassen
- Klicken Sie auf das Anhangssymbol
- Wählen Sie die hochzuladenden Dateien mit dem fensterbasierten Popup aus.
WebDriver-Code mit Robot Class
Bitte beachten Sie, dass wir für die Skripterstellung das im vorherigen Tutorial erstellte Projekt „Learning_Selenium“ verwenden würden.
Schritt 1 : Erstellen Sie eine neue Java-Klasse mit dem Namen 'DemoWindowAlert' unter dem Projekt 'Learning_Selenium'.
Schritt 2 : Kopieren Sie den folgenden Code und fügen Sie ihn in die Klasse 'DemoWindowAlert.java' ein.
Unten finden Sie das Testskript, das dem oben genannten Szenario entspricht.
import java.awt.Robot;
import java.awt.event.KeyEvent; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; öffentliche Klasse DemoWindowAlert {WebDriver-Treiber; @Before public void setUp () {driver = new FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maxim (); } @Test public void testWindowAlert () löst eine Ausnahme aus {// Geben Sie eine gültige E-Mail-Adresse ein driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // ein gültiges Passwort eingeben driver.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // Klicken Sie auf die Anmeldeschaltfläche driver.findElement (By.id ('signIn')). click (); Thread.sleep (30000); // Klicken Sie auf die Schaltfläche 'Verfassen'. driver.findElement (By.xpath ('// div (@ class =' z0 ') // div (enthält (text (),' COMPOSE '))'). click (); // Klicken Sie auf das Symbol zum Anhängen von Dateien. driver.findElement (By.xpath ('// div (enthält (@ Befehl,' Dateien ')) // div (enthält (@ class,' aaA '))')). Klicken Sie auf ( ); // Instanz der Robot-Klasse erstellen (Ein Java-basiertes Dienstprogramm) Robot rb = new Robot (); // Drücken von Tasten mit Hilfe der Ereignisse keyPress und keyRelease rb.keyPress (KeyEvent.VK_D); rb.keyRelease (KeyEvent.VK_D); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_BACK_SLASH); rb.keyRelease (KeyEvent.VK_BACK_SLASH); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_P); rb.keyRelease (KeyEvent.VK_P); rb.keyPress (KeyEvent.VK_I); rb.keyRelease (KeyEvent.VK_I); rb.keyPress (KeyEvent.VK_C); rb.keyRelease (KeyEvent.VK_C); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_ENTER); rb.keyRelease (KeyEvent.VK_ENTER); Thread.sleep (2000); } @After public void tearDown () {driver.quit (); }} Code-Durchgang
Anweisungen importieren
java.awt.Robot importieren - Importieren Sie dieses Paket vor der Skripterstellung. Das Paket verweist auf die Robot-Klasse in Java, die erforderlich ist, um Tastatur- und Mausereignisse zu simulieren.
Importieren Sie java.awt.event.KeyEvent - Mit dem Paket kann der Benutzer die Ereignisse keyPress und keyRelease einer Tastatur verwenden.
Objekterstellung für Roboterklasse
Roboter rb = neuer Roboter ();
Wir erstellen eine Referenzvariable für die Robot-Klasse und instanziieren sie.
KeyPress- und KeyRelease-Ereignisse
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
Die Methoden keyPress und keyRelease simulieren den Benutzer, der eine bestimmte Taste auf der Tastatur drückt bzw. loslässt.
Fazit
In diesem Tutorial haben wir versucht, Sie mit der Alert-Klasse von WebDriver vertraut zu machen, mit der webbasierte Popups verarbeitet werden. Wir haben Sie auch über die Robot-Klasse informiert, mit der der Wert in der fensterbasierten Warnung mithilfe von keyPress- und keyRelease-Ereignissen ausgefüllt werden kann.
Artikelübersicht:
- Warnungen sind ein kleines Feld, das auf dem Bildschirm angezeigt wird, um Ihnen Informationen zu geben oder Sie vor einem möglicherweise schädlichen Vorgang zu warnen, oder Sie werden möglicherweise sogar nach den Berechtigungen für den Vorgang gefragt.
- Es gibt im Allgemeinen zwei Arten von Warnungen - -
- Windows-basierte Warnmeldungen
- Webbasierte Popups für Warnungen
- Vor dem eigentlichen Scripting müssen wir ein Paket importieren, um ein WebDriver-Skript erstellen zu können, mit dem ein Dropdown-Menü verarbeitet und die Select-Klasse zugänglich gemacht werden kann.
- WebDriver bietet den Benutzern eine sehr effiziente Möglichkeit, diese Popups über die Alert-Oberfläche zu verarbeiten.
- nichtig entlassen () - Das entlassen() Die Methode klickt auf die Schaltfläche „Abbrechen“, sobald das Popup-Fenster angezeigt wird.
- void accept () - Das akzeptieren() Die Methode klickt auf die Schaltfläche „OK“, sobald das Popup-Fenster angezeigt wird.
- String getText () - Das getText () Die Methode gibt den im Warnfeld angezeigten Text zurück.
- void sendKeys (String stringToSend) - Das sendKeys () Die Methode gibt das angegebene Zeichenfolgenmuster in das Warnfeld ein.
- Umgang mit fensterbasierten Popups war schon immer etwas knifflig, da wir wissen, dass Selenium ein Automatisierungstest-Tool ist, das nur Webanwendungstests unterstützt. Das heißt, es unterstützt keine Windows-basierten Anwendungen und Windows Alert ist eine davon.
- Roboterklasse ist ein Java-basiertes Dienstprogramm, das die Tastatur- und Mausaktionen emuliert und mithilfe von Tastaturereignissen effektiv zur Behandlung von fensterbasierten Popups verwendet werden kann.
- Die Methoden keyPress und keyRelease simulieren den Benutzer, der eine bestimmte Taste auf der Tastatur drückt bzw. loslässt.
Nächstes Tutorial Nr. 17 : Im kommenden Tutorial würden wir über die verschiedenen anderen diskutieren häufig verwendete WebDriver-Befehle . Wir würden Themen wie Ausnahmebehandlung und Iframe-Behandlung beleuchten. Wir würden auch über die in WebDriver bereitgestellten get-Befehle diskutieren.
Wir würden diese Themen anhand kurzer Beispiele erläutern, um sie für die Leser verständlich zu machen, damit sie diese Konzepte in ihren täglichen Skripten anwenden können.
Hinweis für die Leser : Bleiben Sie bis dahin auf dem Laufenden und automatisieren Sie die Webseiten mit web- und fensterbasierten Popups mithilfe des WebDriver-Dienstprogramms - 'Alert-Klasse' und des Java-Dienstprogramms - 'Robot-Klasse'.
Fühlen Sie sich frei, Ihre Fragen / Kommentare zu diesem oder anderen früheren Tutorials in den Kommentaren unten zu posten.
Literatur-Empfehlungen
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Implementierung unseres ersten WebDriver-Skripts - Selenium WebDriver Tutorial # 10
- WebDriver Gesamte Einrichtung und Installation mit Eclipse - Selenium Tutorial # 9
- Überprüfen Sie die Sichtbarkeit von Webelementen mithilfe verschiedener Arten von WebDriver-Befehlen - Selenium Tutorial # 14
- GeckoDriver Selenium Tutorial: Verwendung von GeckoDriver in Selenium-Projekten
- Integration von Jenkins in Selenium WebDriver: Schritt-für-Schritt-Anleitung
- Effizientes Selenium-Scripting und Fehlerbehebungsszenarien - Selenium-Lernprogramm Nr. 27