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

Était-ce utile?

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 divs 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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top