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");