Selenium C#-如何获取表的总行数?

时间:2018-11-30 22:07:02

标签: c# selenium selenium-webdriver webdriver selenium-chromedriver

我对此很陌生,我找到了一种方法来计算表中的行数,我的问题是我的代码只计算“可见”行,而不计算表中不存在的行。屏幕。

int rowcount = customMethods.driver.FindElement(By.XPath("/html[1]/body[1]/div[3]/div[1]/div[1]/div[1]/div[2]/div[3]/div[1]/div[1]/div[1]/div[1]/div[1]/table[1]/tbody[1]")).FindElements(By.TagName("tr")).Count();

这段代码为我返回了39行,但是有44行,在计数时看不到超出的行。

有帮助吗?

1 个答案:

答案 0 :(得分:0)

  • 您使用的absolute xpath在自动化中是不可接受的,因为它会经常中断。使用相对的xpath。就像是 //table[@id='']/tbody/tr//table[@class='']/tbody/tr/。请不要,您不必将id和class保留为空,而需要根据html

  • 另一件事是您使用过tbody[1],这意味着您的表有两个tbody,如果其余5 rows属于其他tbody,则可以这样做只需使用tbody

这可能会给您所有行,或者可能超过44

int rowcount = customMethods.driver.FindElements(By.XPath("/html[1]/body[1]/div[3]/div[1]/div[1]/div[1]/div[2]/div[3]/div[1]/div[1]/div[1]/div[1]/div[1]/table[1]/tbody/tr")).Count();

但是您的xpath应该是这样

int rowcount = customMethods.driver.FindElements(By.XPath("//table[@id='']/tbody/tr")).Count();