Sélecteur CSS dans Selenium

Qu'est-ce qu'un sélecteur CSS ?

Sélecteurs CSS dans Selenium sont des modèles de chaîne utilisés pour identifier un élément en fonction d'une combinaison de balise HTML, d'identifiant, de classe et d'attributs. Localisation par les sélecteurs CSS dans Selenium est plus compliquée que les méthodes précédentes, mais c'est la stratégie de localisation la plus courante des méthodes avancées. Selenium utilisateurs car il peut accéder même aux éléments qui n’ont ni identifiant ni nom.

Sélecteurs CSS dans Selenium ont de nombreux formats, mais nous nous concentrerons uniquement sur les plus courants. Les différents types de CSS Locator dans Selenium IDE

  • Étiquette et identifiant
  • Balise et classe
  • Balise et attribut
  • Balise, classe et attribut
  • Texte intérieur

Lorsque nous utilisons cette stratégie, nous préfixons toujours le Target boîte avec « css = » comme cela sera montré dans les exemples suivants.

balise et identifiant – Sélecteur CSS

Encore une fois, nous allons utiliser la zone de texte Email de Facebook dans cet exemple. Comme vous vous en souvenez, elle a un identifiant « email » et nous y avons déjà accédé dans la section « Localisation par ID ». Cette fois, nous allons utiliser un Selenium Sélecteur CSS avec ID pour accéder à ce même élément.

Syntaxe

css=tag#id

  • tag = la balise HTML de l'élément auquel on accède
  • # = le signe dièse. Cela devrait toujours être présent lors de l'utilisation d'un Selenium Sélecteur CSS avec ID
  • id = l'ID de l'élément auquel on accède

Gardez à l'esprit que l'ID est toujours précédé d'un signe dièse (#).

Étape 1) Accédez à www.facebook.com. À l'aide de Firebug, examinez la zone de texte « E-mail ou téléphone ».

À ce stade, notez que la balise HTML est « input » et son ID est « email ». Notre syntaxe sera donc « css=input#email ».

Balise et identifiant - Sélecteur CSS

Étape 2) Entrez « css=input#email » dans le champ Target boîte de Selenium IDE et cliquez sur le bouton Rechercher. Selenium L'IDE devrait être capable de mettre en évidence cet élément.

Balise et identifiant - Sélecteur CSS

balise et classe – Sélecteur CSS

Sélecteur CSS dans Selenium l'utilisation d'une balise HTML et d'un nom de classe est similaire à l'utilisation d'une balise et d'un identifiant, mais dans ce cas, un point (.) est utilisé à la place d'un signe dièse.

Syntaxe

css=tag.class

  • tag = la balise HTML de l'élément auquel on accède
  • . = le signe point. Cela devrait toujours être présent lors de l'utilisation d'un sélecteur CSS avec classe
  • class = la classe de l'élément auquel on accède

Étape 1) Accédez à la page de démonstration http://demo.guru99.com/test/facebook.html et utilisez Firebug pour inspecter la zone de texte « E-mail ou téléphone ». Notez que sa balise HTML est « input » et sa classe est « inputtext ».

Balise et classe - Sélecteur CSS

Étape 2) In Selenium IDE, saisissez « css=input.inputtext » dans le champ Target case et cliquez sur Rechercher. Selenium L'IDE devrait pouvoir reconnaître la zone de texte E-mail ou Téléphone.

Balise et classe - Sélecteur CSS

Notez que lorsque plusieurs éléments ont la même balise HTML et le même nom, seul le premier élément du code source sera reconnu.. À l'aide de Firebug, inspectez la zone de texte Mot de passe dans Facebook et notez qu'elle porte le même nom que la zone de texte E-mail ou Téléphone.

Balise et classe - Sélecteur CSS

La raison pour laquelle seule la zone de texte E-mail ou Téléphone a été mise en surbrillance dans l'illustration précédente est qu'elle apparaît en premier dans la source de la page Facebook.

Balise et classe - Sélecteur CSS

balise et attribut – Sélecteur CSS

Cette stratégie utilise la balise HTML et un attribut spécifique de l'élément auquel accéder.

Syntaxe

css=tag[attribute=value]

  • tag = la balise HTML de l'élément auquel on accède
  • [ et ] = crochets entre lesquels un attribut spécifique et sa valeur correspondante seront placés
  • attribut = l'attribut à utiliser. Il est conseillé d'utiliser un attribut unique à l'élément tel qu'un nom ou un identifiant.
  • value = la valeur correspondante de l'attribut choisi.

Étape 1) Accédez à Mercury Page d'inscription aux visites http://demo.guru99.com/test/newtours/register.php et inspectez la zone de texte « Nom de famille ». Notez sa balise HTML (« input » dans ce cas) et son nom (« lastName »).

Balise et attribut - Sélecteur CSS

Étape 2) In Selenium IDE, saisissez « css=input[name=lastName] » dans le champ Target case et cliquez sur Rechercher. Selenium L'IDE devrait pouvoir accéder à la zone Nom de famille avec succès.

Balise et attribut - Sélecteur CSS

Lorsque plusieurs éléments ont la même balise et le même attribut HTML, seul le premier sera reconnu. Ce comportement est similaire à la localisation d'éléments à l'aide de sélecteurs CSS avec la même balise et la même classe.

balise, classe et attribut – Sélecteur CSS

Syntaxe

css=tag.class[attribute=value]

  • tag = la balise HTML de l'élément auquel on accède
  • . = le signe point. Cela devrait toujours être présent lors de l'utilisation d'un sélecteur CSS avec classe
  • class = la classe de l'élément auquel on accède
  • [ et ] = crochets entre lesquels un attribut spécifique et sa valeur correspondante seront placés
  • attribut = l'attribut à utiliser. Il est conseillé d'utiliser un attribut unique à l'élément tel qu'un nom ou un identifiant.
  • value = la valeur correspondante de l'attribut choisi.

Étape 1) Accédez à la page de démonstration http://demo.guru99.com/test/facebook.html et utilisez Firebug pour inspecter les zones de saisie « E-mail ou téléphone » et « Mot de passe ». Prenez note de leur balise HTML, de leur classe et de leurs attributs. Pour cet exemple, nous sélectionnerons leurs attributs 'tabindex'.

Balise, classe et attribut - Sélecteur CSS

Étape 2) Nous allons d'abord accéder à la zone de texte « E-mail ou téléphone ». Nous utiliserons donc une valeur tabindex de 1. Entrez « css=input.inputtext[tabindex=1] » dans Selenium IDE Target et cliquez sur Rechercher. La zone de saisie « E-mail ou téléphone » doit être mise en surbrillance.

Balise, classe et attribut - Sélecteur CSS

Étape 3) Pour accéder à la zone de saisie du mot de passe, remplacez simplement la valeur de l'attribut tabindex. Entrez « css=input.inputtext[tabindex=2] » dans le champ Target case et cliquez sur le bouton Rechercher. Selenium L'IDE doit pouvoir identifier avec succès la zone de texte Mot de passe.

Balise, classe et attribut - Sélecteur CSS

texte intérieur – Sélecteur CSS

Comme vous l'avez peut-être remarqué, les étiquettes HTML reçoivent rarement des attributs d'identification, de nom ou de classe. Alors, comment y accéder ? La réponse passe par l’utilisation de leurs textes intérieurs. Les textes internes sont les modèles de chaîne réels que l'étiquette HTML affiche sur la page.

Syntaxe

css=tag:contains("inner text")

  • tag = la balise HTML de l'élément auquel on accède
  • texte intérieur = le texte intérieur de l'élément

Étape 1) Accédez à Mercury Page d'accueil des visites http://demo.guru99.com/test/newtours/ et utilisez Firebug pour enquêter sur l'étiquette « Mot de passe ». Prenez note de sa balise HTML (qui est « font » dans ce cas) et notez qu'elle n'a aucun attribut de classe, d'identifiant ou de nom.

Texte intérieur - Sélecteur CSS

Étape 2) Type css=font:contains("Mot de passe:") développement Selenium IDE Target case et cliquez sur Rechercher. Selenium L'IDE devrait pouvoir accéder à l'étiquette de mot de passe, comme indiqué dans l'image ci-dessous.

Texte intérieur - Sélecteur CSS

Étape 3) Cette fois, remplacez le texte intérieur par « Boston » afin que votre Target deviendra désormais « css=font:contains(“Boston”) ». Cliquez sur Rechercher. Vous devriez remarquer que l’étiquette « Boston à San Francisco » est mise en surbrillance. Cela vous montre que Selenium L'IDE peut accéder à une longue étiquette même si vous venez d'indiquer le premier mot de son texte intérieur.

Texte intérieur - Sélecteur CSS

Résumé

Syntaxe de localisation par utilisation du sélecteur CSS

Method Target Syntaxe Exemple
Étiquette et identifiant css=tag#id css=entrée#email
Balise et classe css = tag.class css=input.inputtext
Balise et attribut css=balise[attribut=valeur] css=input[nom=nom]
Balise, classe et attribut css=tag.class[attribut=valeur] css=input.inputtext[tabindex=1]