web-dev-qa-db-fra.com

Comment obtenir le nom de classe css en utilisant Selenium?

Je suis nouveau dans les tests de sélénium. Je veux obtenir le nom de la classe css en utilisant Selenium. J'utilise Eclipse et Java pour le développement.

<table >
<tr class="odd"><td>Odd row</td></tr>
<tr class="even"><td>Even row</td></tr>
<tr class="odd"><td>Odd row2</td></tr>
<tr class="even"><td>Even row2</td></tr>       
</table>

Existe-t-il un moyen d'obtenir le nom de classe «impair» ou «pair» à l'aide de sélénium? je 

22
Maruf Hassan

Oui, vous pouvez utiliser la fonction getAttribute(attributeLocator) pour répondre à vos besoins.

 Selenium.getAttribute(//xpath@class);

Spécifiez le Xpath de l'élément pour lequel vous devez connaître la classe de.

Merci.

15
lAH2iV

A partir de WebElement, vous pouvez utiliser la méthode getAttribute comme ceci:

element.getAttribute("class")
57
Stephen

Dans le contexte de l'extrait de code, supposons que vous souhaitiez obtenir la classe "impair" pour la première ligne de la table.
Vous pouvez suivre les étapes ci-dessous:
(Remarque: - En supposant qu'il y ait une table dans votre page Web)

1- Obtenir l’élément en premier:

WebElement ele = driver.findElement (By.xpath ("// table/tr [1]"));
Le code ci-dessus utilise xpath pour obtenir l’élément, c’est-à-dire la première ligne de la table.

2- Ensuite, obtenez l'attribut "class" de l'élément en utilisant la méthode "getAttribute":

String nom_classe = ele.getAttribute ("classe");
Le code ci-dessus va chercher le nom "class" de l'élément associé et l'assigne à la variable String "nom_classe" pour une utilisation ultérieure.

De même, pour obtenir la classe "paire", qui est l'attribut de la quatrième ligne de la table, vous pouvez utiliser le code ci-dessous:

ele = driver.findElement (By.xpath ("// table/tr [4]")); ;__. nom_classe = ele.getAttribute ("class");
4
Subh

Si CSS est votre exigence, et en l'absence d'attributs d'élément supplémentaires/différenciants, essayez ce qui suit (dans l'exemple, j'ai utilisé des assertions de texte simples):

assertEquals(Selenium.getText("css=tr.odd > td"), "Odd row");
assertEquals(Selenium.getText("css=tr.even > td"), "Even row");
assertEquals(Selenium.getText("//tr[3]/td"), "Odd row2");
assertEquals(Selenium.getText("//tr[4]/td"), "Even row2");
1
rs79

Obtenir le nom de la classe CSS en utilisant Selenium en utilisant C #:

string _className;
IWebElement _ele = _driver.FindElement(By.Xpath("Xpath of Element"));
_className = _ele.GetAttribute("AttributeName Here");
0
Mohseen