我是硒的新手。我正在与C#合作。有这样的桌子。我用火焰看到了它。

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

这里的问题是,我不知道如何在动态变化的表中获取行数。有什么办法吗?

尝试了XPathCount,但有一些例外问题。

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

我也尝试过这样的XPathcount

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

但是两者都提出了例外。任何人都可以在这方面帮助我。

谢谢你

有帮助吗?

解决方案

如果这是唯一带有这些类名称的行的表,则可以使用:

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

如果不是,那么您需要找到一种更好的方法来定位 table. 。从文档的顶部开始的(非常长的)XPath选择器(非常长)的XPath选择器不太正确。这没有什么天生的错误,但是有了一个动态的网页,很难正确正确。

相反,您需要将一个元素放在靠近您的 table 然后在其中过滤。例如,如果您的一个 divS有一个 name 属性,您可以使用 //div[@name='someName']//tr. 。有关使用XPath选择器的更多信息,请参见 这里.

其他提示

尝试以此操作以获取表中的行数

int iRowsCount = driver.FindElements(By.XPath("/html/body/..../table/tbody/tr")).Count;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top