Comment vérifier si un élément existe en sélénium

Comment vérifier si un élément existe en sélénium

Cet article examine comment utiliser le Sélénium WebDriver pour déterminer si un élément existe ou non. En utilisant des exemples simples et faciles grâce au codage, nous montrons comment vérifier l'existence d'éléments dans le sélénium webdriver. Tout d'abord, nous expliquons ce que sont les Webles importantes dans le sélénium et comment vous pouvez trouver les éléments en sélénium à l'aide de différents exemples. Discutons d'abord de ce que sont les webdrivers et les webdateurs de sélénium.

Sélénium WebDriver et Selenium WebElements

Selenium WebDriver a facilité la vie des programmeurs avec ses fonctionnalités utiles. Selenium WebDriver fait référence aux liaisons linguistiques et aux nombreuses implémentations du code de contrôle du navigateur. Un élément HTML est appelé WebElement qui permet aux utilisateurs de contrôler les tests automatisés. Grâce à WebElements, Selenium WebDriver propose des interactions de page Web bien organisées comme trouver les éléments, obtenir les propriétés d'attribut, confirmant le texte dans la WebElement, et plus. Nous pouvons automatiser une grande variété d'environnements de test avec le guidage du sélénium.

Commande de trouver un élément en sélénium

L'objet «by» est un paramètre pour la commande finy élément qui fournit un objet du type WebElement. Diverses techniques de localisateur telles que le nom, l'id, le nom de classe, XPath, le texte de liaison, etc. peut être utilisé avec l'objet «by».

Voici la syntaxe pour trouver un élément:

WebElement elementName = Driver.findElement (par.LocatorStrategy («LocatorValue»));

L'une des valeurs suivantes, notamment le nom, l'ID, le nom de classe, le nom de la balise, le texte de lien, le test de lien partiel et XPath, peuvent être utilisés pour la stratégie de localisation.

Toutes ces valeurs peuvent être entrées dans le localisateur pour localiser l'élément Web.

Comment vérifier si un élément existe en sélénium

Plusieurs façons peuvent être adoptées pour vérifier si un certain élément se trouve dans le Sélénium WebDriver ou non. Voici un résumé des moyens les plus typiques de savoir si les éléments existent dans le webdriver ou non.

ElementSinement (…) The Second GetElementsByClassName (…)
ElementSinement contient (elementName, elementValue) (nom, valeur).

Le résultat est booléen. Si l'élément est présent, il produit une valeur bool de vrai. Sinon, ça répond faux. Fournir un nom nul produit également un vrai résultat, tandis que la fourniture d'une chaîne produit un faux résultat.

Maintenant, pour comprendre cette procédure, nous irons à notre interface et exécuterons quelques exemples de codes.

Exemple 1:

Ce premier exemple est très basique et simple qui est créé pour les débutants et les développeurs de niveaux expérimentés. Le programme commence par l'importation du pilote.trouver pour obtenir les WebElements avec le nom de balise pour vérifier l'existence des éléments Web dedans. Nous fournissons la commande complète suivante à laquelle vous pouvez vous référer. Après cela, nous expliquons ce code en morceaux afin que vous puissiez comprendre l'action qu'ils effectuent.

org d'importation.openqa.sélénium.Par;
org d'importation.openqa.sélénium.WebDriver;
org d'importation.openqa.sélénium.WebElement;
org d'importation.openqa.sélénium.chrome.Chromedriver;
Classe publique Checkifexists
public static void main (String [] args)

Système.SetProperty («WebDriver.chrome.conducteur", "./ pilotes / chromedriver.exe");
WebDriver Driver1 = new Chromedriver ();
Driver1.Get («http: // Demoqa.com / enregistrement / ”); Driver1.gérer().délais de temps ().ImplicitlyWait (2000, timeUnit.Miliseconds);
Liste DD = Driver1.findElements (par.TagName ("SELECT"));
if (dd.size ()))> 0) système.dehors.println («Dropdown existe»);
autre


Système.dehors.println ('no dropdown ");-

Maintenant, essayons de comprendre le code précédent.

Si nous voulons vérifier si les listes déroulantes existent ou non, nous devons savoir où les cassettes sont présentes dans la structure descendante. Si vous inspectez une liste déroulante dans un site Web particulier, les listes déroulantes sont sous les balises sélectionnées. La capture d'écran est attachée pour voir où nous pouvons trouver l'onglet Sélectionner et la liste déroulante.

S'il y a des balises sélectionnées sur la page Web particulière, les déroutes sont sur la page. S'il n'y a pas de balise de sélection actuelle, il n'y a pas de listes déroulantes présentes ou existantes. Nous devons donc utiliser cet indice:

Lister dd = pilote.findElements (par.TAGNAME («SELECT»));

Nous utilisons le pilote.Méthode findElements () pour déterminer si un élément est présent sur une page Web. Comme nous le savons, une liste de WebElements est située en utilisant le paramètre «By Locator» qui est renvoyé par la fonction FindElements (). Si l'élément est trouvé, une liste de WebElements non nuls est renvoyé. Sinon, une liste de taille 0 est retournée. En conséquence, la durée de la liste peut être utilisée pour déterminer si une entrée est présente ou non.

Gardez à l'esprit que lors de la recherche de l'élément, cette fonction attend que l'attente «implicite» soit donnée pour le pilote comme nous le donnons dans notre codage:

Driver1.gérer().délais de temps ().ImplicitlyWait (2000, timeUnit.Miliseconds);

Si nous savons qu'un élément est immédiatement disponible sur la page Web, nous pouvons ramener la valeur de l'attente «implicite» à sa valeur par défaut après l'avoir réglé sur 0, en vérifiant la présence d'éléments et en accélérant le processus.

Si vous ne mettez que «Sélectionner», vous ne pourrez pas obtenir de sortie. Il ne va qu'à la balise de sélection et le pointer.

C'est tout. Si vous souhaitez vérifier si les crampons existent ou non, vous devez stocker cette sortie dans la variable «lister WebElement».

Après avoir exécuté le code, nous obtenons le résultat qu'une «liste déroulante existe» comme vous pouvez le voir dans l'illustration fournie.

Exemple 2:

Dans l'exemple précédent, nous avons utilisé la méthode de recherche d'un élément par tagname pour voir si un élément déroulant existe ou non. Maintenant, à partir de cet exemple, vous saurez comment trouver les éléments en utilisant les méthodes d'essai et de capture.

Exécutons le code et vérifions comment l'utiliser:

Système.SetProperty («WebDriver.gecko.pilote "," / utilisateurs / ABC / Desktop / C / DZ / Library / XYZ ");
WebDriver Driver1 = new FireFoxdriver ();
Driver1.get (https: // www.Google.com)
essayer
Driver1.findElement (par.xpath ("// entrée [@ id = 'djahvljadhlkgj'))
Système.dehors.printin (élément existe);

Catch (NosuchementElementException e) Système.dehors.printin («élément n'existe pas);

Pour vérifier si l'élément existe ou non, nous utilisons un bloc d'essai et de capture. Tout ce que nous devons faire est d'essayer de trouver l'élément.

conducteur.findElement (par.xpath ("// input [@ id = 'djahvljadhlkgj']”));

Maintenant, l'extrait de code précédent trouve l'élément utilisant le XPATH:

Catch (NosuchementElementException e) Système.dehors.printin («élément n'existe pas);

Maintenant, si l'élément ne se trouve pas dans le bloc de capture, cela signifie qu'il n'y a pas d'élément présent sur la page avec ce type de localisateur dans ce XPATH. Ensuite, l'erreur est prise pour que nous puissions prendre l'exception.

Après avoir exécuté le code, il lance l'erreur «pas d'exception de ce type». C'est ce que nous voulons récupérer dans le bloc de capture:

essayer
Drive1r.findElement (par.xpath ("// entrée [@ id = 'djahvljadhlkgj'))
Système.dehors.printin (élément existe);

Catch (NosuchementElementException e) Système.dehors.printin («élément n'existe pas);

Ce que nous avons fait, c'est que nous avons pris un bloc d'essai. Dans ce bloc d'essai, nous découvrons l'élément que nous voulons trouver en utilisant le localisateur que nous voulons utiliser. Si l'élément est trouvé, il s'exécute simplement et l'instruction indique que l'élément existe et qu'il ne va jamais au bloc de capture. Si l'élément n'est pas trouvé, il ne lance pas un tel élément. Ensuite, il exécute simplement «l'élément introuvable» dans le bloc de capture.

Exemple 3:

Dans ce cas, nous utilisons le pilote.Trouver des éléments par id. Ensuite, nous obtenons le compte de cet élément particulier. Si ce n'est pas zéro, cela signifie que l'élément est présent. Essayez toujours les éléments de recherche, pas l'élément de recherche. La différence entre les deux est que si vous utilisez l'élément de recherche, il lance l'exception «pas élément trouvé». Mais les éléments de recherche ne lancent pas cette exception même si l'élément est présent ou non. N'oubliez pas d'utiliser cette méthode de recherche d'éléments et de vérifier le nombre de cette valeur ou de cette liste de cet élément. Si le nombre est 0, cela signifie que l'élément n'est pas présent.

if (driver1.findElements (par.Id («ABC»)).Compter!= 0)
console.Writeline («élément est présent»);
autre
console.Writeline («l'élément n'est pas présent»);

Dans ce code, nous recevons le nombre de 0, ce qui signifie que l'élément n'est pas présent.

Conclusion

Nous avons discuté de l'utilisation du codage pour déterminer si les éléments de Sélénium Webdriver existent ou non. L'idée du paramètre pour trouver la commande élément qui renvoie un objet du type WebElement est affiché ici à partir des exemples. Dans cet article, nous comprenons le concept de la façon de trouver l'existence d'éléments Web dans le sélénium webdrivers en utilisant différentes méthodes. Vous pouvez vous référer à cet article du début à la fin pour mieux comprendre tout le concept.