Qu'est-ce qu'un référentiel d'objets?
Un référentiel d'objets est un emplacement de stockage commun pour tous les objets. Dans le contexte de Selenium WebDriver, les objets sont généralement les localisateurs utilisés pour identifier de manière unique les éléments Web.
Le principal avantage de l'utilisation du référentiel d'objets est la séparation des objets des cas de test. Si la valeur de localisateur d'un élément Web change, seul le référentiel d'objets doit être modifié plutôt que d'apporter des modifications dans tous les cas de test dans lesquels le localisateur a été utilisé. La maintenance d'un référentiel d'objets augmente la modularité de l'implémentation du framework.
Dans ce didacticiel, vous apprendrez-
- Qu'est-ce qu'un référentiel d'objets?
- Types de référentiels d'objets dans Selenium Web Driver
- Référentiel d'objets du pilote Web Selenium utilisant le fichier de propriétés
- Référentiel d'objets Selenium WebDriver à l'aide d'un fichier XML
Types de référentiels d'objets dans Selenium Web Driver
Selenium WebDriver n'offre pas de référentiel d'objets intégré par défaut. Cependant, les référentiels d'objets peuvent être construits en utilisant l'approche de paire clé-valeur dans laquelle la clé fait référence au nom donné à l'objet et la valeur fait référence aux propriétés utilisées pour identifier de manière unique un objet dans la page Web.
Voici les types de référentiels d'objets qui peuvent être créés dans Selenium WebDriver.
- Référentiel d'objets utilisant le fichier de propriétés
- Référentiel d'objets utilisant un fichier XML
Référentiel d'objets du pilote Web Selenium utilisant le fichier de propriétés
Dans cette approche, le fichier de propriétés est un fichier texte dans lequel les données sont stockées sous la forme de paires clé-valeur. Le didacticiel ci-dessous abordera les sujets suivants.
- Créer un fichier de propriétés dans eclipse
- Stockage des données dans le fichier de propriétés
- Lecture des données à partir du fichier de propriétés
- Utilisation du fichier de propriétés dans les scripts de test
Étape 1) Création d'un fichier de propriétés dans eclipse
- Pour commencer, la structure de projet java ci-dessous doit être créée dans eclipse. Le nom du projet et le nom du package peuvent être des noms valides.
- Cliquez avec le bouton droit sur le dossier principal du projet et sélectionnez Nouveau-> Autre
- Dans la fenêtre suivante, sélectionnez Général -> Fichier et cliquez sur le bouton `` Suivant ''
- Fournissez un nom de fichier valide avec l'extension '.properties' dans la nouvelle fenêtre de ressource de fichier et cliquez sur le bouton 'Terminer'
- Un fichier nommé 'application.properties' doit être affiché dans la structure du projet
Étape 2) Stockage des données dans le fichier de propriétés
- Les données sont stockées dans le fichier de propriétés sous la forme de paires clé-valeur, la clé étant unique dans le fichier.
- Nous allons essayer d'utiliser le fichier de propriétés pour identifier les éléments Web à l'aide des valeurs de localisateur.
- Ouvrez le fichier application.properties dans Eclipse et stockez les données suivantes
MobileTesting = // a [text () = 'MOBILE TESTING']EmailTextBox = philadelphia-field-emailSignUpButton = philadelphia-field-submit
4) Pour ce didacticiel, le site Web de démonstration suivant est utilisé: http://demo.guru99.com/test/guru99home/. Voici le scénario de test:
- Cliquez sur le lien Mobile Testing en utilisant XPATH
- Revenir en arrière
- Entrez les données dans la boîte de texte de l'e-mail à l'aide de l'ID
- Cliquez sur le bouton Inscription à l'aide de l'ID
Étape 3) Lecture des données du fichier de propriétés
- La lecture des données à partir du fichier de propriétés peut être effectuée à l'aide de la classe Properties intégrée fournie dans le package java.util.
- Au départ, un objet de la classe Properties doit être créé comme ci-dessous
Propriétés obj = nouvelles propriétés ();
- Nous devons créer un objet de la classe FileInputStream avec le chemin d'accès au fichier de propriétés
FileInputStream objfile = nouveau FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
- La lecture des données à partir du fichier de propriétés peut être effectuée à l'aide de la méthode de chargement proposée par la classe Properties de java. Le code ci-dessous illustre l'utilisation de la méthode de chargement.
Propriétés obj = nouvelles propriétés ();FileInputStream objfile = nouveau FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");
La chaîne «mobileTesting» contiendra le XPATH pour identifier le lien de test mobile dans la page Web.
Étape 4) Utilisation du fichier de propriétés dans les scripts de test
Le fichier de propriétés peut être utilisé dans les scripts de test en lisant les données d'un fichier de propriétés et en transmettant les données en tant que paramètre à la méthode findElement. Le code ci-dessous illustre l'utilisation des données lues à partir du fichier de propriétés dans les scripts de test.
driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click ();
Le code ci-dessous est le code complet utilisé pour le scénario de test ci-dessus.
package com.objectrepository.demo;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Properties;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;public class DemoOR {public static void main (String [] args) lève IOException {// Créer une instance WebDriverPilote WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");pilote = nouveau ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maximiser ();// Charger le fichier de propriétésPropriétés obj = nouvelles propriétés ();FileInputStream objfile = nouveau FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate pour relier Mobile Testing et Backdriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). back ();// Entrez les données dans le formulairedriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click ();}}
Référentiel d'objets Selenium WebDriver à l'aide d'un fichier XML
XML signifie Extensible Markup Language. Un fichier XML utilise le modèle d'objet de document (DOM) comme structure de base. Le format de fichier XML reproduira le format HTML sur lequel la page Web est construite. Vous trouverez ci-dessous la liste des sujets qui seront abordés.
- Créer un fichier XML dans eclipse
- Stockage des données dans un fichier XML
- Lire des données à partir d'un fichier XML
- Utilisation du fichier XML dans les scripts de test
Étape 1) Création d'un fichier XML dans eclipse
- La structure de projet Java ci-dessous doit être créée dans Eclipse.
- Cliquez avec le bouton droit sur le dossier du projet, sélectionnez Nouveau -> Autre
- Sélectionnez le fichier XML dans le dossier XML et cliquez sur le bouton 'Suivant'
- Entrez un nom de fichier XML valide et cliquez sur le bouton 'Terminer'
- Un fichier XML sera ajouté au dossier du projet comme indiqué ci-dessous
Étape 2) Stockage des données sur un fichier XML
Les données peuvent être stockées dans un fichier XML sous la forme de modèle d'objet de document (DOM). Par souci de simplicité, nous pouvons utiliser le scénario de test ci-dessous comme exemple.
- Cliquez sur le lien Mobile Testing en utilisant XPATH
- Revenir à la page d'accueil
- Entrez les données dans la boîte de texte de l'e-mail à l'aide de l'ID
- Cliquez sur le bouton Inscription à l'aide de l'ID
Voici le format du fichier XML à utiliser.
Stockez le code XML ci-dessus dans properties.xml
Dans l'onglet de conception, vous verrez
Étape 3) Lecture des données à partir d'un fichier XML
1. La lecture des données à partir d'un fichier XML peut être effectuée en utilisant la classe intégrée «dom4j» de java. Veuillez noter que vous devez ajouter les fichiers JAR ci-dessous dans le chemin de compilation de votre projet avant de continuer avec le code.
- jaxen.jar
- dom4j-1.6.jar
2. Vous trouverez ci-dessous le code pour lire les données d'un fichier XML.
Fichier inputFile = nouveau fichier (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = nouveau SAXReader ();Document document = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menu / mobiletesting"). GetText ();String emailTextBox = document.selectSingleNode ("// menu / email"). GetText ();String signUpButton = document.selectSingleNode ("// menu / signup"). GetText ();
3. Au départ, nous devons créer un objet File et le passer en paramètre à la méthode 'read' de la classe SAXReader. Une fois que les données du fichier XML sont lues avec succès, nous pouvons accéder aux nœuds individuels du document XML en utilisant la méthode 'selectSingleNode'.
Étape 4) Utilisation du fichier XML dans les scripts de test
Le fichier XML peut être utilisé dans les scripts de test en lisant les données du fichier XML et en passant les données en tant que paramètre à la méthode findElement. Le code ci-dessous illustre l'utilisation des données lues à partir d'un fichier XML dans les scripts de test.
driver.findElement (By.xpath (mobileTesting)). click ();driver.findElement (By.id (emailTextBox)). sendKeys (" Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.");driver.findElement (By.id (signUpButton)). click ();
Le code ci-dessous illustre l'utilisation du fichier XML dans le sélénium WebDriver
package com.objectrepository.demo;import java.io. *;import java.util. *;import org.dom4j. *;import org.dom4j.io.SAXReader;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;classe publique DemoORXML {public static void main (String [] args) lève DocumentException {// Création d'une instance WebDriverPilote WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");pilote = nouveau ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maximiser ();// Lecture du fichier XMLFichier inputFile = nouveau fichier (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = nouveau SAXReader ();Document document = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menu / mobiletesting"). GetText ();String emailTextBox = document.selectSingleNode ("// menu / email"). GetText ();String signUpButton = document.selectSingleNode ("// menu / signup"). GetText ();// Navigation vers Mobile Testing et retourdriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). back ();// Saisie des données du formulairedriver.findElement (By.id (emailTextBox)). sendKeys (" Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.");driver.findElement (By.id (signUpButton)). click ();}}
Téléchargez le projet WebDriver Eclipse
Résumé:
- Un référentiel d'objets est un emplacement de stockage commun pour tous les objets
- Selenium WebDriver n'offre pas de référentiel d'objets intégré par défaut
- Vous pouvez créer 2 types de référentiel d'objets dans Selenium
- Référentiel d'objets utilisant le fichier de propriétés
- Référentiel d'objets utilisant un fichier XML
- Le fichier de propriétés est un fichier texte dans lequel les données sont stockées sous la forme de paires clé-valeur
- Le format de fichier XML reproduira le format HTML sur lequel la page Web est construite.