Frage

Ich bin neu in Selen. Ich arbeite mit C#. Es gibt einen solchen Tisch. Ich habe es mit Firebug gesehen.

<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>

Und das Problem hier ist, dass ich nicht weiß, wie man die Anzahl der Zeilen in einer Tabelle bekommt, die sich dynamisch ändert. Gibt es irgendeinen Weg??

Versuchte xPathcount, bekam aber einige Ausnahmeprobleme.

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

Ich habe auch XPathcount so ausprobiert

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

Aber beide erhobenen Ausnahmen. Kann mir jemand in dieser Hinsicht helfen?

Danke

War es hilfreich?

Lösung

Wenn es die einzige Tabelle mit Zeilen ist, die mit diesen Klassennamen gekennzeichnet sind, können Sie nur verwenden:

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

Wenn nicht, müssen Sie einen besseren Weg finden, um das zu lokalisieren table. Mit Ihrem (sehr langen) XPath -Selektor stimmt etwas nicht ganz richtig, der ganz oben im Dokument beginnt. Daran ist nichts falsch, aber mit einer dynamischen Webseite ist es sehr schwierig, richtig zu werden.

Stattdessen müssen Sie ein Element näher an Ihrem finden table und dann drin filtern. Wenn zum Beispiel einer von Ihnen divs hat a name Attribut könnten Sie verwenden //div[@name='someName']//tr. Weitere Informationen zur Verwendung von XPath -Selektoren finden Sie unter hier.

Andere Tipps

Versuchen Sie dies, um die Anzahl der Zeilen in einer Tabelle zu erhalten

int iRowsCount = driver.FindElements(By.XPath("/html/body/..../table/tbody/tr")).Count;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top