Maison > interface Web > tutoriel CSS > Comment utiliser les sélecteurs CSS comme localisateurs dans Selenium ?

Comment utiliser les sélecteurs CSS comme localisateurs dans Selenium ?

WBOY
Libérer: 2023-08-28 23:57:05
avant
1418 Les gens l'ont consulté

Nous pouvons positionner des éléments à l'aide de sélecteurs CSS dans le pilote Web Selenium. La forme générale pour créer des expressions CSS est tagname[attribute='value']. Nous pouvons utiliser les attributs id et class pour créer du CSS.

Lors de l'utilisation de id, la syntaxe de l'expression CSS est tagname#id. Par exemple, pour l'expression CSS - input#txt-loc, input est le nom de la balise et txt-loc est la valeur de l'attribut id.

Lors de l'utilisation de noms de classe, la syntaxe des expressions CSS est tagname.class. Par exemple, pour l'expression CSS - input.txt-cls, input est le nom de la balise et txt-cls est la valeur de l'attribut class.

Si un élément de page Web (parent) a n éléments enfants (enfants) et que nous voulons localiser le nième élément enfant, la syntaxe de l'expression CSS est nième de type(n).

如何在 Selenium 中使用 CSS 选择器作为定位器?

Dans le html ci-dessus, si nous voulons positionner le quatrième li du parent ul, qui est l'élément d'ancrage avec le texte "Questions et réponses", le CSS doit être ul.reading li:nth-of- tapez (4). De même, pour identifier le dernier élément enfant, le CSS doit être ul.reading li:last-child.

Pour les attributs avec des valeurs dynamiques, nous pouvons utiliser le symbole ^= pour identifier les éléments dont les valeurs d'attribut commencent par un texte spécifique. Par exemple, input[name^='qa1'] [ici, l'entrée est tagname et la valeur de l'attribut name commence par qa1].

Pour les attributs avec des valeurs dynamiques, nous pouvons utiliser le symbole $= pour identifier les éléments dont les valeurs d'attribut se terminent par un texte spécifique. Par exemple, input[class$='loc'] [ici input est tagname et la valeur de l'attribut class se termine par loc].

Pour les attributs avec des valeurs dynamiques, nous pouvons utiliser le symbole *= pour identifier les éléments dont les valeurs d'attribut contiennent une sous-chaîne spécifique. Par exemple, input[name*='sub'] [ici, l'entrée est tagname et la valeur de l'attribut name contient la sous-chaîne sub].

Exemple

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
public class CSSLocator{
   public static void main(String[] args) {
      System.setProperty("webdriver.gecko.driver",
      "C:\Users\ghs6kor\Desktop\Java\geckodriver.exe");
      WebDriver driver = new FirefoxDriver();
      //implicit wait
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      //URL launch
      driver.get("https://www.linkedin.com/");
      //identify element
      WebElement m = driver.
      findElement(By.cssSelector("input[id='session_key']"));
      //enter text
      m.sendKeys("Java");
      String s = m.getAttribute("value");
      System.out.println("Attribute value: " + s);
      //close browser
      driver.close();
   }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal