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 ?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2023-08-28 23:57:05
avant
1477 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!

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