Référentiel d'objets dans Selenium
⚡ Résumé intelligent
Référentiel d'objets dans Selenium Cette méthode centralise les localisateurs d'éléments dans un fichier externe unique, les séparant ainsi des scripts de test. Elle facilite la maintenance et permet aux testeurs de mettre à jour les localisateurs en un seul endroit, plutôt que de devoir modifier de nombreux cas de test.

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 Selenium Dans le contexte 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 d'un référentiel d'objets réside dans la séparation des objets et des cas de test. Si la valeur du localisateur d'un élément web change, seul le référentiel d'objets doit être modifié, évitant ainsi de modifier tous les cas de test utilisant ce localisateur. La maintenance d'un référentiel d'objets accroît la modularité de l'implémentation du framework.
Types de référentiels d'objets dans Selenium Pilote Web
Selenium WebDriver ne propose pas de référentiel d'objets intégré par défaut. Cependant, il est possible de créer des référentiels d'objets à l'aide de paires clé-valeur, où la clé correspond au nom de l'objet et la valeur aux propriétés permettant de l'identifier de manière unique au sein de la page web.
Voici les types de référentiels d'objets qui peuvent être créés dans Selenium Pilote Web.
- Référentiel d'objets utilisant le fichier de propriétés
- Référentiel d'objets utilisant un fichier XML
Selenium Référentiel d'objets de pilote Web utilisant le fichier de propriétés
Dans cette approche, un fichier de propriétés est un fichier texte où les données sont stockées sous forme de paires clé-valeur. Le tutoriel ci-dessous abordera les sujets suivants.
Étape 1) Création d'un fichier de propriétés dans Eclipse
- Pour commencer, il est nécessaire de créer dans Eclipse la structure de projet Java ci-dessous. Le nom du projet et le nom du package peuvent être n'importe quels noms valides.
- Faites un clic 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 ».
- Saisissez un nom de fichier valide avec l'extension '.properties' dans la nouvelle fenêtre de ressources de fichier, puis 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 un fichier de propriétés sous forme de paires clé-valeur, la clé étant unique dans tout le fichier.
- Nous allons essayer d'utiliser le fichier de propriétés pour identifier les éléments Web à l'aide des valeurs de localisation.
- Ouvrez le fichier application.properties dans Eclipse et stocker les données suivantes
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) Pour ce didacticiel, le site Web de démonstration suivant est utilisé :
https://demo.guru99.com/test/guru99home/Voici le scénario de test :
- Cliquez sur le lien « Tests mobiles » en utilisant XPATH.
- Revenir en arrière
- Saisissez les données dans le champ de texte de l'adresse e-mail en utilisant l'identifiant.
- Cliquez sur le bouton S'inscrire en utilisant l'ID
Étape 3) Lecture des données du fichier de propriétés
- La lecture des données à partir d'un fichier de propriétés peut être effectuée à l'aide de la classe Properties intégrée fournie dans le package java.util.
- Initialement, un objet de la classe Properties doit être créé comme ci-dessous
Properties obj = new Properties();
- Nous devons créer un objet de la classe FileInputStream avec le chemin d'accès au fichier de propriétés.
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- La lecture des données d'un fichier de propriétés peut être effectuée à l'aide de la méthode `load` de la classe `Properties` en Java. L'exemple de code ci-dessous illustre l'utilisation de cette méthode.
Properties obj = new Properties(); FileInputStream objfile = new 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 Mobile Testing dans la page Web.
Étape 4) Utilisation du fichier de propriétés dans les scripts de test
Un fichier de propriétés peut être utilisé dans les scripts de test en lisant les données qu'il contient et en les passant comme paramètre à la méthode `findElement`. Le code ci-dessous illustre l'utilisation de données lues depuis un 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("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();
Vous trouverez ci-dessous 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) throws IOException { // Create WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Load the properties File Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); // Navigate to link Mobile Testing and Back driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.navigate().back(); // Enter Data into Form driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click(); } }
Selenium Référentiel d'objets WebDriver utilisant un fichier XML
XML signifie Extensible Markup Language (langage de balisage extensible). Un fichier XML utilise le modèle objet de document (DOM) comme structure de base. Le format XML reproduit le format HTML sur lequel repose la page web. Voici la liste des sujets qui seront abordés.
- Création d'un fichier XML dans Eclipse
- Stockage des données sur un fichier XML
- Lire des données à partir d'un fichier XML
- Utilisation d'un fichier XML dans les scripts de test
Étape 1) Création d'un fichier XML dans Eclipse
- La structure du projet Java ci-dessous doit être créée dans Eclipse.
- Faites un clic 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 ».
- Saisissez 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 au format DOM (Document Object Model). Par souci de simplicité, nous pouvons utiliser le scénario de test ci-dessous comme exemple.
- Cliquez sur le lien « Tests mobiles » en utilisant XPATH.
- Retour à la page d'accueil
- Saisissez les données dans le champ de texte de l'adresse e-mail en utilisant l'identifiant.
- Cliquez sur le bouton S'inscrire en utilisant l'ID
Voici le format du fichier XML à utiliser.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
Stockez le code XML ci-dessus dans Properties.xml
Dans l'onglet Conception, vous verrez
Étape 3) Lecture des données du fichier XML
1. La lecture des données d'un fichier XML peut être effectuée à l'aide de la classe intégrée « dom4j » en Java. Veuillez noter que vous devez ajouter les fichiers JAR ci-dessous au chemin de compilation de votre projet avant de poursuivre l'exécution du code.
- jaxen.jar
- dom4j-1.6.jar
2. Ci-dessous figure le code permettant de lire les données du fichier XML.
File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new 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. Dans un premier temps, il faut créer un objet File et le passer en paramètre à la méthode « read » de la classe SAXReader. Une fois les données du fichier XML lues avec succès, on peut accéder aux nœuds individuels du document XML à l’aide de la méthode « selectSingleNode ».
Étape 4) Utilisation du fichier XML dans les scripts de test
Il est possible d'utiliser un fichier XML dans les scripts de test en lisant des données depuis ce fichier et en les passant comme paramètre à la méthode `findElement`. Le code ci-dessous illustre l'utilisation de données lues depuis un fichier XML dans les scripts de test.
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
Le code ci-dessous illustre l'utilisation d'un fichier XML dans Selenium 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; public class DemoORXML { public static void main(String[] args) throws DocumentException { // Creating WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Reading XML File File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new 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(); // Navigating to Mobile Testing and back driver.findElement(By.xpath(mobileTesting)).click(); driver.navigate().back(); // Entering Form Data driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click(); } }
Téléchargez le WebDriver Eclipse Projet













