Selenium Pilote Web Java Exemple de programme

โšก Rรฉsumรฉ intelligent

Selenium pilote web Java L'exemple de programme vous guide pas ร  pas dans la crรฉation de votre premier script d'automatisation de bout en bout. LessCes modules couvrent la configuration de l'environnement, la localisation des รฉlรฉments, l'envoi d'entrรฉes, la navigation, la validation, les attentes, la gestion des exceptions et les meilleures pratiques pour des tests WebDriver fiables.

  • โš™๏ธ Configuration de l'environnement : Installer Java, Eclipse ou IntelliJ, configurez Selenium bibliothรจques, et choisissez le bon pilote binaire pour votre version de navigateur.
  • ๐Ÿงญ Localisateurs d'รฉlรฉments : Utilisez l'ID, le nom, la classe, XPath, le sรฉlecteur CSS et linkText pour identifier les รฉlรฉments de maniรจre stable sur tous les navigateurs et toutes les versions.
  • ๏ธ Actions et saisie : WebDriver prend en charge les รฉvรฉnements de clic, d'envoi de touches, de soumission, de sรฉlection dans les listes dรฉroulantes et les รฉvรฉnements clavier pour une interaction complรจte de type utilisateur.
  • โณ Attentes intelligentes : Remplacez Thread.sleep par des attentes implicites, explicites et fluides pilotรฉes par ExpectedConditions afin d'รฉliminer les tests instables.
  • ???? Gestion des exceptions: Interceptez les exceptions NoSuchElementException, TimeoutException et StaleElementReferenceException pour garantir la rรฉsilience des suites d'automatisation.
  • ๐Ÿค– Gรฉnรฉration de tests par IA : Les assistants IA gรฉnรจrent des scripts WebDriver standard, suggรจrent des localisateurs et rรฉparent automatiquement les sรฉlecteurs lorsque le DOM change.

Selenium pilote web Java Programme

Selenium Java Exemple

Le Java classe ยซ myclass ยป que nous avons crรฉรฉe dans le tutoriel prรฉcรฉdent, essayons de crรฉer un script WebDriver qui :

ร‰tape 1 : rapporter Mercury Page d'accueil des visites
ร‰tape 2 : vรฉrifier son titre
ร‰tape 3 : imprimer le rรฉsultat de la comparaison
ร‰tape 4 : fermez-le avant de terminer tout le programme.

Selenium Exemple de WebDriver Code

Vous trouverez ci-dessous le code WebDriver rรฉel pour la logique prรฉsentรฉe par le scรฉnario ci-dessus

package newproject;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
//comment the above line and uncomment below line to use Chrome
//import org.openqa.selenium.chrome.ChromeDriver;
public class PG1 {


    public static void main(String[] args) {
        // declaration and instantiation of objects/variables
    	System.setProperty("webdriver.gecko.">driver","C:\\geckodriver.exe");
		WebDriver driver = new FirefoxDriver();
		//comment the above 2 lines and uncomment below 2 lines to use Chrome
		//System.setProperty("webdriver.chrome.">driver","G:\\chromedriver.exe");
		//WebDriver driver = new ChromeDriver();
    	
        String baseUrl = "https://demo.guru99.com/test/newtours/";
        String expectedTitle = "Welcome: Mercury Tours";
        String actualTitle = "";

        // launch Fire fox and direct it to the Base URL
        driver.get(baseUrl);

        // get the actual value of the title
        actualTitle = driver.getTitle();

        /*
         * compare the actual title of the page with the expected one and print
         * the result as "Passed" or "Failed"
         */
        if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");
        }
       
        //close Fire fox
        driver.close();
    }

}

Remarque : Dรฉmarrage Firefox 35, vous devez utiliser le pilote gecko crรฉรฉ par Mozilla pour utiliser Web Driver. Selenium 3.0, gecko et firefox ont des problรจmes de compatibilitรฉ et les configurer correctement peut devenir une tรขche ardue. Si le code ne fonctionne pas, rรฉtrogradez vers Firefox version 47 ou infรฉrieure. Alternativement, vous pouvez exรฉcuter vos scripts sur Chrome. Selenium fonctionne immรฉdiatement pour Chrome. Il vous suffit de modifier 3 lignes de code pour que votre script fonctionne avec Chrome ou Firefox

Explication du code

Importation de packages

Pour commencer, vous devez importer les deux packages suivants :

  1. org.openqa.selenium.*โ€“ contient la classe WebDriver nรฉcessaire pour instancier un nouveau navigateur chargรฉ avec un pilote spรฉcifique
  2. org.openqa.selenium.firefox.FirefoxChauffeur โ€“ contient le FirefoxClasse de pilote nรฉcessaire pour instancier un Firefox-pilote spรฉcifique sur le navigateur instanciรฉ par la classe WebDriver

Si votre test nรฉcessite des actions plus compliquรฉes telles que l'accรจs ร  une autre classe, la prise de captures d'รฉcran du navigateur ou la manipulation de fichiers externes, vous devrez certainement importer davantage de packages.

Instanciation d'objets et de variables

Normalement, cโ€™est ainsi quโ€™un objet pilote est instanciรฉ.

WebDriver driver = new FirefoxDriver();

A FirefoxLa classe de pilote sans paramรจtres signifie que la valeur par dรฉfaut Firefox profil sera lancรฉ par notre Java programme. La valeur par dรฉfaut Firefox le profil est similaire au lancement Firefox en mode sans รฉchec (aucune extension n'est chargรฉe).

Par commoditรฉ, nous avons conservรฉ la base URL et le titre attendu comme variables.

Lancement d'une session de navigateur

WebDriver's get () Cette mรฉthode permet de lancer une nouvelle session de navigation et de la diriger vers le URL que vous spรฉcifiez comme paramรจtre.

driver.get(baseUrl);

Obtenez le titre rรฉel de la page

La classe WebDriver a le getTitle () mรฉthode qui est toujours utilisรฉe pour obtenir le titre de la page actuellement chargรฉe.

actualTitle = driver.getTitle();

Comparez les valeurs attendues et rรฉelles

Cette partie du code utilise simplement une base Java structure if-else pour comparer le titre rรฉel avec celui attendu.

if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");
        }

Terminer une session de navigateur

L'รฉvรฉnement Fermer()" La mรฉthode est utilisรฉe pour fermer la fenรชtre du navigateur.

driver.close();

Mettre fin ร  l'intรฉgralitรฉ du programme

Si vous utilisez cette commande sans fermer toutes les fenรชtres du navigateur au prรฉalable, l'ensemble de votre Java le programme se terminera en laissant la fenรชtre du navigateur ouverte.

System.exit(0);

Exรฉcution du test

Il existe deux maniรจres d'exรฉcuter du code dans Eclipse IDE

  1. On Eclipsedans la barre de menu de, cliquez sur Exรฉcuter > Exรฉcuter.
  2. Presse Ctrl + F11 pour exรฉcuter l'intรฉgralitรฉ du code.

Exรฉcution du test

Si vous avez tout fait correctement, Eclipse afficherait ยซ Test rรฉussi ! ยป

Exรฉcution du test

Localisation des รฉlรฉments de l'interface graphique

La localisation des รฉlรฉments dans WebDriver se fait en utilisant le ยซ findElement(Par.localisateur())" mรฉthode. La partie ยซ localisateur ยป du code est la mรชme que n'importe lequel des localisateurs รฉvoquรฉs prรฉcรฉdemment dans le Selenium IDE chapitres de ces tutoriels. En fait, il est recommandรฉ de localiser les รฉlรฉments de l'interface graphique ร  l'aide de l'IDE et, une fois identifiรฉs avec succรจs, d'exporter le code vers WebDriver.

Voici une Selenium Exemple de code permettant de localiser un รฉlรฉment par son identifiant. Facebook est utilisรฉ comme rรฉfรฉrence. URL.

package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class PG2 {
    public static void main(String[] args) {
    	System.setProperty("webdriver.gecko.">driver","C:\\geckodriver.exe");
    	WebDriver driver = new FirefoxDriver();
        String baseUrl = "http://www.facebook.com";
        String tagName = "";
        
        driver.get(baseUrl);
        tagName = driver.findElement(By.id("email")).getTagName();
        System.out.println(tagName);
        driver.close();
        System.exit(0);
}
}

Nous avons utilisรฉ le getTagName() mรฉthode pour extracle nom de la balise de cet รฉlรฉment particulier dont l'identifiant est ยซ email ยป. Lors de son exรฉcution, ce code devrait pouvoir identifier correctement le nom de la balise ยซ input ยป et l'afficher. EclipseLa fenรชtre de la console.

Localisation des รฉlรฉments de l'interface graphique

Rรฉsumรฉ pour localiser les รฉlรฉments

Variation Description ร‰chantillon
Par.className trouve des รฉlรฉments en fonction de la valeur de l'attribut ยซ class ยป findElement(By.className("someClassName"))
Par.cssSelector trouve des รฉlรฉments basรฉs sur le moteur de sรฉlection CSS sous-jacent du pilote findElement(Par.cssSelector(โ€œinput#emailโ€))
Par.id localise les รฉlรฉments par la valeur de leur attribut ยซ id ยป findElement(Par.id("someId"))
 
Par.linkText trouve un รฉlรฉment de lien par le texte exact qu'il affiche findElement(By.linkText(ยซ INSCRIPTION ยป))
 
De nom localise les รฉlรฉments par la valeur de l'attribut "name" findElement(Par.nom("unNom"))
 
Par.partialLinkText localise les รฉlรฉments qui contiennent le texte du lien donnรฉ findElement(By.partialLinkText("REG"))
 
Par.tagName localise les รฉlรฉments par leur nom de balise findElement(By.tagName("div"))
 
Par.xpath localise les รฉlรฉments via XPath findElement(By.xpath(โ€œ//html/body/div/table/tbody/tr/td[2]/table/
tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td[3]/ form/table/tbody/tr[5]โ€))

Remarque sur l'utilisation de findElement(By.cssSelector())

By.cssSelector() ne prend pas en charge la fonctionnalitรฉ ยซ contient ยป. Prendre en compte Selenium Code IDE ci-dessous โ€“

Remarque sur l'utilisation de findElement(By.cssSelector())

In Selenium IDE ci-dessus, l'intรฉgralitรฉ du test a rรฉussi. Cependant dans le Selenium Script WebDriver ci-dessous, le mรชme test a gรฉnรฉrรฉ une erreur car WebDriver ne prend pas en charge le mot-clรฉ ยซ contient ยป lorsqu'il est utilisรฉ dans la mรฉthode By.cssSelector().

Remarque sur l'utilisation de findElement(By.cssSelector())

Commandes communes

Instanciation d'รฉlรฉments Web

Au lieu d'utiliser la longue syntaxe ยซ driver.findElement(By.locator()) ยป ร  chaque fois que vous accรฉderez ร  un รฉlรฉment particulier, nous pouvons instancier un objet WebElement pour celui-ci. La classe WebElement est contenue dans le package ยซ org.openqa.selenium.* ยป.

Instanciation d'รฉlรฉments Web

Cliquer sur un รฉlรฉment

Le clic est peut-รชtre le moyen le plus courant dโ€™interagir avec les รฉlรฉments Web. Le click() La mรฉthode est utilisรฉe pour simuler le clic sur n'importe quel รฉlรฉment. La mรฉthode suivante Selenium Java un exemple montre comment click() a รฉtรฉ utilisรฉ pour cliquer sur Mercury Bouton ยซ Connexion ยป de Tours.

Cliquer sur un รฉlรฉment

Les รฉlรฉments suivants doivent รชtre notรฉs lors de lโ€™utilisation de la mรฉthode click().

  • Il ne prend aucun paramรจtre/argument.
  • La mรฉthode attend automatiquement le chargement dโ€™une nouvelle page, le cas รฉchรฉant.
  • L'รฉlรฉment sur lequel on clique doit รชtre visible (la hauteur et la largeur ne doivent pas รชtre รฉgales ร  zรฉro).

Obtenir des commandes

Les commandes Get rรฉcupรจrent diverses informations importantes sur la page/l'รฉlรฉment. Voici quelques commandes ยซ get ยป importantes que vous devez connaรฎtre.

Commandes Utilisation
get ()

Exemple d'utilisation:

  • Il ouvre automatiquement une nouvelle fenรชtre de navigateur et rรฉcupรจre la page que vous spรฉcifiez entre ses parenthรจses.
  • C'est la contrepartie de Selenium Commande ยซ ouvrir ยป de l'IDE.
  • Le paramรจtre doit รชtre un Chaรฎne objet.
getTitle ()

Exemple d'utilisation:

  • Ne nรฉcessite aucun paramรจtre
  • Rรฉcupรจre le titre de la page actuelle
  • Les espaces blancs de dรฉbut et de fin sont supprimรฉs
  • Renvoie une chaรฎne nulle si la page n'a pas de titre
getPageSource()

Exemple d'utilisation:

  • Ne nรฉcessite aucun paramรจtre
  • Renvoie le code source de la page sous forme de valeur String
getCurrentUrl()

Exemple d'utilisation:

  • Ne nรฉcessite aucun paramรจtre
  • Rรฉcupรจre la chaรฎne reprรฉsentant le courant URL que le navigateur examine
getText ()

Exemple d'utilisation:

  • Rรฉcupรจre le texte interne de l'รฉlรฉment que vous spรฉcifiez

Commandes de navigation

Ces commandes vous permettent d'actualiser, d'accรฉder et de basculer entre diffรฉrentes pages Web.

aller vers()

Exemple d'utilisation:

  • Il ouvre automatiquement une nouvelle fenรชtre de navigateur et rรฉcupรจre la page que vous spรฉcifiez entre ses parenthรจses.
  • Cela fait exactement la mรชme chose que le get() mรฉthode.
naviguer().refresh()

Exemple d'utilisation:

  • Ne nรฉcessite aucun paramรจtre.
  • Il actualise la page actuelle.
naviguer().retour()

Exemple d'utilisation:

  • Ne nรฉcessite aucun paramรจtre
  • Vous ramรจne d'une page sur l'historique du navigateur.
naviguer().forward()

Exemple d'utilisation:

  • Ne nรฉcessite aucun paramรจtre
  • Vous fait avancer d'une page dans l'historique du navigateur.

Fermer et quitter le navigateur Windows

Fermer()

Exemple d'utilisation:

  • Ne nรฉcessite aucun paramรจtre
  • Il ferme uniquement la fenรชtre du navigateur que WebDriver contrรดle actuellement.
quitter()

Exemple d'utilisation:

  • Ne nรฉcessite aucun paramรจtre
  • Il ferme toutes les fenรชtres ouvertes par WebDriver.

Fermer et quitter le navigateur Windows

Pour illustrer clairement la diffรฉrence entre close() et quit(), essayez d'exรฉcuter le code ci-dessous. Il utilise une page Web qui ouvre automatiquement une fenรชtre lors du chargement de la page et en ouvre une autre aprรจs la sortie.

Fermer et quitter le navigateur Windows

Notez que seule la fenรชtre du navigateur parent a รฉtรฉ fermรฉe et non les deux fenรชtres contextuelles.

Fermer et quitter le navigateur Windows

Mais si vous utilisez quit(), toutes les fenรชtres seront fermรฉes โ€“ pas seulement celle parent. Essayez d'exรฉcuter le code ci-dessous et vous remarquerez que les deux fenรชtres contextuelles ci-dessus seront รฉgalement automatiquement fermรฉes.

package newproject;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class PG3 {
    public static void main(String[] args) {
    	System.setProperty("webdriver.gecko.">driver","C:\\geckodriver.exe");
    	WebDriver driver = new FirefoxDriver();
        driver.get("http://www.popuptest.com/popuptest2.html");
        driver.quit();  // using QUIT all windows will close
    }
}

Basculer entre les images

Pour accรฉder aux รฉlรฉments de l'interface graphique dans un cadre, nous devons d'abord demander ร  WebDriver de se concentrer sur le cadre ou la fenรชtre contextuelle avant de pouvoir accรฉder aux รฉlรฉments qu'ils contiennent. Prenons par exemple la page Web https://demo.guru99.com/selenium/deprecated.html

Basculer entre les images

Cette page comporte 3 cadres dont les attributs ยซ nom ยป sont indiquรฉs ci-dessus. Nous souhaitons accรฉder au lien ยซ Obsolรจte ยป entourรฉ ci-dessus en jaune. Pour ce faire, nous devons d'abord demander ร  WebDriver de passer au frame ยซ classFrame ยป en utilisant le "switchTo().frame()" mรฉthode. Nous utiliserons l'attribut name du frame comme paramรจtre pour la partie ยซ frame() ยป.

package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class PG4 {
	  public static void main(String[] args) {
		  	System.setProperty("webdriver.gecko.">driver","C:\\geckodriver.exe");  
		  	WebDriver driver = new FirefoxDriver();
	        driver.get("https://demo.guru99.com/selenium/deprecated.html");
	        driver.switchTo().frame("classFrame");
	        driver.findElement(By.linkText("Deprecated")).click();
	        driver.close(); 
	    }
}

Aprรจs avoir exรฉcutรฉ ce code, vous verrez que le cadre ยซ classFrame ยป est redirigรฉ vers la page ยซ API obsolรจte ยป, ce qui signifie que notre code a pu accรฉder avec succรจs au lien ยซ Obsolรจte ยป.

Basculer entre les fenรชtres contextuelles Windows

WebDriver permet d'afficher des fenรชtres pop-up comme des alertes, contrairement ร  Selenium IDE. Pour accรฉder aux รฉlรฉments de l'alerte (comme le message qu'elle contient), il faut utiliser le "switchTo().alert()" mรฉthode. Dans le code ci-dessous, nous allons utiliser cette mรฉthode pour accรฉder ร  la boรฎte d'alerte puis rรฉcupรฉrer son message ร  l'aide du "getText()" mรฉthode, puis fermez automatiquement la boรฎte d'alerte ร  l'aide de la "switchTo().alert().accept()" mรฉthode.

Tout dโ€™abord, rendez-vous sur https://output.jsbin.com/usidix/1 et cliquez manuellement sur ยซ Go ! ยป bouton ici et voyez par vous-mรชme le texte du message.

Basculer entre les fenรชtres contextuelles Windows

Voyons le Selenium exemple de code pour faire cela-

package mypackage;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class myclass {

    public static void main(String[] args) {
    	System.setProperty("webdriver.gecko.">driver","C:\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        String alertMessage = "";

        driver.get("http://jsbin.com/usidix/1");
        driver.findElement(By.cssSelector("input[value=\"Go!\"]")).click();
        alertMessage = driver.switchTo().alert().getText();
        driver.switchTo().alert().accept();
       
        System.out.println(alertMessage);
        driver.quit();
       
    }
}

Sur le Eclipse console, notez que le message d'alerte imprimรฉ est :

Basculer entre les fenรชtres contextuelles Windows

Attend

Il existe deux types d'attente.

  1. Attente implicite โ€“ utilisรฉe pour dรฉfinir le temps d'attente par dรฉfaut tout au long du programme
  2. Attente explicite โ€“ utilisรฉ pour dรฉfinir le temps d'attente pour une instance particuliรจre uniquement

Attente implicite

  • C'est plus simple ร  coder que les attentes explicites.
  • Il est gรฉnรฉralement dรฉclarรฉ dans la partie instanciation du code.
  • Vous nโ€™aurez besoin que dโ€™un seul package supplรฉmentaire ร  importer.

Pour commencer ร  utiliser une attente implicite, vous devrez importer ce package dans votre code.

Attente implicite

Ensuite, dans la partie instanciation de votre code, ajoutez ceci.

Attente implicite

Attente explicite

Les attentes explicites sont effectuรฉes ร  l'aide des classes WebDriverWait et ExpectedCondition. Pour ce qui suit Selenium Par exemple WebDriver, nous attendrons jusqu'ร  10 secondes qu'un รฉlรฉment dont l'identifiant est ยซ username ยป devienne visible avant de passer ร  la commande suivante. Voici les รฉtapes.

ร‰tape 1 :

Importez ces deux packages :

Attente explicite

ร‰tape 2 :

Dรฉclarez une variable WebDriverWait. Dans cet exemple, nous utiliserons ยซ myWaitVar ยป comme nom de variable.

Attente explicite

ร‰tape 3 :

Utilisez myWaitVar avec ExpectedConditions sur les parties oรน vous avez besoin qu'une attente explicite se produise. Dans ce cas, nous utiliserons une attente explicite sur le ยซ nom dโ€™utilisateur ยป (Mercury Tours HomePage) avant de saisir le texte ยซ tutoriel ยป dessus.

Attente explicite

Conditions

Les mรฉthodes suivantes sont utilisรฉes dans les instructions conditionnelles et les instructions de lecture.ping opรฉrations โ€”

  • est autorisรฉ() est utilisรฉ lorsque vous souhaitez vรฉrifier si un certain รฉlรฉment est activรฉ ou non avant d'exรฉcuter une commande.

Les conditions sontEnabled()

  • est affichรฉ() est utilisรฉ lorsque vous souhaitez vรฉrifier si un certain รฉlรฉment est affichรฉ ou non avant d'exรฉcuter une commande.

Les conditions sont affichรฉes ()

  • est sรฉlectionnรฉ() est utilisรฉ lorsque vous souhaitez vรฉrifier si un certain case ร  cocher, bouton radio ou option dans une liste dรฉroulante est sรฉlectionnรฉ. Cela ne fonctionne pas sur les autres รฉlรฉments.

Les conditions sont sรฉlectionnรฉes ()

Utilisation des conditions attendues

La classe ExpectedConditions offre un ensemble plus large de conditions que vous pouvez utiliser conjointement avec la mรฉthode Until() de WebDriverWait.

Vous trouverez ci-dessous quelques-unes des mรฉthodes ExpectedConditions les plus courantes.

  • alertIsPresent() โ€“ attend qu'une boรฎte d'alerte s'affiche.

Utilisation des conditions attendues alertIsPresent()

  • elementToBeClickable() โ€“ Attend qu'un รฉlรฉment soit visible et en mรชme temps activรฉ. L'รฉchantillon Selenium Code Le code ci-dessous attendra que l'รฉlรฉment avec l'id="username" devienne visible et activรฉ avant de lui attribuer une variable WebElement nommรฉe "txtUserName".

Utilisation des conditions attendues

  • frameToBeAvailableAndSwitchToIt() โ€“ Attend que la trame donnรฉe soit dรฉjร  disponible, puis y bascule automatiquement.

Utilisation de l'รฉlรฉment ExpectedConditionsToBeClickable()

Attraper les exceptions

Lors de l'utilisation de isEnabled(), isDisplayed() et isSelected(), WebDriver suppose que l'รฉlรฉment existe dรฉjร  sur la page. Sinon, il lancera un NoSuchElementException. Pour รฉviter cela, nous devons utiliser un bloc try-catch afin que le programme ne soit pas interrompu.

WebElement txtbox_username = driver.findElement(By.id("username"));
try{
        if(txtbox_username.isEnabled()){
            txtbox_username.sendKeys("tutorial");
        }
    }

catch(NoSuchElementException nsee){
            System.out.println(nsee.toString());
 }

Si vous utilisez des attentes explicites, le type d'exception que vous devez intercepter est ยซ TimeoutException ยป.

Attraper les exceptions

FAQ

Installez JDK, un IDE tel que Eclipse ou IntelliJ, le Selenium Java bibliothรจques et le pilote de navigateur correspondant. Outils d'automatisation de la construction comme Maven ou Gradle Simplifier la gestion des dรฉpendances.

L'IA rรฉpare automatiquement les localisateurs, gรฉnรจre des cas de test ร  partir des rรฉcits utilisateurs et identifie les tests instables. Des plateformes comme TestimMabl et Applitools intรจgrent l'IA pour une crรฉation, une exรฉcution et une validation visuelle plus intelligentes.

Oui. GitHub Copilot, Cursor et JetBrains L'IA gรฉnรจre Java Selenium Les scripts, composรฉs d'รฉtapes en langage naturel, incluant les attentes, les assertions et les objets de page, rรฉduisent considรฉrablement le code rรฉpรฉtitif pour les nouveaux scรฉnarios de test.

La mรฉthode `findElement` renvoie le premier รฉlรฉment WebElement correspondant ou lรจve une exception `NoSuchElementException`. Elle renvoie une liste de tous les รฉlรฉments correspondants et une liste vide si aucun n'est trouvรฉ, sans jamais lever d'exception.

La mรฉthode Thread.sleep suspend l'exรฉcution pendant une durรฉe fixe, indรฉpendamment de l'รฉtat de la page, ce qui ralentit les traitements rapides et peut entraรฎner l'รฉchec des traitements lents. Utilisez WebDriverWait avec ExpectedConditions pour n'attendre que le temps nรฉcessaire.

Selenium prend en charge ChromeDriver et GeckoDriver pour Firefox, EdgeDriver, SafariDriver et IEDriverServer. Selenium Dans la version 4, le gestionnaire tรฉlรฉcharge automatiquement le pilote appropriรฉ.

Configurez les ChromeOptions ou FirefoxObjet Options avec setAcceptInsecureCerts(true). Ceci indique au navigateur d'ignorer les certificats invalides afin que la session WebDriver puisse se poursuivre.

WebDriverManager tรฉlรฉcharge et configure automatiquement le pilote de navigateur appropriรฉ ร  votre version de navigateur installรฉe, supprimant ainsi la maintenance manuelle des pilotes et rรฉduisant le temps d'installation pour les nouveaux contributeurs.

Rรฉsumez cet article avec :