webdriver listeners selenium
Was sind WebDriver-Listener? Warum brauchen wir Listener für Selenium Automation Testing? Dieses Tutorial beantwortet diese Fragen im Detail mit Beispielcodebeispielen:
Zuhörer „hören“, wie der Name schon sagt, auf jedes Ereignis, das im Selenium-Code vorgeschrieben ist. Zum Beispiel, wenn Sie wissen möchten, was passiert, bevor Sie auf ein Element klicken. Vor und nach dem Navigieren zu einem Element oder was passiert, wenn eine Ausnahme ausgelöst wird und der Test fehlschlägt, sind Listener hilfreich.
Die praktische Verwendung von Listenern beim Testen von Selenium-Automatisierung könnte darin bestehen, die Reihenfolge der Aktionen zu protokollieren und den Screenshot zu erstellen, sobald eine Ausnahme ausgelöst wird. Dies erleichtert das einfache Debuggen in späteren Phasen der Testausführung.
=> Überprüfen Sie ALLE Selen-Tutorials hier.
Was du lernen wirst:
Implementierung von Webdriver-Listenern
Es gibt hauptsächlich zwei Arten von Zuhörern:
- Webdriver Listener
- TestNG Listener
Wir werden zunächst verstehen, wie Webdriver Listener funktionieren. In diesem Tutorial konzentrieren wir uns auf den Webdriver Event Listener.
Warum verwenden wir den Webdriver Event Listener?
Mithilfe von Webdriver können wir viele Ereignisse im Browser und in den Webelementen auslösen. Es verfolgt alle Ereignisse, die während der Ausführung ausgelöst werden, und kann uns beim Debuggen helfen, wenn die Ausführung abgeschlossen ist.
Es gibt zwei Möglichkeiten, wie wir die Webdriver-Ereignis-Listener implementieren können:
- WebDriverEventListener Dies ist eine Schnittstelle mit einigen vordefinierten Methoden zum Verfolgen der Webdriver-Ereignisse. Es erfordert, dass wir implementieren ALLE die in der Schnittstelle vordefinierten Methoden.
- AbstractWebDriverEventListener-Klasse Dies gibt uns die Möglichkeit, nur die Methoden zu implementieren, an denen wir interessiert sind.
# 1) WebDriverEventListener-Schnittstelle
Vordefinierte Methoden zur Implementierung der WebDriverEventListener-Schnittstelle sind nachstehend aufgeführt:
(i) void beforeChangeValueOf (WebElement arg0, WebDriver arg1, CharSequence () arg2)
Diese Methode wird ausgelöst, wenn wir entweder die Operation sendKeys () oder clear () für das Webelement ausführen. (Zum Beispiel driver.findElement (By.id ('Login')). Clear ()) und wird ausgelöst VOR Ausführen der Operation für das Webelement.
Parameter:
arg0= Web Element arg1=driver
(ii) void afterChangeValueOf (WebElement arg0, WebDriver arg1, CharSequence () arg2)
Diese Methode wird ausgelöst, wenn wir entweder die Operation sendKeys () oder clear () für das Webelement ausführen. (Zum Beispiel driver.findElement (By.id ('Login')). Clear ()) und wird ausgelöst NACH DEM Ausführen der Operation für das Webelement.
Parameter:
arg0= Web Element arg1=driver
(iii) void beforeClickOn (WebElement arg0, WebDriver arg1)
Diese Methode wird ausgelöst VOR Wir klicken auf ein beliebiges Webelement.
Parameter:
arg0= Web Element arg1=driver
(iv) void afterClickOn (WebElement arg0, WebDriver arg1)
Fragen und Antworten zum Helpdesk-Support-Interview
Diese Methode wird ausgelöst NACH DEM Wir klicken auf ein beliebiges Webelement.
Parameter:
arg0= Web Element arg1=driver
(v) void beforeNavigateTo (String arg0, WebDriver arg1)
Diese Methode wird ausgelöst, wenn wir navig (). To (String URL) (Navigieren Sie beispielsweise (). To (“https: // www.google.com ”)) Und wird ausgelöst VOR Navigieren zur URL.
Parameter:
arg0= URL arg1=driver
(vi) void afterNavigateTo (String arg0, WebDriver arg1)
Diese Methode wird ausgelöst, wenn wir navig (). To (String URL) (Navigieren Sie beispielsweise (). To (“https: // www.google.com ”)) Und wird ausgelöst NACH DEM Navigieren zur URL.
Parameter:
arg0= URL arg1=driver
(vii) void beforeNavigateBack (WebDriver arg0)
Diese Methode wird ausgelöst, wenn wir den Befehl navig (). Back () verwenden. Es findet statt VOR Weiterleiten des Benutzers zur vorherigen Seite.
Parameter:
arg0=driver
(viii) void afterNavigateBack (WebDriver arg0)
Diese Methode wird ausgelöst, wenn wir den Befehl navig (). Back () verwenden. Es findet statt NACH DEM Weiterleiten des Benutzers zur vorherigen Seite.
Parameter:
arg0=driver
(ix) void beforeNavigateForward (WebDriver arg0)
Diese Methode wird ausgelöst, wenn wir den Befehl navig (). Forward () verwenden. Es findet statt VOR Weiterleiten des Benutzers zur nächsten Seite.
Parameter:
arg0=driver
(x) void afterNavigateBack (WebDriver arg0)
Diese Methode wird ausgelöst, wenn wir den Befehl navig (). Forward () verwenden. Es findet statt NACH DEM Weiterleiten des Benutzers zur nächsten Seite.
Parameter:
arg0=driver
(xi) void beforeNavigateRefresh (WebDriver arg0)
Diese Methode wird ausgelöst, wenn wir den Befehl navig (). Refresh () verwenden. Es findet statt VOR Aktualisieren der aktuellen Seite.
Parameter:
arg0=driver
(xii) void afterNavigateRefresh (WebDriver arg0)
Diese Methode wird ausgelöst, wenn wir den Befehl navig (). Refresh () verwenden. Es findet statt NACH DEM Aktualisieren der aktuellen Seite.
Parameter:
arg0=driver
(xiii) void beforeFindBy (Von arg0, WebElement arg1, WebDriver arg2)
Diese Methode wird ausgelöst, wenn wir den Befehl verwenden driver.findElement (By.id ('Eine ID oder ein anderer Locator')) . Es findet statt VOR Suchen Sie das Webelement.
Parameter:
arg0=locator arg1=Web Element arg2=driver
(xiv) void afterFindBy (Mit arg0, WebElement arg1, WebDriver arg2)
Diese Methode wird ausgelöst, wenn wir den Befehl verwenden driver.findElement (By.id ('Eine ID oder ein anderer Locator')) . Es findet statt NACH DEM Suchen Sie das Webelement.
Parameter:
arg0=locator arg1=Web Element arg2=driver
(xv) void onException (Throwable arg0, WebDriver arg1)
Diese Methode wird immer dann ausgelöst, wenn eine Ausnahme ausgelöst wird. Wenn der Webdriver beispielsweise das Element nicht finden kann, löst er diese Methode aus und führt den darin geschriebenen Code aus.
Parameter:
arg0=Exception arg1= driver
(xvi) void beforeAlertAccept (WebDriver arg0)
Diese Methode wird immer dann ausgelöst, wenn auf dem Bildschirm ein Warnfeld angezeigt wird, und wird direkt ausgelöst VOR Klicken Sie auf die Schaltfläche 'OK oder AKZEPTIEREN'.
Parameter:
arg0=driver
(xvii) void afterAlertAccept (WebDriver arg0)
Diese Methode wird immer dann ausgelöst, wenn auf dem Bildschirm ein Warnfeld angezeigt wird, und wird direkt ausgelöst NACH DEM Klicken Sie auf die Schaltfläche 'OK oder AKZEPTIEREN'.
Parameter:
arg0=driver
(xviii) void beforeAlertDismiss (WebDriver arg0)
Diese Methode wird immer dann ausgelöst, wenn auf dem Bildschirm ein Warnfeld angezeigt wird, und wird direkt ausgelöst VOR Klicken Sie auf die Schaltfläche 'Abbrechen'.
Parameter:
arg0=driver
(xix) void afterAlertDismiss (WebDriver arg0)
Diese Methode wird immer dann ausgelöst, wenn auf dem Bildschirm ein Warnfeld angezeigt wird, und wird direkt ausgelöst NACH DEM Klicken Sie auf die Schaltfläche 'Abbrechen'.
Parameter:
arg0=driver
Dies sind alle Methoden, die mit verfügbar sind WebDriverEventListener. Es gibt zwei andere Methoden vor und nach, aber wir werden diese in diesem Tutorial nicht behandeln.
Schritte zum Implementieren von Listenern mithilfe der Schnittstelle „WebDriverEventListener“ in Eclipse:
Schritt 1: Erstellen Sie ein Paket mit dem Namen 'Listener'. Erstellen Sie in diesem Paket eine Klasse mit dem Namen „ WebdriverListeners Und lassen Sie es umsetzen 'WebDriverEventListener' .
Die Benutzeroberfläche sollte wie folgt aussehen:
Bewegen Sie die Maus über die rote Linie mit 'Fehler'. Die Eclipse sollte den folgenden Vorschlag zum Importieren von 'WebDriverEventListener' auslösen. Klicken Sie auf Importieren.
Der Fehler im WebDriverEventListener wird beendet, aber der folgende Fehler wird in der Klasse 'WebDriverListeners' angezeigt. Bewegen Sie den Mauszeiger über den Fehler und Sie sehen einen Vorschlag zum Hinzufügen nicht implementierter Methoden. Klicken Sie darauf und Sie werden sehen, dass alle Methoden oben aufgelistet und beschrieben sind.
bester mp3 music downloader für pc
Bitte beachten Sie, dass wir zu Demonstrationszwecken jeder Methode die Zeile System.out.println hinzugefügt haben.
Beispielcode-1
package Listeners; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.events.WebDriverEventListener; public class WebDriverListeners implements WebDriverEventListener { @Override public void afterAlertAccept(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('After Alert Accept '+arg0.toString() ); } @Override public void afterAlertDismiss(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('After Alert Dismiss '+ arg0); } @Override public void afterChangeValueOf(WebElement arg0, WebDriver arg1, CharSequence() arg2) { // TODO Auto-generated method stub System.out.println('After value change of' +arg0); } @Override public void afterClickOn(WebElement arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('After clicked'+arg0); } @Override public void afterFindBy(By arg0, WebElement arg1, WebDriver arg2) { // TODO Auto-generated method stub System.out.println('After Find By'+arg1); } @Override public void afterNavigateBack(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('After Navigate Back'); } @Override public void afterNavigateForward(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('After Navigate Forward'); } @Override public void afterNavigateRefresh(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('On Navigating Refresh'); } @Override public void afterNavigateTo(String arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('On Navigating To'+arg0); } @Override public void afterScript(String arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('After Script'); } @Override public void beforeAlertAccept(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('Before Alert Accept'); } @Override public void beforeAlertDismiss(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('Before Alert Dismiss'); } @Override public void beforeChangeValueOf(WebElement arg0, WebDriver arg1, CharSequence() arg2) { // TODO Auto-generated method stub System.out.println('Before Change Value of'+arg0); } @Override public void beforeClickOn(WebElement arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('Before Click on'+arg0); } @Override public void beforeFindBy(By arg0, WebElement arg1, WebDriver arg2) { // TODO Auto-generated method stub System.out.println('Before Find By'+arg0); } @Override public void beforeNavigateBack(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('Before Navigate Back'); } @Override public void beforeNavigateForward(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('Before Navigate Forward'); } @Override public void beforeNavigateRefresh(WebDriver arg0) { // TODO Auto-generated method stub System.out.println('Before Navigate Refresh'); } @Override public void beforeNavigateTo(String arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('Before Navigate To'+arg0); } @Override public void beforeScript(String arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('Before Script'); } @Override public void onException(Throwable arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('On Exception'+arg0); } }
Schritt 2: Erstellen Sie die Klasse Listeners_Tests und stellen Sie sicher, dass die Hauptmethode in der Klasse enthalten ist. Erweitern Sie die WebDriverListeners-Klasse, damit die Listener-Klasse eine Operation für die für bestimmte Ereignisse vorgeschriebenen Browserbefehle ausführen kann.
Bitte kopieren Sie den folgenden Code und fügen Sie ihn in die Listeners_Tests-Klasse ein. Führen Sie den folgenden Code wie die Java-Anwendung aus.
Beispielcode-2
package Listeners; import java.util.Arrays; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.Proxy; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.support.events.EventFiringWebDriver; public class Listeners_Tests extends WebDriverListeners{ static WebElement e; static ChromeDriver driver; public static void main(String() args) throws InterruptedException { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); /*Setting the capabilities of Chrome Driver*/ try { DesiredCapabilities capabilities = DesiredCapabilities.chrome(); Proxy proxy = new Proxy(); String proxyServer = String.format('AProxyIDontWantToDisplay', System.getenv('proxy.username'), System.getenv('proxy.password')); proxy.setHttpProxy(proxyServer); capabilities.setCapability('proxy', proxy); ChromeOptions options = new ChromeOptions(); options.addArguments(Arrays.asList ('--no-sandbox','--ignore-certificate-errors','--homepage=about:blank','--no-first-run')); options.addArguments('disable-infobars'); capabilities.setCapability(ChromeOptions.CAPABILITY, options); driver = new ChromeDriver(capabilities); } catch (Exception e) { throw new Error(e); } /*---- Creating the instance of EventFiringWebDriver Class----*/ EventFiringWebDriver eventRecorder = new EventFiringWebDriver(driver); /*---- Creating the instance of parent class 'WebdriverListeners' class----*/ WebDriverListeners eCapture = new WebDriverListeners(); /* The below step registers the listeners for logging purpose*/ eventRecorder.register(eCapture); //Event One System.out.println('This is recording Event-One'); eventRecorder.navigate().to('https://www.google.com'); //Event Two System.out.println('This is recording Event-Two'); eventRecorder.findElement(By.xpath('//a(text()='Sign in')')).click(); //Event Three System.out.println('This is recording Event-Three'); eventRecorder.findElement(By.id('identifierId')).clear(); Thread.sleep(5000); //Event Four System.out.println('This is recording Event-Four'); eventRecorder.findElement(By.id('identifierId')).sendKeys('abc@gmail.com'); Thread.sleep(5000); //Event Five System.out.println('This is recording Event-Five'); eventRecorder.navigate().back(); //Event Six System.out.println('This is recording Event-Six'); eventRecorder.navigate().forward(); //Event Seven System.out.println('This is recording Event-Seven'); eventRecorder.navigate().refresh(); //Event Eight System.out.println('This is recording Event-Eight'); eventRecorder.get('https://www.irctc.co.in/eticketing/loginHome.jsf'); //Event Nine System.out.println('This is recording Event-Nine'); eventRecorder.findElement(By.id('loginbutton')).click(); try { Alert alert = eventRecorder.switchTo().alert(); // check if alert exists // TODO find better way alert.getText(); //Event Ten System.out.println('This is recording Event-Ten'); alert.accept(); } catch (Exception e) { } Thread.sleep(3000); eventRecorder.findElement(By.id('loginbutton')).click(); try { Alert alert = eventRecorder.switchTo().alert(); // check if alert exists // TODO find better way alert.getText(); //Event Eleven System.out.println('This is recording Event-Eleven'); alert.dismiss(); } catch (Exception e) { } //Intentionally giving wrong id so it triggers onException Listener--> Event Twelve System.out.println('This is recording Event-Twelve'); eventRecorder.findElement(By.id('loginbutn')).click(); } }
Überprüfen Sie nach erfolgreichem Abschluss des Laufs den in der Konsole protokollierten Inhalt. Wir werden zu jeder Veranstaltung gehen, die im obigen Code aufgeführt ist.
Snippet Nr. 1 der Konsole
Veranstaltung 1: Dadurch wird das Ereignis beforeNavigateTo und afterNavigateTo aufgezeichnet und die in den beiden Blöcken geschriebenen Aktionen entsprechend ausgeführt.
Ereignis 2: Dadurch wird das Ereignis beforeFindBy und afterFindBy aufgezeichnet und die in den beiden Blöcken geschriebenen Aktionen entsprechend ausgeführt. Das Ereignis nach diesen beiden Ereignissen umfasst Ereignisse vor und nach dem Klicken.
Ereignis 3: Dies zeichnet die Ereignisse beforeChangeValueOf und afterChangeValue auf.
Ereignis 4: Dies ist dasselbe wie bei Event-3
Ereignis 5: Dies zeichnet die Ereignisse beforeNavigateBack und afterNavigateBack auf.
Ereignis 6: Hiermit werden Ereignisse vor NavigateForward und nach NavigateForward aufgezeichnet.
Ereignis 7: Dies zeichnet Ereignisse vorNavigateRefresh und afterNavigateRefresh auf.
Ereignis-8: Dies ist dasselbe wie bei Event-1
Ereignis 9: Dies ist dasselbe wie bei Event-2
Snippet # 2 der Konsole
Event-10: Dies zeichnet die Ereignisse wie beforeAlertAccept und afterAlertAccept auf.
Event-11: Dies zeichnet die Ereignisse wie beforeAlertDismiss und afterAlertDismiss auf.
der beste Youtube zu MP4 Konverter
Event-12: Dies zeichnet die Ereignisse wie onException auf und löst die Nachricht aus.
Ich hoffe, die kurze Beschreibung der Listener gibt Ihnen eine Vorstellung davon, wie die Webdriver-Listener funktionieren. Wie bereits erwähnt, müssen wir mithilfe von WebDriverEventListener alle mit dieser Schnittstelle verfügbaren Methoden implementieren.
Mit Hilfe der Klasse AbstractWebDriverEventListener können wir jedoch auswählen, welche Ereignisse implementiert werden sollen.
# 2) AbstractWebDriverEventListener-Klasse
Schritte zum Implementieren von Listenern mit der Klasse 'AbstractWebDriverEventListener':
Schritt 1
Klasse erstellen “ AbstractWebDriverListener 'Und lassen Sie es die Klasse erweitern' AbstractWebDriverEventListener ''
Wie Sie sehen können, im Gegensatz zu “ WebDriverEventListener Wenn diese Klasse erweitert wird, wird kein Fehler ausgegeben, um nicht implementierte Methoden hinzuzufügen. Sie können auswählen, welche Methoden Sie in Ihrem Projekt implementieren möchten.
Kopieren Sie den folgenden Code und fügen Sie ihn ein:
Beispielcode-3
package Listeners; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.events.AbstractWebDriverEventListener; public class AbstractWebDriverListeners extends AbstractWebDriverEventListener{ public void afterChangeValueOf(WebElement arg0, WebDriver arg1, CharSequence() arg2) { // TODO Auto-generated method stub System.out.println('After value change of' +arg0); } public void afterClickOn(WebElement arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('After clicked'+arg0); } public void afterFindBy(By arg0, WebElement arg1, WebDriver arg2) { // TODO Auto-generated method stub System.out.println('After Find By'+arg1); } public void beforeChangeValueOf(WebElement arg0, WebDriver arg1, CharSequence() arg2) { // TODO Auto-generated method stub System.out.println('Before Change Value of'+arg0); } public void beforeClickOn(WebElement arg0, WebDriver arg1) { // TODO Auto-generated method stub System.out.println('Before Click on'+arg0); } public void beforeFindBy(By arg0, WebElement arg1, WebDriver arg2) { // TODO Auto-generated method stub System.out.println('Before Find By'+arg0); } }
Schritt 2
Erstellen Sie eine neue Klasse mit dem Namen „ AbstractListeners_Test 'Und erstellen Sie darin die Instanz von' AbstractWebDriverListeners Klasse.
Kopieren Sie den folgenden Code in diese Klasse.
Beispielcode-4
package Listeners; import java.util.Arrays; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.Proxy; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.support.events.EventFiringWebDriver; public class AbstractListeners_Tests extends WebDriverListeners{ static WebElement e; static ChromeDriver driver; public static void main(String() args) throws InterruptedException { // TODO Auto-generated method stub System.setProperty('webdriver.chrome.driver', 'E:\chromedriver.exe'); /*Setting the capabilities of Chrome Driver*/ try { DesiredCapabilities capabilities = DesiredCapabilities.chrome(); Proxy proxy = new Proxy(); String proxyServer = String.format('AProxyIDontWantToDisplay', System.getenv('proxy.username'), System.getenv('proxy.password')); proxy.setHttpProxy(proxyServer); capabilities.setCapability('proxy', proxy); ChromeOptions options = new ChromeOptions(); options.addArguments(Arrays.asList ('--no-sandbox','--ignore-certificate-errors','--homepage=about:blank','--no-first-run')); options.addArguments('disable-infobars'); capabilities.setCapability(ChromeOptions.CAPABILITY, options); driver = new ChromeDriver(capabilities); } catch (Exception e) { throw new Error(e); } /*---- Creating the instance of EventFiringWebDriver Class----*/ EventFiringWebDriver eventRecorder = new EventFiringWebDriver(driver); /*---- Creating the instance of parent class 'AbstractWebdriverListeners' class----*/ AbstractWebDriverListeners eCapture = new AbstractWebDriverListeners(); /* The below step registers the listeners for logging purpose*/ eventRecorder.register(eCapture); //Event One System.out.println('This is recording Event-One'); eventRecorder.navigate().to('https://www.google.com'); //Event Two System.out.println('This is recording Event-Two'); eventRecorder.findElement(By.xpath('//a(text()='Sign in')')).click(); //Event Three System.out.println('This is recording Event-Three'); eventRecorder.findElement(By.id('identifierId')).clear(); Thread.sleep(5000); //Event Four System.out.println('This is recording Event-Four'); eventRecorder.findElement(By.id('identifierId')).sendKeys('abc@gmail.com'); Thread.sleep(5000); //Event Five System.out.println('This is recording Event-Five'); eventRecorder.navigate().back(); //Event Six System.out.println('This is recording Event-Six'); eventRecorder.navigate().forward(); //Event Seven System.out.println('This is recording Event-Seven'); eventRecorder.navigate().refresh(); //Event Eight System.out.println('This is recording Event-Eight'); eventRecorder.get('https://www.irctc.co.in/eticketing/loginHome.jsf'); //Event Nine System.out.println('This is recording Event-Nine'); eventRecorder.findElement(By.id('loginbutton')).click(); try { Alert alert = eventRecorder.switchTo().alert(); // check if alert exists // TODO find better way alert.getText(); //Event Ten System.out.println('This is recording Event-Ten'); alert.accept(); } catch (Exception e) { } Thread.sleep(3000); eventRecorder.findElement(By.id('loginbutton')).click(); try { Alert alert = eventRecorder.switchTo().alert(); // check if alert exists // TODO find better way alert.getText(); //Event Eleven System.out.println('This is recording Event-Eleven'); alert.dismiss(); } catch (Exception e) { } //Intentionally giving wrong id so it triggers onException Listener--> Event Twelve System.out.println('This is recording Event-Twelve'); eventRecorder.findElement(By.id('loginbutn')).click(); } }
In dieser Klasse wurden auch die zuvor aufgezeichneten Ereignisse aufgezeichnet. Da wir unsere Listener-Klasse jedoch auf die Implementierung von nur sechs Ereignissen beschränkt haben, werden andere verworfen und nur das Protokoll für die genannten Ereignisse angezeigt.
Konsolenfensteransicht
Wie Sie in den gelb markierten Bereichen im obigen Bild sehen können, wurden nur die Methoden in der AbstractWebDriverListeners Klasse wurde ausgelöst.
Fazit
WebDriver-Listener sind die Schnittstellen, die ein Browserereignis abhören und entsprechend darauf reagieren. Wenn Sie es mit Hilfe von WebDriverEventListener implementieren, müssen Sie alle an dieser Schnittstelle beteiligten Methoden implementieren
Wenn Sie WebDriver Listener mithilfe der AbstractWebDriverEventListener-Klasse implementieren, können Sie die Methoden auswählen, die Sie implementieren möchten.
=> Besuchen Sie hier, um Selen von Grund auf neu zu lernen.
Literatur-Empfehlungen
- Cucumber Selenium Tutorial: Integration von Cucumber Java Selenium WebDriver
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- ChromeDriver Selenium Tutorial: Selenium Webdriver-Tests auf Chrome
- Implementierung unseres ersten WebDriver-Skripts - Selenium WebDriver Tutorial # 10
- 30+ beste Selen-Tutorials: Lernen Sie Selen anhand realer Beispiele
- FAQs zu Selen
- Umgang mit Warnungen / Popups in Selenium WebDriver - Selenium Tutorial # 16
- Implizites und explizites Warten in Selenium WebDriver (Arten von Selen-Wartezeiten)