使用硒C#中表中的行数
-
25-10-2019 - |
题
我是硒的新手。我正在与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
然后在其中过滤。例如,如果您的一个 div
S有一个 name
属性,您可以使用 //div[@name='someName']//tr
. 。有关使用XPath选择器的更多信息,请参见 这里.
其他提示
尝试以此操作以获取表中的行数
int iRowsCount = driver.FindElements(By.XPath("/html/body/..../table/tbody/tr")).Count;
不隶属于 StackOverflow