implementation our first webdriver script selenium webdriver tutorial 10
Dans les deux tutoriels précédents, nous vous avons familiarisé avec l'architecture de base et fonctionnalités de WebDriver et le infrastructure requise pour démarrer avec Selenium WebDriver . En supposant que vous ayez tous configuré le système avec tous les utilitaires et packages nécessaires, nous irons plus loin avec l'implémentation de notre premier script de test WebDriver.
Par conséquent, aller de l'avant avec le conséquent Tutoriel Selenium WebDriver , nous créerions un script WebDriver. Nous disperserions également la lumière sur le basique et couramment utilisé Commandes WebDriver . Nous apprendrions également localisation des stratégies d'éléments d'interface utilisateur et leur inclusion dans les scripts de test. Nous étudierions également les commandes Get dans le détail.
Ce que vous apprendrez:
- Création de script
- Procédure pas à pas du code
- Exécution des tests
- Localisation des éléments Web
- Types de localisateurs et leur syntaxe
- Conclusion
- lecture recommandée
Création de script
Pour la création de scripts, nous utiliserions le projet «Learning_Selenium» créé dans le tutoriel précédent et «gmail.com» comme application sous test (AUT).
Scénario:
- Lancez le navigateur et ouvrez «Gmail.com».
- Vérifiez le titre de la page et imprimez le résultat de la vérification.
- Entrez le nom d'utilisateur et le mot de passe.
- Cliquez sur le bouton Connexion.
- Fermez le navigateur Web.
Étape 1: Créez une nouvelle classe Java nommée «Gmail_Login» sous le projet «Learning_Selenium».
Étape 2: Copiez et collez le code ci-dessous dans la classe 'Gmail_Login.java'.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String[] args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
Le code ci-dessus est équivalent au scénario textuel présenté précédemment.
Procédure pas à pas du code
Importer des déclarations:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Avant le script proprement dit, nous devons importer les packages ci-dessus:
importer org.openqa.selenium.WebDriver - Référence l'interface WebDriver requise pour instancier un nouveau navigateur Web.
importer org.openqa.selenium.firefox.FirefoxDriver - Fait référence à la classe FirefoxDriver requise pour instancier un pilote spécifique à Firefox sur l'instance de navigateur instanciée à l'aide de l'interface WebDriver.
importer org.openqa.selenium.WebElement - Références à la classe WebElement requise pour instancier un nouvel élément Web.
importer org.openqa.selenium.By - Références à la classe By sur laquelle un type de localisateur est appelé.
Au fur et à mesure de la croissance de notre projet, il est évident et logique que nous devrons peut-être introduire plusieurs autres packages pour des fonctionnalités plus complexes et distinctes telles que les manipulations Excel, la connectivité de base de données, la journalisation, les assertions, etc.
qu'est-ce que les tests d'automatisation dans les tests logiciels
Instanciation d'objet
Pilote WebDriver = nouveau FirefoxDriver ();
Nous créons une variable de référence pour l'interface WebDriver et l'instancions à l'aide de la classe FirefoxDriver. Un profil Firefox par défaut sera lancé, ce qui signifie qu'aucune extension et aucun plug-in ne seront chargés avec l'instance Firefox et qu'il s'exécute en mode sans échec.
Lancement du navigateur Web
driver.get (appUrl);
À obtenir() est appelée sur l'instance WebDriver pour lancer une nouvelle instance de navigateur Web. La séquence de caractères de chaîne passée en paramètre dans le obtenir() La méthode redirige l'instance de navigateur Web lancée vers l'URL de l'application.
Agrandir la fenêtre du navigateur
driver.manage (). window (). maximiser ();
La maximiser() est utilisée pour maximiser la fenêtre du navigateur peu de temps après sa redirection vers l'URL de l'application.
Récupérer le titre de la page
driver.getTitle ();
La getTitle () est utilisée pour récupérer le titre de la page Web actuelle. Ainsi, le titre récupéré peut être chargé dans une variable chaîne.
Comparaison entre les valeurs attendues et réelles:
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
Le code ci-dessus utilise les constructions java de l'instruction conditionnelle pour comparer la valeur réelle et la valeur attendue. Sur la base du résultat obtenu, l'instruction d'impression serait exécutée.
meilleur programme pour corriger les erreurs de registre
Instanciation WebElement
Nom d'utilisateur WebElement = driver.findElement (By.id («Email»));
Dans l'instruction ci-dessus, nous instancions la référence WebElement à l'aide de «Driver.findElement (By.id (« Email »))». Ainsi, le nom d'utilisateur peut être utilisé pour référencer la zone de texte Email sur l'interface utilisateur chaque fois que nous voulons effectuer une action dessus.
Effacer la commande
username.clear ();
La méthode / commande clear () est utilisée pour effacer la valeur présente dans la zone de texte le cas échéant. Il efface également la valeur d'espace réservé par défaut.
Commande sendKeys
username.sendKeys («TestSelenium»);
La sendKeys () méthode / commande est utilisée pour entrer / taper la valeur spécifiée (entre parenthèses) dans la zone de texte. Notez que le sendKeys () est appelée sur l'objet WebElement qui a été instancié à l'aide de la propriété element correspondant à l'élément UI.
Le bloc de code ci-dessus entre la chaîne «TestSelenium» dans la zone de texte Email de l'application Gmail.
sendKeys est l'une des commandes les plus couramment utilisées dans les scripts WebDriver.
Cliquez sur Commande
SignInButton.click ();
Comme sendKeys (), cliquez sur () est une autre commande trop utilisée pour interagir avec les éléments Web. Cliquez sur() La commande / méthode permet de cliquer sur l'élément Web présent sur la page Web.
Le bloc de code ci-dessus clique sur le bouton «Connexion» présent sur l'application Gmail.
Remarques:
- Contrairement à la méthode sendKeys (), les méthodes click () ne peuvent jamais être paramétrées.
- Parfois, cliquer sur un élément Web peut charger une nouvelle page complètement. Ainsi, pour soutenir de tels cas, la méthode click () est codée de manière à attendre que la page soit chargée.
Fermez le navigateur Web
c Programmation des questions et réponses d'entrevue
driver.close ();
La fermeture () est utilisée pour fermer la fenêtre actuelle du navigateur.
Terminer le programme Java
System.exit (0);
La méthode Exit () met fin au programme Java avec force. N'oubliez donc pas de fermer toutes les instances du navigateur avant de terminer le programme Java.
Exécution des tests
Le script de test ou simplement le programme java peuvent être exécutés des manières suivantes:
#1. Sous la barre de menus d’Eclipse, une icône permet d’exécuter le script de test. Reportez-vous à la figure suivante.
Notez que seule la classe sélectionnée sera exécutée.
#deux. Faites un clic droit n'importe où dans la classe dans l'éditeur, sélectionnez l'option «Exécuter en tant que» et cliquez sur «Application Java».
# 3. Un autre raccourci pour exécuter le script de test est - Appuyez sur ctrl + F11.
À la fin du cycle d'exécution, l'instruction d'impression «Script de test exécuté avec succès». se trouve dans la console.
Localisation des éléments Web
Les éléments Web dans WebDriver peuvent être localisés et inspectés de la même manière que nous l'avons fait dans les didacticiels précédents de Selenium IDE. Selenium IDE et Firebug peuvent être utilisés pour inspecter l'élément Web sur l'interface graphique. Il est fortement recommandé d'utiliser Selenium IDE pour trouver les éléments Web. Une fois l'élément Web trouvé, copiez et collez la valeur cible dans le code WebDriver. Les types de localisateurs et les stratégies de localisation sont à peu près les mêmes, sauf pour la syntaxe et leur application.
Dans WebDriver, les éléments Web sont localisés à l'aide des moteurs de recherche dynamiques (findElement (By.locatorType («locator value»))).
Exemple de code:
driver.findElement (By.id («Email»));
Types de localisateurs et leur syntaxe
Type de localisateur | Syntaxe | La description |
---|---|---|
cssSelector | driver.findElement (Par.cssSelector («Sélecteur CSS»)) | Localiser par valeur de le sélecteur CSS |
identifiant | driver.findElement (By.id ('ID_of_Element')) | Localiser par valeur de l'attribut 'id' |
nom du cours | driver.findElement (Par.className ('Class_of_Element')) | Localiser par valeur de l'attribut 'classe' |
linkText | driver.findElement (Par.linkText («Texte»)) | Localiser par valeur du texte de l'hyperlien |
partialLinkText | driver.findElement (Par.partialLinkText («PartialText»)) | Localiser par valeur du sous-texte de l'hyperlien |
Nom | driver.findElement (De nom ('Nom_de_élément')) | Localiser par valeur du Attribut 'nom' |
xpath | driver.findElement (Par.xpath («Xpath»)) | Localiser par valeur du xpath |
tagName | driver.findElement (By.tagName («input»)) | Localiser par valeur de son nom de balise |
Conclusion
Dans ce didacticiel, nous avons développé un script d'automatisation à l'aide de WebDriver et Java. Nous avons également discuté des différents composants qui constituent un script WebDriver.
Voici les points essentiels de ce didacticiel Selenium WebDriver:
- Avant le script proprement dit, nous devons importer quelques packages pour pouvoir créer un script WebDriver.
- importer openqa.selenium.By;
- importer openqa.selenium.WebDriver;
- importer openqa.selenium.WebElement;
- importer openqa.selenium.firefox.FirefoxDriver;
- À obtenir() méthode utilisée pour lancer une nouvelle instance de navigateur Web. La séquence de caractères passée en paramètre dans la méthode get () redirige l'instance de navigateur Web lancée vers l'URL de l'application.
- La maximiser() est utilisée pour agrandir la fenêtre du navigateur.
- La dégager() est utilisée pour effacer la valeur présente dans la zone de texte le cas échéant.
- La sendKeys () est utilisée pour entrer la valeur spécifiée dans la zone de texte.
- Cliquez sur() est utilisée pour cliquer sur l'élément Web présent sur la page Web.
- Dans WebDriver, les éléments Web peuvent être localisés à l'aide de Dynamic Finders.
- Voici les types de localisateurs disponibles:
- identifiant
- nom du cours
- Nom
- xpath
- cssSelector
- linkText
- partialLinkText
- tagName
À l'avenir, dans le prochain didacticiel, nous nous concentrerons sur un cadre facilitant les tests d'automatisation appelé TestNG. Nous aurions une étude détaillée sur les différents types d'annotations fournies par le framework.
Tutoriel suivant # 11 : Avant de plonger profondément dans Frameworks, nous verrons des détails sur JUnit - un outil de test unitaire open source. La plupart des programmeurs utilisent JUnit car il est facile et ne demande pas beaucoup d'efforts à tester. Ce didacticiel donnera un aperçu de JUnit et de son utilisation dans le script sélénium.
Une remarque pour les lecteurs: Alors que notre prochain didacticiel de la série Selenium est en mode de traitement, les lecteurs peuvent commencer à créer leurs propres scripts WebDriver de base. Pour des scripts et des concepts plus avancés, nous aurons divers autres didacticiels Selenium WebDriver à venir dans cette série.
Faites-nous savoir dans les commentaires si vous rencontrez un problème lors de la création ou de l'exécution des scripts WebDriver.
lecture recommandée
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Configuration et installation complètes de WebDriver avec Eclipse - Tutoriel Selenium # 9
- Vérifier la visibilité des éléments Web à l'aide de divers types Commandes WebDriver - Tutoriel Selenium # 14
- Script Selenium efficace et scénarios de dépannage - Tutoriel Selenium # 27
- Comment gérer les alertes / fenêtres contextuelles dans Selenium WebDriver - Tutoriel Selenium # 16
- Débogage de scripts Selenium avec des journaux (Tutoriel Log4j) - Tutoriel Selenium # 26
- Introduction à JUnit Framework et à son utilisation dans Selenium Script - Tutoriel Selenium # 11