DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Écouteurs d’événements Java dans Selenium WebDriverri
    Uncategorized

    Écouteurs d’événements Java dans Selenium WebDriverri

    mars 15, 2023
    Écouteurs d'événements Java dans Selenium WebDriverri
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Lorsque je travaille sur n’importe quelle fonctionnalité de l’interface utilisateur, j’ai tendance à aspirer à de plus en plus de journaux et de rapports. Cela se produit en particulier lors de l’exécution d’automatisation de test sur des pages Web. Tester de tels sites signifie interagir avec plusieurs éléments Web, ce qui nécessiterait de nombreux déplacements d’une page à l’autre, d’une fonction à l’autre.

    Maintenant, après avoir énoncé l’énoncé du problème et le scénario dans lequel il se produit, la question suivante serait de savoir comment le faire. Existe-t-il un outil ou un moyen pour répondre à cette exigence ? La réponse est oui!

    Selenium, le framework d’automatisation de l’interface utilisateur Web le plus utilisé, dispose de certains utilitaires qui peuvent y parvenir. Il facilite ces interactions via différents localisateurs dans Selenium et fournit toutes les données requises via les auditeurs.

    Un auditeur, comme son nom l’indique, est quelqu’un qui écoute. Et dans ce cas, il écoute toutes les activités, interactions ou événements que vous faites sur un document. Entrons donc dans les détails et voyons comment nous pouvons l’implémenter à l’aide des écouteurs d’événements Java.

    Que sont les auditeurs ?

    Les auditeurs de Selenium possèdent la capacité d’écouter tous les événements tels que la saisie de données, un clic sur un bouton, la navigation vers une page, une exception, etc. Ceux-ci sont définis à l’aide d’une interface dans Selenium et aident à personnaliser le comportement du système en effectuant des actions sur événements tels que définis dans le code.

    Ce sont ceux qui satisfont la faim de tout testeur d’automatisation pour plus de journaux et de rapports, ce qui peut être utile pour déboguer les échecs du script à tout moment ultérieur.

    Pourquoi avons-nous besoin d’auditeurs ?

    Considérons un scénario dans lequel nous travaillons sur des tests d’automatisation Java à l’aide du script Selenium. Nous voulons enregistrer l’ordre de chaque événement exécuté et prendre une capture d’écran pleine page lorsqu’un test se termine ou qu’il y a une exception.

    Une façon de le faire serait d’ajouter un appel de fonction après chaque événement, comme cliquer sur qui l’enregistre, et d’ajouter une fonction qui aide à prendre une capture d’écran dans Selenium après la fin de chaque cas et dans le bloc catch de la gestion des exceptions. Cependant, cela serait lourd à faire et nécessiterait beaucoup d’efforts inutiles.

    C’est alors que les auditeurs d’événements viennent à la rescousse. Cela peut être fait très facilement à l’aide des écouteurs d’événements Java dans Selenium WebDriver. Nous pouvons simplement implémenter toutes les fonctions fournies par cette interface et la laisser faire tout le travail.

    Écouteurs d’événements Java dans Selenium WebDriver

    WebDriverEventListener est le type d’interface d’écoute ayant des méthodes prédéfinies qui aident à écouter tous les événements en utilisant plus de 20 méthodes que nous devons implémenter. Il écoute tous les événements à l’aide de la classe EventFiringWebDriver qui déclenche les événements WebDriver à écouter.

    Avec l’aide de ces deux, WebDriverEventListener et EventFiringWebDriver dans Selenium, nous pouvons suivre des événements comme afterAlertAccept, afterFindBy, beforeClickOn, onException, etc.

    Remarque : Selenium 4 est la dernière version de Selenium au moment de la rédaction de cet article. Ce didacticiel Selenium WebDriver vous aidera à découvrir les nouveautés de Selenium 4 (fonctionnalités et améliorations):

    Méthodes prédéfinies pour les écouteurs d’événements Java

    Pour pouvoir travailler correctement avec Java Event Listeners, une bonne compréhension de ces méthodes prédéfinies est appréciée. Donc, avant d’aller de l’avant pour écrire le code et implémenter le WebDriverEventListener, regardons ce que sont ces méthodes et avec quel événement elles interagissent.

    • void beforeAlertAccept (WebDriver webDriver) – Cette méthode est appelée à chaque fois avant Alert.accept().
    • void afterAlertAccept (WebDriver webDriver) – Cette méthode est appelée à chaque fois après Alert.accept().
    • void beforeAlertDismiss (WebDriver webDriver) – Cette méthode est appelée à chaque fois avant Alert.dismiss().
    • void afterAlertDismiss (WebDriver webDriver) – Cette méthode est appelée à chaque fois après Alert.dismiss().
    • void beforeNavigateTo(String url, WebDriver webDriver) – Cette méthode est appelée avant de naviguer().to(String url).
    • void afterNavigateTo(String url, WebDriver webDriver) – Cette méthode est appelée aprèsnaviga().to(String url) si aucune exception n’est levée.
    • void beforeNavigateBack(WebDriver webDriver) – Cette méthode est appelée avant de naviguer().back().
    • void afterNavigateBack(WebDriver webDriver) – Cette méthode est appelée aprèsnavigation().back() si aucune exception n’est levée.
    • void beforeNavigateForward(WebDriver webDriver) – Cette méthode est appelée avant de naviguer().forward().
    • void afterNavigateForward(WebDriver webDriver) – Cette méthode est appelée aprèsnaviga().forward() si aucune exception n’est levée.
    • void beforeNavigateRefresh(WebDriver webDriver) – Cette méthode est appelée avantnavigation().refresh().
    • void afterNavigateRefresh(WebDriver webDriver) – Cette méthode est appelée aprèsnaviga().refresh() si aucune exception n’est levée.
    • void beforeFindBy(By by, WebElement webElement, WebDriver webDriver) – Cette méthode est appelée avant WebDriver.findElement(…), ou WebDriver.findElements(…), ou WebElement.findElement(…), ou WebElement.findElements(…). Dans cette méthode, si la méthode find de WebDriver est appelée, l’élément serait nul.
    • void afterFindBy(By by, WebElement webElement, WebDriver webDriver) – Cette méthode est appelée après WebDriver.findElement(…), ou WebDriver.findElements(…), ou WebElement.findElement(…), ou WebElement.findElements(…). Dans cette méthode, si la méthode find de WebDriver est appelée, l’élément serait nul.
    • void beforeClickOn(WebElement webElement, WebDriver webDriver) – Cette méthode est appelée avant WebElement.click().
    • void afterClickOn(WebElement webElement, WebDriver webDriver) – Cette méthode est appelée après WebElement.click() si aucune exception n’est levée.
    • void beforeChangeValueOf(WebElement webElement, pilote WebDriver, CharSequence[] keysToSend) – Cette méthode est appelée avant WebElement.clear() ou WebElement.sendKeys(…).
    • void afterChangeValueOf(WebElement webElement, WebDriver webDriver, CharSequence[] keysToSend) – Cette méthode est appelée après WebElement.clear() ou WebElement.sendKeys(…) si aucune exception n’est levée.
    • void beforeSwitchToWindow(String windowName, WebDriver webDriver) – Cette méthode est appelée à chaque fois avant WebDriver.TargetLocator.window(String).
    • void afterSwitchToWindow(String windowName, WebDriver webDriver) – Cette méthode est appelée à chaque fois après WebDriver.TargetLocator.window(String).
    • void onException (Throwable throwable, WebDriver webDriver) – Cette méthode est appelée chaque fois qu’une exception est levée lors de l’exécution.
    • void beforeGetText(WebElement webElement, WebDriver webDriver) – Cette méthode est appelée avant WebElement.getText().
    • void afterGetText(WebElement webElement, WebDriver webDriver, String textFromWebElement) – Cette méthode est appelée après WebElement.getText().

    Exemple d’écouteurs d’événements Java Selenium WebDriver

    Pour ce didacticiel sur les écouteurs d’événements Java, nous utiliserons l’exemple de flux de scénario de test suivant pour comprendre l’implémentation du code et voir la sortie.

    1. Lancez le navigateur et accédez à un terrain de jeu au sélénium.
    2. Entrez des données dans la zone de texte Entrer un message.
    3. Cliquez sur le bouton Obtenir la valeur vérifiée.
    4. Actualiser la page.

    Ce script nous aiderait à comprendre comment différents événements sont déclenchés et capturés et comment nous pouvons les utiliser pour une meilleure journalisation et création de rapports.

    Pour implémenter les écouteurs d’événements Java, les étapes suivantes doivent être effectuées dans l’IDE. Pour ce didacticiel Java Event Listener, j’utiliserai des références à Eclipse IDE, mais vous pouvez également utiliser le même code et suivre les étapes de tout autre IDE de votre choix.

    1. Créez un projet Maven dans Eclipse et nommez-le WebDriverEventListeners_Selenium_Java.
    2. Mettez à jour le fichier pom.xml pour avoir les dépendances Selenium (car nous allons créer un script de test d’automatisation Selenium et utiliser WebDriver Listeners) et TestNG (pour exécuter le test et utiliser des annotations).
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>WebDriverEventListeners_Selenium_Java</groupId>
      <artifactId>WebDriverEventListeners_Selenium_Java</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
              <release>16</release>
            </configuration>
          </plugin>
        </plugins>
        
      </build>
      <dependencies>
      	<dependency>
      		<groupId>org.seleniumhq.selenium</groupId>
      		<artifactId>selenium-java</artifactId>
      		<version>3.141.59</version>
      	</dependency>
      	<dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.14.3</version>
                <scope>test</scope>
            </dependency>
      </dependencies>
    </project>

    3. Créez un package et nommons-le en tant qu’auditeurs.

    4. Dans ce package, nous aurons 2 fichiers Java, WebDriverEventHandler et MainEventHandler.

    Explorateur de packages

    5. La classe WebDriverEventHandler implémentera les méthodes d’interface WebDriverEventListener.

    6. La classe MainEventHandler contiendrait :

    • Le script de test d’automatisation Selenium requis en langage Java.
    • L’objet de la classe EventFiringWebDriver.
    • L’objet de la classe WebDriverEventHandler enregistre l’objet de la classe EventFiringWebDriver et implémente les méthodes d’écoute.

    Procédure pas à pas

    Étape 1 : Implémentez WebDriverEventListener dans la classe WebDriverEventHandler.

    package listeners;
    
    import org.openqa.selenium.support.events.WebDriverEventListener;
    
    public class WebDriverEventHandler implements WebDriverEventListener{
    
    }

    Dès que cela est fait, cela donnerait une erreur d’ajouter toutes les méthodes non implémentées de l’interface.

    Erreur lors de l'ajout de toutes les méthodes non implémentées.

    Survolez l’erreur et cliquez sur Ajouter un message de méthodes non implémentées pour les ajouter. Ceux-ci viendront sans corps, et le fichier mis à jour ressemblera à ceci.

    package listeners;
    
    import org.openqa.selenium.By;
    import...
    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.