Nombre de lignes d'une table à l'aide Sélénium C #
-
25-10-2019 - |
Question
Je suis nouveau à Sélénium. Je travaille avec c #. Il y a une table comme ça. Je l'ai vu en utilisant Firebug.
<table>
<tbody>
<tr class="v-table-row-odd"></tr>
<tr class="v-table-row"></tr>
<tr class="v-table-row-odd"></tr>
<tr class="v-table-row"></tr>
<tr class="v-table-row-odd"></tr>
<tr class="v-table-row"></tr>
</tbody>
</table>
Et la question est que je ne suis pas ici en sachant comment obtenir le nombre de lignes dans une table qui change de manière dynamique. Est-il possible ??
J'ai essayé xpathCount mais nous avons eu quelques problèmes d'exception ..
decimal numOfRows = selenium.GetXpathCount("xpath=/html/body/div/div/div[2]/div/div[3]/div/div[2]/div/div/div[2]/div/div/div/div/div[7]/div/div/div[2]/div/table/tbody/tr");
J'ai aussi essayé xpathCount comme ceci
selenium.GetXpathCount("xpath=/html/body/div/div/div[2]/div/div[3]/div/div[2]/div/div/div[2]/div/div/div/div/div[7]/div/div/div[2]/div/table/tbody");
Mais les exceptions soulevées. aider quelqu'un peut me à cet égard.
Merci
La solution
Si c'est la seule table avec des lignes marquées avec ces noms de classe, vous pouvez simplement utiliser:
decimal numOfOddRows = selenium.GetXpathCount("//tr[@class='v-table-row-odd']"); // 3
decimal numOfEvenRows = selenium.GetXpathCount("//tr[@class='v-table-row']"); // 3
decimal numOfRows = numOfOddRows + numOfEvenRows; // 3 + 3 = 6
Si non, alors vous devez trouver une meilleure façon de localiser le table
. Quelque chose n'est pas tout à fait raison avec votre (très long) sélecteur de XPath qui commence à partir du haut du document. Il n'y a rien de mal en soi à ce sujet, mais avec une page Web dynamique, il est très difficile d'obtenir le droit.
Au lieu de cela, vous devez localiser un élément plus proche de votre table
puis filtre dans cela. Si, par exemple, si l'un de vos div
s a un attribut name
, vous pouvez utiliser //div[@name='someName']//tr
. Pour plus d'informations sur l'utilisation des sélecteurs XPath, consultez .
Autres conseils
Essayez ceci pour obtenir le nombre de lignes dans un tableau
int iRowsCount = driver.FindElements(By.XPath("/html/body/..../table/tbody/tr")).Count;