Java >> Tutoriel Java >  >> Java

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.

  1. Ouvrez un nouvel onglet et accédez à http://www.javacodegeeks.com/ .
  2. Appuyez sur Ctrl-Maj-X pour ouvrir la console XPath Helper
  3. 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

Balise Java