Référentiel d'objets dans Selenium (Fichier XML et propriétés)
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 du référentiel d’objets est la séparation des objets des scénarios de test. Si la valeur du localisateur d'un élément Web change, seul le référentiel d'objets doit être modifié plutôt que d'apporter des modifications à 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 la mise en œuvre du framework.
Types de référentiels d'objets dans Selenium Pilote Web
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 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, le fichier de propriétés est un fichier texte dans lequel les données sont stockées sous forme de paires clé-valeur. Le didacticiel ci-dessous abordera les sujets suivants.
- Création d'un fichier de propriétés dans Eclipse
- Stockage des données dans un fichier de propriétés
- Lecture des données 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 du projet Java ci-dessous doit être créée dans Eclipse. Le nom du projet et le nom du package peuvent être n’importe quel nom valide.
- 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 »
- 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é sur 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 du localisateur.
- 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 Mobile Testing utilisant XPATH
- Revenir en arrière
- Saisissez les données dans la zone de texte de l'e-mail à l'aide de l'ID
- 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 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.
- 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 du fichier de propriétés peut être effectuée à l'aide de la méthode de chargement proposée par la classe Properties en Java. Le code ci-dessous montre l'utilisation de la méthode de chargement.
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
Le fichier de propriétés peut être utilisé dans des 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 montre 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("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); // Nagigate 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. Un fichier XML utilise le Document Object Model (DOM) comme structure de base. Le format de fichier XML répliquera le format HTML sur lequel la page Web est construite. Vous trouverez ci-dessous 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 »
- 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 d'un 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 utilisant XPATH
- Naviguez vers la page d'accueil
- Saisissez les données dans la zone de texte de l'e-mail à l'aide de l'ID
- Cliquez sur le bouton S'inscrire en utilisant l'ID
Vous trouverez ci-dessous le format de 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 « dom4j » intégrée à Java. Veuillez noter que vous devez ajouter les fichiers JAR ci-dessous dans le chemin de construction de votre projet avant de poursuivre le code.
- jaxen.jar
- dom4j-1.6.jar
2. Vous trouverez ci-dessous le code pour 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. Initialement, nous devons créer un objet File et le transmettre en tant que paramètre à la méthode 'read' de la classe SAXReader. Une fois les données du fichier XML lues avec succès, nous pouvons 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
Le fichier XML peut être utilisé dans des scripts de test en lisant les données du fichier XML et en transmettant les données en tant que paramètre à la méthode findElement. Le code ci-dessous démontre l'utilisation des données lues à partir du 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 démontre l'utilisation du 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
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 forme de paires clé-valeur.
- Le format de fichier XML répliquera le format HTML sur lequel la page Web est construite.