Selenium WebDriver avec Java

Introduction à Selenium WebDriver

Qu'est-ce que Selenium ?
Selenium est un outil open-source conçu pour automatiser les tests d'applications web sur différents navigateurs. Il prend en charge plusieurs langages de programmation, dont Java, Python, C#, et Ruby.

Avantages de Selenium WebDriver

Installation et Configuration

Prérequis

  1. JDK installé et configuré dans le PATH.
  2. Un IDE comme IntelliJ IDEA ou Eclipse.
  3. Selenium WebDriver JAR téléchargés.
  4. Driver spécifique au navigateur (ChromeDriver, GeckoDriver, etc.).

Étapes de configuration

  1. Téléchargez Selenium WebDriver à partir du site officiel : https://www.selenium.dev.
  2. Configurez votre projet dans l'IDE :
    • Créez un projet Java.
    • Ajoutez les fichiers JAR de Selenium WebDriver au classpath.
  3. Téléchargez et placez le fichier driver pour le navigateur dans un dossier accessible.

Structure d'un Test avec Selenium

Exemple de base

import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class TestGoogleSearch { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.get("https://www.google.com"); System.out.println("Titre de la page : " + driver.getTitle()); driver.quit(); } }

Page Object Model (POM)

Qu'est-ce que le POM ?
Le Page Object Model est un design pattern utilisé pour structurer le code des tests en séparant les scripts de test des éléments de l'interface utilisateur.

Avantages du POM

Exemple de POM

import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; public class LoginPage { WebDriver driver; @FindBy(id = "username") WebElement usernameField; @FindBy(id = "password") WebElement passwordField; @FindBy(id = "loginButton") WebElement loginButton; public LoginPage(WebDriver driver) { this.driver = driver; PageFactory.initElements(driver, this); } public void enterUsername(String username) { usernameField.sendKeys(username); } public void enterPassword(String password) { passwordField.sendKeys(password); } public void clickLogin() { loginButton.click(); } }
Retour à l'accueil