Java >> Tutoriel Java >  >> Java

Comment passer de Selenium 3 à Selenium 4 ?

Selenium 4, la dernière version du framework Selenium, fait parler de lui depuis son annonce en 2018. L'engouement autour de Selenium 4 est évident car il regorge de nouvelles fonctionnalités et d'améliorations par rapport à son prédécesseur. Bien qu'il n'y ait pas d'annonce officielle sur la version "finale" de Selenium 4, les utilisateurs de Selenium et les passionnés d'automatisation des tests ont déjà commencé à explorer et à expérimenter en téléchargeant la version Alpha de Selenium 4.

Si vous envisagez de passer de Selenium 3 à Selenium 4, ce tutoriel Selenium 4 vous aidera à faire le saut de version ! Pour les personnes attendant d'essayer Selenium 4, la comparaison entre Selenium 3 et Selenium 4 pourrait vous inciter à essayer Selenium 4 beaucoup plus tôt que prévu☺.

Bien que Selenium ait différentes liaisons de langage telles que Java, C #, Python, JavaScript, Ruby et PHP, ce didacticiel Selenium 4 se concentrerait sur l'installation de liaisons Java.

TABLE DES MATIÈRES

  • Sélénium 3 contre Sélénium 4
    • Standardisation W3C de Selenium WebDriver
    • IDE Selenium 4
    • Grille de sélénium optimisée
    • Outils de développement Chrome
    • Localisateurs relatifs
  • Mise à niveau de Selenium 3 vers Selenium 4
    • Standardisation W3C de Selenium WebDriver
    • Selenium avec Maven – Mise à niveau de Selenium 3 vers Selenium 4
    • Selenium avec Gradle – Mise à niveau de Selenium 3 vers Selenium 4
    • Configuration du test :démonstration de la mise à niveau de Selenium 3 vers Selenium 4
  • Passez de Selenium 3 à Selenium 4 à l'aide de la grille Selenium basée sur le cloud

Sélénium 3 contre Sélénium 4

Vous vous demandez "Quelle est l'unicité de Selenium 4 par rapport à Selenium 3 ?" Eh bien, pour répondre à cette question, nous allons faire un rapide tour d'horizon de la nouveauté offerte par Selenium 4 dans cette section du tutoriel Selenium 3 vs Selenium 4 :

Standardisation W3C de Selenium WebDriver

Dans Selenium 3, le protocole JSON Wire était le principal mode de communication entre le code de test et le navigateur Web. Les principaux pilotes de navigateur comme ChromeDriver, GeckoDriver, etc., suivent la norme W3C. Cela a entraîné l'encodage et le décodage des requêtes selon le protocole W3C.

Sous le capot, Selenium 4 utilise le protocole WebDriver W3C. Cela élimine la surcharge d'encodage et de décodage qui était nécessaire avec le protocole JSON Wire dans Selenium 3. Ce changement architectural majeur se traduira par des tests inter-navigateurs moins floconneux et plus stables (c'est-à-dire des tests sur différentes versions et types de navigateurs) avec Selenium 4. Vous pouvez vous référer à notre couverture détaillée sur Selenium W3C WebDriver dans Selenium 4 pour obtenir plus d'informations.

Sélénium 4 IDE

L'IDE de Selenium 4 est bien plus qu'un outil rudimentaire de lecture et de test d'enregistrement. Avec Firefox, il est disponible pour le navigateur Chrome (en tant qu'extension Chrome).

L'outil SIDE Runner dans Selenium 4 IDE vous permet d'exécuter des tests Selenium en parallèle sur Selenium Grid local et Selenium Grid basé sur le cloud. La fonction "exporter" vous permet d'exporter les tests enregistrés dans les langages pris en charge par Selenium tels que Python, C #, Java, etc. Selenium 4 IDE est une offre renouvelée et super utile disponible uniquement dans Selenium 4.

Grille de sélénium optimisée

Si vous êtes un utilisateur de Selenium 3, vous devez être conscient de la difficulté de démarrer les pots Hub et Node chaque fois que vous souhaitez effectuer des tests d'automatisation sur la grille. L'exécution des tests distribués est sur le point de changer avec la grille Selenium optimisée dans Selenium 4.

Dans Selenium Grid 4, Hub et Node sont regroupés dans un seul fichier jar. Selenium Grid 4 dispose d'une infrastructure plus évolutive et traçable qui prend en charge quatre processus :routeur, carte de session, distributeur et nœud. L'interface graphique améliorée et la prise en charge intégrée de Docker sont quelques-uns des avantages supplémentaires que vous obtenez dans Selenium Grid 4.

Outils de développement Chrome

Dans Selenium 4, il existe une prise en charge native du protocole Chrome DevTools (CDP) via l'interface DevTools. Les API de l'interface Chrome DevTools faciliteraient grandement le diagnostic des problèmes et l'édition à la volée des pages.

La prise en charge native de CDP aidera à émuler plus facilement la géolocalisation et les conditions du réseau dans Selenium 4. Avec Selenium 4, vous pouvez tester le produit Web conçu pour un public mondial en émulant la géolocalisation dans le code. Dans le même temps, vous pouvez également vérifier les performances du produit dans différentes conditions de réseau (par exemple, 3G, 4G, etc.).

Localisateurs relatifs

Dans Selenium 3, vous devez utiliser une série de commandes findelement sur le WebElement approprié pour localiser ses éléments de voisinage. Il n'y avait pas de raccourci pour trouver un élément qui est au-dessus/en dessous/à droite de/etc. d'un WebElement particulier.

Les localisateurs relatifs (au-dessus, en dessous, toRightOf, toLeftOf et near) qui sont nouvellement introduits dans Selenium 4 Alpha aident à localiser les éléments Web par rapport à un élément particulier dans le DOM. Notre couverture détaillée des localisateurs relatifs dans Selenium 4 pourrait vous aider à démarrer avec cette fonctionnalité exclusivement disponible dans Selenium 4.

Outre ces grandes améliorations dans Selenium 4, il regorge d'autres nouvelles fonctionnalités :

  • TakeElementScreensho L'API vous permet de capturer une capture d'écran d'un élément Web particulier sur la page.
  • L'introduction de l'API newWindow aide à la création simplifiée d'une nouvelle fenêtre (WindowType.WINDOW ) ou Tabulation (WindowType.TAB ).
  • Processus de débogage optimisé et accéléré.

En ce qui concerne la comparaison entre Selenium 3 et Selenium 4, l'expérience globale avec Selenium 4 (Alpha) est bien supérieure à Selenium 3. C'est l'un des principaux facteurs de motivation pour télécharger Selenium 4 (Alpha) et mettre la main sur les fonctionnalités impressionnantes offertes par Selenium 4.

Mise à niveau de Selenium 3 vers Selenium 4

Au moment de la rédaction de cet article, Selenium 4.0.0-alpha-7 était la dernière version de Selenium 4 (Alpha) disponible en téléchargement sur le site Web de Selenium. Selenium 4 pour différentes liaisons linguistiques est illustré ci-dessous :

Lien de téléchargement de Selenium 4 (Alpha)

https://selenium-release.storage.googleapis.com/4.0-alpha-7/selenium-java-4.0.0-alpha-7.zip

https://pypi.org/project/selenium/4.0.0.a7/

https://www.nuget.org/api/v2/package/Selenium.WebDriver/4.0.0-alpha07

https://rubygems.org/gems/selenium-webdriver/versions/4.0.0.alpha7

Langue

Java

Python

C#

Rubis

Selenium avec Maven – Mise à niveau de Selenium 3 vers Selenium 4

Si vous utilisez Selenium avec Java, vous utiliserez probablement Selenium avec Maven pour gérer les dépendances associées à votre projet Selenium. Pour les utilisateurs de Selenium avec Maven, il suffit de changer la version de Selenium en 4 dans pom.xml pour passer de Selenium 3 à Selenium 4.

Le référentiel Maven Central est l'emplacement idéal pour rechercher des dépendances ou des bibliothèques pour toutes les versions. Comme indiqué ci-dessus, nous avons téléchargé la dépendance Maven pour Selenium 4 Java et ajouté la même chose dans pom.xml

Avec Selenium 4 Java, nous avons également ajouté les packages Selenium 4 pour selenium-chrome-driver et selenium-remote-driver dans le fichier POM (pom.xml).

Selenium avec Gradle – Mise à niveau de Selenium 3 vers Selenium 4

Gradle est un outil de construction populaire utilisé pour les applications basées sur Java. Les scripts de construction dans Gradle sont écrits en Groovy ou Kotlin DSL. Si vous utilisez Gradle pour votre projet Selenium Java, les dépendances nécessaires doivent être configurées dans le fichier build.gradle, qui est placé au niveau racine (du projet).

Les dépendances nécessaires à télécharger doivent être ajoutées dans build.gradle. Comme Maven, le Maven Central Repository doit être utilisé pour trouver les dépendances requises pour le projet.

Voici le fichier de construction (build.gradle) pour un projet Gradle où nous avons utilisé la version 4.0.0-alpha-7 de la liaison Selenium Java. Puisque nous utilisons le framework TestNG dans l'implémentation, nous avons ajouté les autres dépendances dans le build.gradle.

plugins {
    id 'java'
}
 
group 'org.demo'
version '1.0-SNAPSHOT'
 
sourceCompatibility = 1.8
 
repositories {
    mavenCentral()
}
 
dependencies {
   compile group: 'org.seleniumhq.selenium', name: 'selenium-java',
            version: '4.0.0-alpha-7'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver',
            version: '4.0.0-alpha-7'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-remote-driver',
            version: '4.0.0-alpha-7'            
    compile group: 'org.testng', name: 'testng',
            version: '6.14.3'
}
 
test {
    useTestNG()
}

Configuration du test - Démonstration de la mise à niveau de Selenium 3 vers Selenium 4

Pour montrer comment passer de Selenium 3 à Selenium 4, nous prenons un exemple de test multi-navigateurs où la recherche de "LambdaTest" est effectuée sur Google. Le test est effectué sur le navigateur Chrome.

Scénario de test

  1. Aller sur Google
  2. Rechercher LambdaTest
  3. Cliquez sur le premier résultat de recherche
  4. Vérifiez si le titre de la page ne correspond pas au titre de la page attendu

Mise en œuvre

Voici la structure globale du projet dans IntelliJ IDEA :

Télécharger Selenium 4 avec Maven

Dans un projet Maven, le fichier pom.xml contient les détails requis sur la configuration, les dépendances, etc. En plus de Selenium 4 Java, nous avons également ajouté les dépendances Selenium 4 Chrome Driver et Selenium 4 Remote Driver dans pom.xml.

Comme nous utilisons le framework TestNG, les détails des scénarios de test sont ajoutés dans testng.xml.

Configurer Gradle

Le même projet est utilisé pour démontrer la mise à niveau de Selenium 3 vers Selenium 4 à l'aide de Gradle. Les dépendances, les plugins et les scripts de construction doivent être disponibles dans le fichier build.gradle, qui est placé au niveau racine du projet.

Pour un récapitulatif rapide sur Gradle, vous pouvez vous référer à la couverture détaillée de Gradle (avec JUnit) dans notre blog précédent ici. Les dépendances de Selenium 4 Java, Selenium Chrome Driver (4.0.0-alpha-7), Selenium Remote Driver (4.0.0-alpha-7) et TestNG (6.14.3) sont ajoutées dans le build.gradle.

plugins {
    id 'java'
}
 
group 'org.demo'
version '1.0-SNAPSHOT'
 
sourceCompatibility = 1.8
 
repositories {
    mavenCentral()
}
 
dependencies {
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java',
            version: '4.0.0-alpha-7'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver',
            version: '4.0.0-alpha-7'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-remote-driver',
            version: '4.0.0-alpha-7'            
    compile group: 'org.testng', name: 'testng',
            version: '6.14.3'
}
 
test {
    useTestNG()
}

Exécution

Pour exécuter le scénario de test, faites un clic droit sur testng.xml et sélectionnez « run …\testng.xml ».

L'instantané d'exécution ci-dessous montre que Chrome WebDriver a été instancié et que le scénario de test a été exécuté avec succès.

Pour Gradle, nous utilisons l'option de ligne de commande (gradle test) pour déclencher le test dans le projet. Comme le scénario de test (test_search_demo) se trouve dans le fichier de classe DemoTest, nous exécutons le test à l'aide de la commande suivante (après avoir navigué vers le dossier racine du projet) :

gradle test --tests DemoTest.test_search_demo

Comme le montre l'instantané d'exécution, le test a été exécuté avec succès.

Mise à niveau de Selenium 3 vers Selenium 4 à l'aide de la grille Selenium basée sur le cloud

Les avantages offerts par Selenium 4 peuvent être mieux exploités sur une grille Selenium où les tests peuvent s'exécuter en parallèle sur les nœuds appropriés. La grille Selenium 4 fournit une multitude de nouvelles fonctionnalités qui facilitent et accélèrent les tests d'automatisation Web Selenium.

Une grille Selenium basée sur le cloud comme LambdaTest offre une évolutivité, une fiabilité et une sécurité indispensables, difficiles à atteindre avec une grille Selenium locale. Les tests Selenium sur le cloud permettent d'obtenir une meilleure couverture du navigateur, une meilleure couverture des tests et une meilleure couverture des tests, car un certain nombre de tests peuvent être exécutés en parallèle sur la grille Selenium basée sur le cloud.

Nous portons le test présenté précédemment afin qu'il s'exécute sur la grille Selenium 4 de LambdaTest. Pour commencer, nous générons les fonctionnalités souhaitées pour la liaison du langage Java à l'aide de LambdaTest Capabilities Generator.

Dans le cadre de la configuration, la méthode implémentée sous l'annotation @BeforeTest utilisera RemoteWebDriver au lieu du pilote Chrome local. Vous trouverez ci-dessous le DemoTest.java mis à jour où nous utilisons la grille de sélénium LambdaTest pour exécuter le test :

Les informations d'exécution sont disponibles dans le tableau de bord d'automatisation de LambdaTest. Comme on le voit ci-dessous, le test a été exécuté avec succès sur la LambdaTest Selenium Grid :

C'est tout les gens

Selenium 4 offre plusieurs nouvelles fonctionnalités telles que des localisateurs relatifs, Chrome DevTools, une grille Selenium améliorée, etc. pour les liaisons de langage Java. Si vous utilisez Maven pour le projet, la mise à niveau vers Selenium 4 consiste à récupérer Selenium 4 à partir du référentiel Maven et à l'ajouter dans pom.xml.

Outre Java, il est facile de passer à Selenium 4 pour les langages pris en charge par Selenium tels que Python, C #, PHP, Ruby et JavaScript. En ce qui concerne Selenium 3 contre Selenium 4, Selenium 4 (qui est encore au stade Alpha) a un énorme avantage sur son prédécesseur.

Si vous utilisez Selenium 4, avez-vous essayé Selenium avec Maven ? Partagez votre expérience dans la section des commentaires. Faites-nous également savoir quelle est votre "fonctionnalité incontournable" dans Selenium 4.

Bons tests d'automatisation☺

Foire aux questions

Quoi de neuf dans Selenium ?

L'un des changements les plus notables dans Selenium est l'adoption du protocole de pilote Web standard W3C, facilitant l'interaction entre les pilotes de navigateur et Selenium Web Driver. L'exportation de code est désormais disponible pour toutes les liaisons de langue officielle avec un meilleur mécanisme de flux de contrôle pour écrire de meilleurs tests en utilisant les conditions "while" et "if", et plus encore.

Quelle est la différence entre le sélénium 2 et le sélénium 3 ?

Selenium 2 est la combinaison de WebdDriver + SeleniumRC basé sur le noyau Selenium, tandis que Selenium 3 prend en charge Selenium RC indirectement via un Webdriver back-end sans noyau Selenium.

Quelle est la version actuelle de Selenium ?

La dernière version de Selenium est Selenium 4.0. 0 Alpha 5, sorti en mars 2020.

Balise Java