Sélénium - Localisateurs

La localisation des éléments dans Selenium WebDriver est effectuée à l'aide des méthodes findElement () et findElements () fournies par WebDriver et la classe WebElement.

  • findElement () renvoie un objet WebElement basé sur un critère de recherche spécifié ou finit par lever une exception s'il ne trouve aucun élément correspondant aux critères de recherche.

  • findElements () renvoie une liste de WebElements correspondant aux critères de recherche. Si aucun élément n'est trouvé, il renvoie une liste vide.

Le tableau suivant répertorie toute la syntaxe Java pour localiser les éléments dans Selenium WebDriver.

Méthode Syntaxe La description
Par ID driver.findElement (By.id (<ID d'élément>)) Localise un élément à l'aide de l'attribut ID
De nom driver.findElement (By.name (<nom de l'élément>)) Localise un élément à l'aide de l'attribut Name
Par nom de classe driver.findElement (By.className (<classe d'élément>)) Localise un élément à l'aide de l'attribut Classe
Par nom de balise driver.findElement (By.tagName (<htmltagname>)) Localise un élément à l'aide de la balise HTML
Par texte du lien driver.findElement (Par.linkText (<linktext>)) Localise un lien à l'aide du texte du lien
Par texte de lien partiel driver.findElement (Par.partialLinkText (<linktext>)) Localise un lien à l'aide du texte partiel du lien
Par CSS driver.findElement (By.cssSelector (<sélecteur css>)) Localise un élément à l'aide du sélecteur CSS
Par XPath driver.findElement (Par.xpath (<xpath>)) Localise un élément à l'aide de la requête XPath

Utilisation des localisateurs

Maintenant, comprenons l'utilisation pratique de chacune des méthodes de localisation à l'aide de https://www.calculator.net

Par ID

Ici, un objet est accessible à l'aide d'identifiants. Dans ce cas, il s'agit de l'ID de la zone de texte. Les valeurs sont saisies dans la zone de texte à l'aide de la méthode sendkeys à l'aide de l'ID (cdensity).

driver.findElement(By.id("cdensity")).sendKeys("10");

De nom

Ici, un objet est accessible à l'aide de noms. Dans ce cas, il s'agit du nom de la zone de texte. Les valeurs sont saisies dans la zone de texte à l'aide de la méthode sendkeys à l'aide de l'ID (cdensity).

driver.findElement(By.name("cdensity")).sendKeys("10");

Par nom de classe

Ici, un objet est accessible à l'aide des noms de classe. Dans ce cas, il s'agit du nom de classe du WebElement. La valeur est accessible à l'aide de la méthode gettext.

List<WebElement> byclass = driver.findElements(By.className("smalltext smtb"));

Par nom de tag

Le nom de balise DOM d'un élément peut être utilisé pour localiser cet élément particulier dans le WebDriver. Il est très facile de gérer les tableaux à l'aide de cette méthode. Jetez un œil au code suivant.

WebElement table = driver.findElement(By.id("calctable"));
List<WebElement> row = table.findElements(By.tagName("tr"));
int rowcount = row.size();

Par texte du lien

Cette méthode permet de localiser un élément de lien avec le texte visible correspondant.

driver.findElements(By.linkText("Volume")).click();

Par texte de lien partiel

Cette méthode permet de localiser un élément de lien avec un texte visible partiellement correspondant.

driver.findElement(By.partialLinkText("Volume")).click();

Par CSS

Le CSS est utilisé comme méthode pour identifier l'objet Web, mais tous les navigateurs ne prennent PAS en charge l'identification CSS.

WebElement loginButton = driver.findElement(By.cssSelector("input.login"));

Par XPath

XPath signifie langage de chemin XML. C'est un langage de requête pour sélectionner des nœuds à partir d'un document XML. XPath est basé sur la représentation arborescente des documents XML et offre la possibilité de naviguer dans l'arborescence en sélectionnant des nœuds à l'aide de divers critères.

driver.findElement(By.xpath(".//*[@id = 'content']/table[1]/tbody/tr/td/table/tbody/tr[2]/td[1]/input")).sendkeys("100");