我正在尝试从下面给出的表中选择一个类名为'topicRow post'的特定行
网站上的代码
<table class="content" width="100%">
<tbody>
<tr class="topicTitle">
<tr class="topicSubTitle">
<tr class="topicRow post">
<tr class="topicRow_Alt post_alt">
<tr class="topicRow post">
<tr class="topicRow_Alt post_alt">
<tr id="forum_ctl03_ctl00" class="header2">
<tr class="post">
<tr>
</tbody>
</table>
硒代码
WebElement Webtable=driver.findElement(By.xpath("//*[@class='content']"));
List<WebElement> TotalRowCount=Webtable.findElements(By.xpath("//*[@class='content']/tbody/tr[contains(@class,'topicRow post')]"));
System.out.println("No. of Rows in the WebTable: "+TotalRowCount.size());
问题
每次打印表中所有行的大小。请指导...
最佳答案
在代码中,您已经使用Webtable查找行,但是仍然在Webtable.findElements()中为Webtable重复xpath部分"//*[@class='content']"
。
如下更改代码:
List<WebElement> TotalRowCount=Webtable.
findElements(By.xpath(".//tr[contains(@class,'topicRow post')]"));
或更改为在重复的xpath部分中使用
driver.findElements()
:List<WebElement> TotalRowCount=driver.
findElements(By.xpath("//*
[@class='content']/tbody/tr[contains(@class,'topicRow post')]"));
如果以上两种方法均无法正常工作,请尝试以下代码:
WebElement table = driver.findElement(By.css("table.content"));
List<WebElement> foundRows = table.findElements(By.css("tr.topicRow.post"));
System.out.println("Found rows count: "+ foundRows.size());