top 25 selenium webdriver commands that you should know
Principales commandes Selenium WebDriver - Un guide phénoménal pour les testeurs d'automatisation
Selenium WebDriver est l'un des outils d'automatisation de site Web open source les plus populaires. La plupart de mes collègues testeurs d'automatisation préfèrent la combinaison de WebDriver avec Java.
Dans ce didacticiel, je vais discuter de 25 commandes Selenium WebDriver couramment utilisées avec leur syntaxe concernée et des exemples simples pour votre compréhension facile.
Ce que vous apprendrez:
- Types de commandes dans WebDriver
- Top 7 des commandes Selenium avec des détails
- Liste des 25 commandes et exemples WebDriver les plus populaires
- # 1) obtenir ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) et cliquez sur ()
- # 4) isEnabled ()
- # 5) findElement (By, by) avec sendKeys ()
- # 6) findElement (By, by) avec getText ()
- # 7) Soumettre ()
- # 8) findElements (Par, par)
- # 9) findElements (By, by) avec size ()
- # 10) pageLoadTimeout (heure, unité)
- # 11) implicitementWait ()
- # 12) jusqu'à () et visibilitéOfElementLocated ()
- # 13) jusqu'à () et alertIsPresent ()
- # 14) getTitle ()
- # 15) Sélectionnez
- # 16) naviguer ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () et accept (), ignore () et sendKeys ()
- # 21) getWindowHandle () et getWindowHandles ()
- # 22) getConnection ()
- # 23) ALORS
- # 24) assertEquals (), assertNotEquals (), assertTrue () et assertFalse ()
- # 25) fermez () et quittez ()
- Conclusion
- lecture recommandée
Types de commandes dans WebDriver
Dans le dernier tutoriel Selenium , nous avons discuté du différents types d'alertes rencontrés lors du test des applications Web et de leurs méthodes de traitement efficaces. Nous avons longuement discuté des deux types d'alertes, c'est-à-dire «alertes basées sur le Web» et «alertes basées sur la fenêtre». Nous vous avons également familiarisé avec un autre utilitaire basé sur Java appelé «Robot Class» pour gérer les pop-up Windows.
Avancer dans cette série de didacticiels Selenium WebDriver , nous presserions diverses commandes Selenium WebDriver couramment et couramment utilisées . Nous discuterons précisément et brièvement de chacune de ces commandes Selenium afin de vous rendre capable d'utiliser ces commandes efficacement chaque fois que la situation se présente.
Chaque fichier de travail Java d'automatisation commence par la création d'une référence de navigateur Web que nous souhaitons utiliser comme indiqué dans la syntaxe ci-dessous.
Plusieurs méthodes sont disponibles à partir de l'interface Webdriver. Ces méthodes sont accessibles à l'aide de la variable d'instance chauffeur dans un format simple driver.methodName (); . Tous ces projets d'automatisation incluent l'appel de ces méthodes et la comparaison et l'évaluation de ce qu'elles retournent réellement.
En termes simples, nous pouvons généralement classer les commandes Webdriver comme:
- Commandes du navigateur,
- Obtenez des commandes,
- Commandes de navigation,
- Commandes Webelement,
- Commandes d'action et
- Commandes de résultat.
Dans le contexte du test manuel, le résultat d'un test, soit PASS ou FAIL, est décidé à partir des commandes Result qui comparent généralement les résultats attendus et réels et le reste sont des étapes de Testcase.
Top 7 des commandes Selenium avec des détails
Juste pour avoir une idée approximative, nous discuterions des commandes Selenium WebDriver suivantes et de leurs différentes versions:
- obtenir() méthodes
- Localisation des liens par linkText () et partialLinkText ()
- Sélection de plusieurs éléments dans une liste déroulante
- Soumettre un formulaire
- Gestion des iframes
- Fermer() et quitter() méthodes
- Gestion des exceptions
# 1) Méthodes get ()
Commande WebDriver | Usage |
---|---|
getAttribute () | • La commande est utilisée pour récupérer la valeur de l’attribut spécifié • La commande nécessite un paramètre de chaîne unique qui fait référence à un attribut dont nous aspirons à connaître la valeur et renvoie une valeur de chaîne en conséquence. driver.findElement (By.id ('findID')). getAttribute ('valeur'); |
obtenir() | • La commande lance un nouveau navigateur et ouvre l'URL spécifiée dans l'instance de navigateur • La commande prend un paramètre de type chaîne unique qui est généralement une URL de l'application testée • Pour les utilisateurs de Selenium IDE, la commande peut ressembler beaucoup à une commande ouverte driver.get ('https://google.com'); |
getClass () | La commande est utilisée pour récupérer l'objet Class qui représente la classe d'exécution de cet objet driver.getClass (); |
getCurrentUrl () | • La commande est utilisée pour récupérer l'URL de la page Web à laquelle l'utilisateur accède actuellement • La commande ne nécessite aucun paramètre et renvoie une valeur de chaîne driver.getCurrentUrl (); |
getPageSource () | • La commande est utilisée pour récupérer la source de la page de la page Web à laquelle l'utilisateur accède actuellement • La commande ne nécessite aucun paramètre et renvoie une valeur de chaîne • La commande peut être utilisée avec diverses opérations de chaîne comme contains () pour vérifier le présence de la valeur de chaîne spécifiée résultat booléen = driver.getPageSource (). contains ('String to find'); |
getTitle () | • La commande est utilisée pour récupérer le titre de la page Web sur laquelle l'utilisateur travaille actuellement. Une chaîne nulle est renvoyée si la page Web n'a pas de titre • La commande ne nécessite aucun paramètre et renvoie une valeur de chaîne tronquée Titre de la chaîne = driver.getTitle (); |
getText () | • La commande est utilisée pour récupérer le texte intérieur de l'élément Web spécifié • La commande ne nécessite aucun paramètre et renvoie une valeur de chaîne • C'est également l'une des commandes largement utilisées pour la vérification des messages, étiquettes, erreurs, etc. affichés sur les pages Web. String Text = driver.findElement (By.id ('Text')). GetText (); |
getWindowHandle () | • La commande est utilisée pour aborder la situation lorsque nous avons plus d'une fenêtre à traiter. • La commande nous aide à passer à la fenêtre nouvellement ouverte et effectue des actions sur la nouvelle fenêtre. L'utilisateur peut également revenir à la fenêtre précédente s'il le souhaite. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
getWindowHandles () | • La commande est similaire à celle de «getWindowHandle ()» avec la différence subtile qu'elle permet de gérer plusieurs fenêtres, c'est-à-dire lorsque nous devons traiter plus de 2 fenêtres. |
L'extrait de code pour «getWindowHandles ()» est donné ci-dessous:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Recherche de liens par linkText () et partialLinkText ()
Accédez à 'google.com' et 'abodeqa.com' en utilisant linkText () et partialLinText () méthodes de WebDriver.
Les liens mentionnés ci-dessus sont accessibles à l'aide des commandes suivantes:
chauffeur .findElement (Par.linkText ( 'Google' )).Cliquez sur();
chauffeur .findElement (Par.linkText ( AbodeQA )).Cliquez sur();
La commande trouve l'élément en utilisant le texte du lien, puis cliquez sur cet élément et ainsi l'utilisateur serait redirigé vers la page correspondante.
Les liens mentionnés ci-dessus sont également accessibles à l'aide des commandes suivantes:
chauffeur .findElement (Par.partialLinkText ( 'Aller' )).Cliquez sur();
chauffeur .findElement (Par.partialLinkText ( 'demeure' )).Cliquez sur();
Les deux commandes ci-dessus trouvent les éléments en fonction de la sous-chaîne du lien fournie entre parenthèses et ainsi partialLinkText () trouve l'élément Web avec la sous-chaîne spécifiée, puis clique dessus.
# 3) Sélection de plusieurs éléments dans une liste déroulante
Il existe principalement deux types de listes déroulantes:
- Liste déroulante de sélection unique : Une liste déroulante qui permet de sélectionner une seule valeur à la fois.
- Liste déroulante à sélection multiple : Une liste déroulante qui permet de sélectionner plusieurs valeurs à la fois.
Considérez le code HTML ci-dessous pour une liste déroulante qui peut sélectionner plusieurs valeurs en même temps.
Red Green Yellow Grey
L'extrait de code ci-dessous illustre les multiples sélections dans une liste déroulante.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Soumettre un formulaire
La plupart ou presque tous les sites Web ont des formulaires qui doivent être remplis et soumis lors du test d'une application Web. L'utilisateur peut rencontrer plusieurs types de formulaires tels que le formulaire de connexion, le formulaire d'inscription, le formulaire de téléchargement de fichier, le formulaire de création de profil, etc.
Dans WebDriver, un utilisateur est exploité avec une méthode spécialement créée pour soumettre un formulaire. L'utilisateur peut également utiliser la méthode du clic pour cliquer sur le bouton Soumettre comme substitut au bouton Soumettre.
Consultez l'extrait de code ci-dessous par rapport au formulaire 'nouvel utilisateur' ci-dessus:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
Ainsi, dès que le contrôle du programme trouve la méthode de soumission, il localise l'élément et déclenche le nous faire parvenir() méthode sur l'élément Web trouvé.
# 5) Gestion des iframes
Lors de l'automatisation des applications Web, il peut arriver que nous devions gérer plusieurs cadres dans une fenêtre. Ainsi, le développeur du script de test est obligé de basculer entre les différentes images ou iframes pour cette question.
Un acronyme de cadre en ligne comme iframe est utilisé pour insérer un autre document dans le document HTML actuel ou simplement une page Web dans une autre page Web en activant l'imbrication.
Considérez le code HTML suivant ayant l'iframe dans la page Web:
Software Testing Help - iframe session
Le code HTML ci-dessus illustre la présence d'un iframe intégré dans un autre iframe. Ainsi, pour pouvoir accéder à l'iframe enfant, un utilisateur doit d'abord accéder à l'iframe parent. Après avoir effectué l'opération requise, un utilisateur peut être obligé de revenir à l'iframe parent pour traiter l'autre élément de la page Web.
Il est impossible si un utilisateur essaie d'accéder directement à l'iframe enfant sans d'abord passer par l'iframe parent.
Sélectionnez iframe par identifiant
chauffeur .switchTo (). frame ( ' ID du cadre ' );
Localisation de l'iframe à l'aide de tagName
Lors de la localisation d'une iframe, l'utilisateur peut rencontrer des problèmes si l'iframe n'est pas attribuée avec des propriétés standard. Cela devient un processus complexe pour localiser le cadre et y basculer. Pour atténuer la situation, un utilisateur est mis à profit pour localiser une iframe à l'aide d'une méthode tagName similaire à la façon dont nous trouvons tout autre élément Web dans WebDriver.
driver.switchTo (). frame (driver.findElements (By.tagName (“iframe”). get (0));
La commande ci-dessus localise le premier élément Web avec le tagName spécifié et bascule sur cette iframe. 'Get (0) est utilisé pour localiser l'iframe avec la valeur d'index.' Ainsi, en ligne avec notre code HTML, la syntaxe du code ci-dessus conduirait le contrôle du programme à basculer vers «ParentFrame».
Localisation de l'iframe à l'aide de l'index:
a) cadre (index)
driver.switchTo (). frame (0);
b) cadre (nom du cadre)
driver.switchTo (). frame («nom du cadre»);
c) frame (élément WebElement)
Sélectionnez la fenêtre parent
driver.switchTo (). defaultContent ();
La commande ci-dessus ramène l'utilisateur à la fenêtre d'origine, c'est-à-dire hors des deux iframes.
# 6) Méthodes close () et quit ()
Il existe deux types de commandes dans WebDriver pour fermer l'instance de navigateur Web.
a) fermer () : La méthode close () de WebDriver ferme la fenêtre du navigateur Web sur laquelle l'utilisateur travaille actuellement ou nous pouvons également dire la fenêtre à laquelle le WebDriver accède actuellement. La commande ne nécessite aucun paramètre et ne renvoie aucune valeur.
b) quitter () : Contrairement à la méthode close (), la méthode quit () ferme toutes les fenêtres ouvertes par le programme. Identique à la méthode close (), la commande ne nécessite aucun paramètre et ne renvoie aucune valeur.
Reportez-vous aux extraits de code ci-dessous:
chauffeur .Fermer(); // ferme une seule fenêtre à laquelle accède actuellement l'instance WebDriver
chauffeur .quitter(); // ferme toutes les fenêtres ouvertes par l'instance WebDriver
# 7) Gestion des exceptions
Les exceptions sont les conditions ou situations qui interrompent l'exécution du programme de manière inattendue.
Les raisons de ces conditions peuvent être:
- Erreurs introduites par l'utilisateur
- Erreurs générées par le programmeur
- Erreurs générées par les ressources physiques
Ainsi, pour faire face à ces conditions inattendues, la gestion des exceptions a été conceptualisée.
En ce qui concerne le code Java que nous implémentons lors de l'automatisation d'une application Web, il peut être inclus dans un bloc capable de fournir un mécanisme de gestion contre les conditions erronées.
Attraper une exception
Pour attraper une exception, nous utilisons le bloc de code ci-dessous
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Si une exception se produit dans le bloc try / bloc protégé, les contrôles d'exécution recherchent un bloc catch pour le type d'exception correspondant et lui transmet l'exception sans interrompre l'exécution du programme.
Blocs de capture multiples
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
Dans le code ci-dessus, une exception est susceptible d'être interceptée dans le premier bloc catch si le type d'exception correspond. Si le type d'exception ne correspond pas, alors l'exception est traversée vers le deuxième bloc catch et le troisième bloc catch et ainsi de suite jusqu'à ce que tous les blocs catch soient visités.
Conditions de WebDriver et gestion des exceptions
Lorsque nous aspirons à vérifier la présence de tout élément sur la page Web à l'aide de diverses commandes conditionnelles de WebDriver, WebDriver suppose que l'élément Web est présent sur la page Web. Si l'élément Web n'est pas présent sur la page Web, les commandes conditionnelles lancent une «NoSuchElementPresentException». Ainsi, pour éviter que de telles exceptions interrompent l'exécution du programme, nous utilisons des mécanismes de gestion des exceptions. Reportez-vous à l'extrait de code ci-dessous:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Liste des 25 commandes et exemples WebDriver les plus populaires
Vous trouverez ci-dessous la liste des 25 commandes Webdriver les plus couramment utilisées que chaque testeur d'automatisation doit connaître.
Passons en revue ces commandes une par une en détail.
Lectures complémentaires => Tutoriel Selenium WebDriver
# 1) obtenir ()
Commande utilisant get () pour ouvrir une URL dans le navigateur actuel.
La commande ci-dessous ouvrira l'URL spécifiée, 'https://www.softwaretestinghelp.com' dans le navigateur.
Syntaxe:
driver.get('https://www.softwaretestinghelp.com');
Explication:
- Accédez à l'URL https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Commande utilisant getCurrentUrl () pour vérifier si l'URL est correcte.
La commande ci-dessous obtient l'URL actuelle au format chaîne.
Syntaxe:
modèle de document de stratégie de test pour la méthodologie agile
driver.getCurrentUrl();
Nous utilisons généralement cette méthode dans les commandes pour vérifier si nous avons navigué vers la bonne page comme prévu. Pour cela, nous devons utiliser Assert comme indiqué ci-dessous Exemple .
Syntaxe:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Où expectUrl est l'URL attendue au format chaîne.
Explication:
- Vérifiez et vérifiez que l'URL chargée reste la même et que la bonne page est chargée.
# 3) findElement (By, by) et cliquez sur ()
findElement (By, by) et cliquez sur () pour cliquer sur n'importe quel élément de la page Web.
La méthode findElement (By, by) recherche et localise le premier élément de la page courante, qui correspond aux critères donnés en paramètre. Cette méthode est généralement utilisée dans les commandes pour simuler des actions utilisateur telles que cliquer, soumettre, taper, etc.
La commande ci-dessous recherche et localise le premier élément de la page Web avec l'identifiant «submit1» et clique dessus s'il n'est pas couvert.
Syntaxe:
driver.findElement(By.id('submit1')).click();
L'élément peut être localisé en utilisant ID , Nom , Classer Nom , Nom de la balise , Texte du lien et Texte de lien partiel , Sélecteur CSS et Chemin X .
Explication:
- Recherchez le bouton Soumettre requis.
- Cliquez sur le bouton.
La commande ci-dessous sélectionne un élément dans la zone de liste.
Syntaxe:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Explication:
- Recherchez et localisez l'élément de la liste par identifiant «nom1».
- Cliquez sur cet élément.
# 4) isEnabled ()
isEnabled () pour vérifier si l'élément est activé ou désactivé dans Selenium WebDriver.
Afin de vérifier si un élément particulier est activé dans une page Web, nous utilisons la méthode isEnabled ().
Syntaxe:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Explication:
- Recherche l'élément dans la page Web en fonction de l'Xpath et vérifie si l'élément est activé.
# 5) findElement (By, by) avec sendKeys ()
findElement (By, by) avec sendKeys () pour saisir les champs du formulaire.
Contrôles de validation de formulaire en saisissant les différentes entrées utilisateur souvent requises dans les tests d'automatisation. Nous utilisons findElement (By, by) pour localiser les champs et sendKeys () pour saisir du contenu dans un champ modifiable.
La commande ci-dessous utilise le localisateur de nom pour trouver le champ de formulaire et y tape «Aaron».
Syntaxe:
driver.findElement(By.name('name')).sendkeys('Aaron');
Explication:
- Recherchez le champ de nom requis dans le formulaire.
- Entrez la valeur «Aaron» dedans.
# 6) findElement (By, by) avec getText ()
findElement (By, by) avec getText () pour stocker la valeur de l'élément Web ciblé.
GetText () est une méthode qui vous permet d'obtenir le texte interne de l'élément Web. Obtenir du texte est le texte à l'intérieur des balises HTML.
Le code ci-dessous trouve l'élément avec tagName «select» et récupère le texte à l'intérieur de la balise et le stocke dans une liste déroulante de variables. Maintenant, la chaîne dropDown peut être utilisée pour d'autres actions à l'intérieur du programme.
Syntaxe:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Explication:
- Recherchez le champ obligatoire dans le formulaire qui a le tagName «dropdown1».
- Prenez le texte dans sa balise HTML.
- Stockez le texte dans l’objet String ‘DropDown’.
# 7) Soumettre ()
Soumettez () pour soumettre un formulaire Web.
La méthode click () dont nous avons parlé ci-dessus peut être utilisée pour cliquer sur n'importe quel lien ou bouton. Soumettre () est une meilleure alternative à cliquer () si l'élément à cliquer est un bouton d'envoi. Le bouton d'envoi se trouve à l'intérieur de la balise HTML «formulaire» et le type de bouton est «soumettre» (et non «bouton»).
Le submit () facilite la vie en trouvant automatiquement le bouton et la méthode qui peuvent être ajoutés à n'importe quel autre champ comme le nom ou l'adresse e-mail. Dans le cas d'un clic, nous devons utiliser la méthode findElement (By, by) et spécifier les localisateurs corrects.
Dans certains scénarios où l'action est effectuée via des éléments autres qu'un bouton, soumettre () fonctionne et cliquez sur () ne le fera pas.
Syntaxe:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Explication:
- Trouvez l'élément dans le chemin x donné avec le nom «commentaires».
- Soumettez le formulaire.
# 8) findElements (Par, par)
findElements (By, by) pour obtenir la liste des éléments Web.
Parfois, nous souhaitons imprimer ou effectuer une action sur une liste d'éléments Web tels que des liens ou des champs de saisie dans une page Web. Dans un tel cas, nous utilisons findElements (By, by).
Syntaxe:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Explication:
- Une liste de tous les éléments Web avec xpath spécifié est stockée dans la liste des éléments Web allChoices.
# 9) findElements (By, by) avec size ()
findElements (By, by) avec size () pour vérifier si un élément est présent.
findElements (By, by) peut être utilisé pour vérifier si un élément est réellement présent dans la page Web.
La commande ci-dessous est utilisée si nous voulons vérifier qu'un élément avec un localisateur particulier est présent dans une page Web. Si size ()! = 0 alors l'élément est présent.
Syntaxe:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Explication:
- L'élément Find est spécifié dans xpath avec l'ID «checkbox2».
- Selon la taille de la liste d'éléments, la valeur booléenne checkIfElementPresent sera définie sur TRUE ou FALSE.
# 10) pageLoadTimeout (heure, unité)
pageLoadTimeout (heure, unité) pour définir l'heure de chargement d'une page.
Parfois, en raison de problèmes de serveur ou de retards de réseau, le chargement d'une page peut prendre plus de temps que d'habitude. Cela peut générer une erreur dans le programme. Afin d'éviter cela, nous définissons un temps d'attente et pageLoadTimeout () est l'une de ces méthodes. Cela suivra généralement une commande get ().
Syntaxe:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Explication:
- Attendez 500 secondes pour qu'une page se charge.
# 11) implicitementWait ()
implicitlyWait () pour définir un temps d'attente avant de rechercher et de localiser un élément Web.
Que se passe-t-il si le Webdriver tente de localiser un élément avant le chargement de la page Web et l'apparition de l'élément? NoSuchElementExeption sera levée. Afin d'éviter cela, nous pouvons ajouter une commande pour attendre implicitement un certain temps avant de localiser l'élément.
Syntaxe:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Explication:
- Attendez implicitement 1000 secondes avant d'exécuter la ligne suivante du code.
# 12) jusqu'à () et visibilitéOfElementLocated ()
untill () de WebdriverWait et visibilitéOfElementLocated () de ExpectedConditions pour attendre explicitement jusqu'à ce qu'un élément soit visible dans la page Web.
Gérer les cas où un élément prend trop de temps pour être visible sur la page Web du logiciel en appliquant une attente implicite devient délicat. Dans ce cas, nous pouvons écrire un commentaire pour attendre que l'élément apparaisse sur la page Web. Cette commande utilise une combinaison de la méthode until () de la classe WebdriverWait et de la méthode visibilitéOfElementLocated () de la classe ExpectedConditions.
Syntaxe:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Explication:
- La première ligne indique le temps d'attente, soit 10 secondes.
- La deuxième condition indique une condition attendue à attendre. Ici, il s'agit d'un élément avec id’name ’dans le xpath mentionné.
# 13) jusqu'à () et alertIsPresent ()
untill () de WebdriverWait et alertIsPresent () de ExpectedConditions pour attendre explicitement jusqu'à ce qu'une alerte apparaisse.
Dans certains scénarios, nous devons attendre les alertes pour continuer le test. Dans ce cas, nous utilisons une commande utilisant la méthode until () de la classe WebdriverWait et la méthode alertIsPresent () de la classe ExpectedConditions.
Veuillez voir la commande ci-dessous:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Explication:
- La première ligne indique le temps d'attente - c'est-à-dire 10 secondes.
- La deuxième condition indique une condition attendue à attendre. Ici, c'est une alerte pop-up.
# 14) getTitle ()
getTitle () pour obtenir le titre de la page dans le webdriver Selenium.
Syntaxe:
String title = driver.getTitle(); System.out.println(title);
Ceci est généralement utilisé pour imprimer le titre dans les journaux de sortie.
Explication:
- Obtenez le titre de la page Web et stockez-le dans le titre de l'objet String.
- Imprimez la valeur stockée dans le titre dans les journaux de sortie.
# 15) Sélectionnez
Sélectionnez la classe pour sélectionner et désélectionner des valeurs dans la liste déroulante de Selenium WebDriver.
Nous avons souvent des scénarios liés à la liste déroulante. Les méthodes de la classe Select sont utilisées pour gérer cela. Nous pouvons utiliser selectByVisibleText (), selectByValue () ou selectByIndex () selon le scénario.
Syntaxe:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Explication:
- Recherchez le menu déroulant en utilisant son identifiant 'select'.
- Sélectionnez le texte visible «Apple» dans la liste déroulante.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Explication:
- Recherchez le menu déroulant en utilisant son identifiant 'select'.
- Sélectionnez le texte avec la valeur «Apple» dans la liste déroulante.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Explication:
- Recherchez le menu déroulant en utilisant son identifiant 'select'.
- Sélectionnez l'élément de liste déroulante avec la valeur d'index «1» dans la liste déroulante (deuxième élément).
Semblable à la sélection, nous pouvons désélectionner les valeurs de la liste déroulante à l'aide de commandes similaires.
Veuillez vérifier les commandes:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Explication:
- Recherchez le menu déroulant en utilisant son identifiant 'select'.
- Désélectionnez le texte visible «Apple» dans la liste déroulante.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Explication:
- Recherchez le menu déroulant en utilisant son identifiant 'select'.
- Désélectionnez le texte avec la valeur «Apple» dans la liste déroulante.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Explication:
- Recherchez le menu déroulant en utilisant son identifiant 'select'.
- Désélectionnez l’élément de liste déroulante avec la valeur d’index «1» dans la liste déroulante (deuxième élément).
naviguez () pour naviguer entre les URL.
Nous voyons souvent des scénarios dans lesquels nous pourrions vouloir naviguer à partir de l'URL de destination, puis revenir en arrière ou en avant. Dans de tels cas, au lieu d'utiliser get (), nous pouvons utiliser naviguer (). Dans Navigate, nous pouvons utiliser les méthodes back () et forward () sans spécifier les URL.
Syntaxe:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Explication:
- Accédez à https://www.softwaretestinghelp.com
- Revenez en arrière.
- Naviguez vers l'avant.
# 17) getScreenshotAs ()
getScreenshotAs () pour capturer la capture d'écran de la page entière dans Selenium WebDriver.
Celui-ci est souvent nécessaire pour enregistrer les détails de votre travail ou parfois pour vérifier manuellement les sorties. La commande ci-dessous est utilisée pour prendre une capture d'écran et l'enregistrer dans un fichier de sortie.
Syntaxe:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Explication:
- Prenez une capture d'écran et enregistrez le fichier dans la capture d'objet.
- Enregistrez le fichier sur le lecteur D sous le nom shot1.png.
# 18) moveToElement ()
moveToElement () de la classe Actions pour simuler l'effet de survol de la souris.
Il existe des scénarios où nous devons survoler des éléments Web comme sur le menu pour voir le sous-menu, des liens pour voir les changements de couleur, etc. Dans ces cas, nous utilisons la classe Actions. Jetez un œil à la syntaxe ci-dessous pour la classe Action.
Syntaxe:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Explication
- Recherchez et localisez l'élément Web avec l'ID div 'mainmenu1'.
- Déplacez le pointeur de la souris sur l'élément.
# 19) dragAndDrop ()
dragAndDrop () de la classe Actions pour faire glisser un élément et le déposer sur un autre élément.
Dans certains scénarios, nous pouvons souhaiter faire glisser des éléments. Par exemple, faites glisser une image sur la scène. Dans ce cas, nous pouvons utiliser la classe Actions.
Dans la méthode dragAndDrop, nous transmettons les deux paramètres, Source locator - l'élément que nous voulons faire glisser et Destination locator - l'élément vers lequel nous voulons déposer.
Syntaxe:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Explication:
- Recherchez et localisez l'élément Web source.
- Recherchez et localisez l'élément Web de destination.
- Faites glisser et déposez l'élément source sur l'élément de destination.
# 20) switchTo () et accept (), ignore () et sendKeys ()
switchTo () et accept (), ignore () et sendKeys () de la classe Alert pour passer aux alertes contextuelles et les gérer.
Pour basculer vers les alertes, les popups et les gérer, nous utilisons une combinaison de basculer vers() et accepter (), rejeter () méthodes de la classe Alert.
Syntaxe:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Explication:
- Basculez vers la fenêtre d'alerte.
- Tapez «This Is Softwaretestinghelp» dans l'alerte.
- Acceptez l'alerte et fermez-la.
alert.dismiss () peut être utilisé pour rejeter l'alerte.
# 21) getWindowHandle () et getWindowHandles ()
getWindowHandle () et getWindowHandles () pour gérer plusieurs fenêtres dans Selenium WebDriver.
téléchargeurs vidéo gratuits pour Windows 10
Il existe de nombreux cas où les applications Web comportent de nombreux cadres ou fenêtres.
Ce sont principalement des publicités ou des fenêtres contextuelles d'informations. Nous pouvons gérer plusieurs fenêtres à l'aide de Windows Handlers. Webdriver stocke un identifiant de fenêtre unique pour chaque fenêtre. Nous utilisons cet identifiant pour les gérer.
Syntaxe:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Les commandes ci-dessus sont utilisées pour obtenir respectivement les identifiants de la fenêtre courante et de toutes les fenêtres. Veuillez consulter la boucle ci-dessous pour voir comment pouvons-nous accéder à chaque fenêtre via la boucle for.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Explication:
- Pour chaque identifiant de handle de fenêtre de driver.getWindowHandles (), passez à cet identifiant de fenêtre.
# 22) getConnection ()
getConnection () depuis DriverManager pour démarrer la connexion à la base de données.
Pour démarrer une connexion à la base de données, nous utilisons getConnection de la classe DriverManager.
Syntaxe:
DriverManager.getConnection(URL, 'username', 'password' )
Explication:
- Connectez-vous à la base de données via l'URL et les informations d'identification.
# 23) ALORS
POI à lire à partir des fichiers Excel.
Dans les tests pilotés par les données, nous enregistrons souvent les entrées dans un fichier Excel et le lisons. Pour ce faire dans WebDriver, nous importons le package POI puis utilisons la commande ci-dessous.
Syntaxe:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Explication:
- Créez un fichier de lecture.
- Lisez le fichier.
# 24) assertEquals (), assertNotEquals (), assertTrue () et assertFalse ()
AssertEquals (), assertNotEquals (), assertTrue () et assertFalse () pour comparer les résultats.
Les assertions sont utilisées pour comparer les résultats attendus et réels. La réussite ou l'échec d'un test est généralement décidé à partir du résultat d'assertions. Différents types d'assertions sont utilisés dans l'automatisation.
Syntaxe:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Explication:
- Dans la première commande, chaque fois que les valeurs attendues et réelles sont identiques, l'assertion passe sans exception. c'est-à-dire que si le message est «Ce texte», alors l'assertion est acceptée.
- Dans la deuxième commande, chaque fois que les valeurs attendues et réelles sont identiques, l'assertion échoue avec une exception. c'est-à-dire que si le message est «Ce texte», alors l'assertion échoue.
- Dans la troisième commande, si la condition réussit, l'assertion réussit. c'est-à-dire, si résultat<0, then the assertion passes.
- Dans la quatrième commande, si la condition réussit, l'assertion échoue. c'est-à-dire, si résultat<0, then the assertion fails.
# 25) fermez () et quittez ()
close () et quit () pour fermer les fenêtres et les instances de pilote.
Ces commandes sont utilisées à la fin de chaque programme d'automatisation.
Syntaxe:
driver.close() driver.quit()
Explication:
La première commande ferme la fenêtre courante.
La deuxième commande quitte cette instance de pilote, fermant chaque fenêtre associée qui est ouverte.
Conclusion
Dans ce didacticiel, nous avons présenté diverses commandes de WebDriver couramment et excessivement utilisées. Nous avons essayé d'expliquer les commandes avec des exemples appropriés et des extraits de code.
J'ai fait de mon mieux pour expliquer les commandes WebDriver les plus populaires que nous utilisons régulièrement dans notre travail quotidien. Ces commandes vous permettront de travailler facilement avec Selenium.
J'espère que c'était intéressant et bien informé pour vous.
Êtes-vous un testeur d'automatisation qui a essayé l'une des commandes ci-dessus? Ou avons-nous manqué des commandes que vous utilisez dans la liste ci-dessus?
Tutoriel suivant # 18 : Dans le prochain tutoriel, nous discuterons de Tables Web, cadres et éléments dynamiques qui sont une partie essentielle de tout projet Web. Nous couvrirons également le gestion des exceptions le sujet important dans plus de détails dans l'un des prochains tutoriels Selenium.
lecture recommandée
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Comment exécuter Selenium WebDriver dans différents navigateurs populaires
- Implémentation de notre premier script WebDriver - Tutoriel Selenium WebDriver # 10
- FAQ sur le sélénium
- Comment gérer les alertes / fenêtres contextuelles dans Selenium WebDriver - Tutoriel Selenium # 16
- Tutoriel GeckoDriver Selenium: Comment utiliser GeckoDriver dans les projets Selenium
- Attente implicite et explicite dans Selenium WebDriver (types d'attentes Selenium)