Utilisation de XPath dans l'exemple Selenium
Dans cet exemple, nous allons apprendre à utiliser XPath dans Selenium. Nous commencerons par l'introduction de Selenium et XPath - qu'est-ce que c'est et comment l'utiliser, puis nous verrons le modèle de travail de la façon d'utiliser XPath dans les tests Selenium.
Les outils et technologies utilisés dans cet exemple sont Java 1.7, Maven, Intellij, Selenium 2, ChromeDriver, le plugin Chrome XPath Helper.
1. Sélénium
Selenium automatise les navigateurs. Il s'agit principalement d'automatiser les applications Web à des fins de test. Selenium est pris en charge par certains des plus grands fournisseurs de navigateurs. À une époque de processus logiciels hautement interactifs et réactifs où de nombreuses organisations utilisent une certaine forme de méthodologie Agile, l'automatisation des tests devient fréquemment une exigence pour les projets logiciels. L'automatisation des tests est souvent la réponse. L'automatisation des tests consiste à utiliser un outil logiciel pour exécuter des tests reproductibles sur l'application à tester.
Selenium-WebDriver prend en charge les navigateurs suivants ainsi que les systèmes d'exploitation avec lesquels ces navigateurs sont compatibles.
- Google Chrome
- Internet Explorer 6, 7, 8, 9, 10 – 32 et 64 bits, le cas échéant
- Firefox :dernière ESR, ESR précédente, version actuelle, une version précédente
- Safari
- Opéra
- HtmlUnit
- fantômes
- Android (avec Selendroid ou appium)
- iOS (avec pilote ios ou appium)
2. Structure du projet
Vous trouverez ci-dessous la structure de projet utilisée dans cet exemple
Figure 1. Structure du projet
3. Classe de test de sélénium
ExempleSeleniumXPath
package com.javacodegeeks; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import java.net.URL; /** * Example to show how to use XPath in Selenium test. * @author JavaCodeGekks.com */ public class ExampleSeleniumXPath { public static void main(String args[]) throws Exception { WebDriver driver = new RemoteWebDriver(new URL("http://localhost:9515"), DesiredCapabilities.chrome()); driver.get("http://www.javacodegeeks.com"); WebElement element = driver.findElement(By.xpath("/html/body[@class='home blog gecko']/div[@id='wrapper']/div[@id='bottom']/div[1]/a[@class='ext-link']")); System.out.println(element.getText()); System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } }
Créez la nouvelle instance du pilote Chrome
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:9515"), DesiredCapabilities.chrome());
Utilisez maintenant ce pilote pour visiter http://www.javacodegeeks.com
driver.get("http://www.javacodegeeks.com");
Appelez maintenant le findElement()
méthode sur cette instance de pilote en utilisant By.xpath()
.
WebElement element = driver.findElement(By.xpath("/html/body[@class='home blog gecko']/div[@id='wrapper']/div[@id='bottom']/div[1]/a[@class='ext-link']"));
4. Fichier Pom
Ci-dessous se trouve le fichier pom qui définit la dépendance pour Selenium 2.
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>SeleniumXPath</groupId> <artifactId>SeleniumXPath</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.45.0</version> </dependency> </dependencies> </project>
5. Pilote Chrome
WebDriver
est un outil open source pour le test automatisé d'applications Web sur de nombreux navigateurs. Il offre des fonctionnalités de navigation vers des pages Web, d'entrées d'utilisateurs, d'exécution de JavaScript, etc. Chrome Driver est un serveur autonome qui implémente le protocole filaire de Web Driver.
Le pilote Chrome se compose de trois pièces distinctes. Il y a le navigateur lui-même ("chrome "), les liaisons de langage fournies par le projet Selenium ("le pilote") et un exécutable téléchargé depuis Chromium projet qui agit comme un pont entre "chrome" et le "driver". Cet exécutable s'appelle "chromedriver “.
Pour exécuter l'application, nous devons exécuter le pilote Chrome. Par défaut, il s'exécute sur le port 9515. Vous pouvez télécharger le pilote Chrome à partir du pilote Chrome. Pour notre exemple, nous avons téléchargé le fichier 'chromedriver_win32.zip ' dossier. Extrayez le fichier zip et lancez l'exe.
Vous trouverez ci-dessous la capture d'écran de l'application Chrome Driver.
Figure 2. Pilote Chrome
5.1 Exécuter ChromeDriver en tant que processus autonome
Depuis le ChromeDriver
implémente le protocole filaire, il est entièrement compatible avec n'importe quel RemoteWebDriver
client. Démarrez simplement le ChromeDriver
exécutable (qui fonctionne comme un serveur), créez un client, et c'est parti :
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:9515"), DesiredCapabilities.chrome()); driver.get("http://www.javacodegeeks.com");
6. Assistant XPath
Pour extraire les informations xpath d'un élément, nous utiliserons XPath Helper
(version - 1.0.13) plugin pour chrome. Ce plugin vous donne la possibilité d'extraire les informations XPath. Ajoutez le plug-in au navigateur Chrome.
- Ouvrez un nouvel onglet et accédez à http://www.javacodegeeks.com/ .
- Appuyez sur Ctrl-Maj-X pour ouvrir la console XPath Helper
- Maintenez la touche Maj enfoncée lorsque vous passez la souris sur les éléments de la page. La boîte de requête sera continuellement mise à jour pour afficher le XPath complet
Vous trouverez ci-dessous la capture d'écran de l'application XPath Helper.
Figure 3. Assistant XPath
7. Sortie
Vous trouverez ci-dessous la sortie que nous obtenons lorsque nous exécutons la classe ExampleSeleniumXPath.
Exelixis Media Ltd Page title is: Java Programming, Learn Java Online with the Java Code Geeks | Java developers resource center - Java, Scala, Groovy, Android
8. Télécharger le fichier source
Ceci était un exemple d'utilisation de XPath dans un test Selenium.selenium