我有一张表,其中第一行的第一列有扩展(+)按钮[如果我们点击(+)按钮某些行将被添加到表格中] ..当我克隆扩展按钮时我需要新的行数...请帮忙
这是代码
list rows = m.driver.findElements(By.xpath(“// div [@ id ='table'] / tbody / tr”)); int r = rows.size();
for(int i=1;i<=r;i++)
{
WebElement plus=m.driver.findElement(By.xpath("//div[@id='table']/tbody/tr["+i+"]/td[1]"));
if(plus.isDisplayed()) //*** expand(+) button***
{
m.driver.findElement(By.xpath(//div[@id='table']/tbody/tr["+i+"]/td[1])).click();
}
}
答案 0 :(得分:0)
使用webdriver可以用来计算所有行。请注意,名称是复数:
driver.findElementsBy(By.xpath("//table[@id='however-you-find-it']//tr")).getSize();
对于简单的表格来说是可以的:
<table>
<tbody>
<tr><td>Row 1, Column 1</td>
<td>Row 1, Column 2</td></tr>
<tr><td>Row 2, Column 1</td>
<td>Row 2, Column 2</td></tr>
</tbody>
</table>
根据表的构造方式,可能需要一些变化。如果表标题也很重要,您可能需要在计数中包含//table[...]//th]
。
如果表具有嵌套表,并且您只想计算顶级表的行,请不要使用table[...]//tr
,因为它也包含嵌套行,而是table[...]/tr
或{{ 1}},其中单斜线表示直接子节点,而不是任何类型tr的后代。
答案 1 :(得分:0)
// To get total row count
public int getRowCount() {
List rows = m.driver.findElements(By.xpath("//div[@id='table']/tbody/tr"));
return rows.size();
}
迭代for循环,当for循环条件为false时,它返回更新的大小。
public int updatedCount() {
for(int = 0 ; i < = getRowCount() ; i++) {
//..your code
}
return getRowCount();
}
答案 2 :(得分:0)
获取表格的初始计数
List rows = driver.findElements(By.xpath("//div[@id='table']/tbody/tr"));
int initialRowCnt = rows.size();
点击expant(+)按钮
driver.findElement(By.xpath("//div[@id='table']/tbody/tr["+i+"]/td[1]")).click();
获取新行数
List rows = driver.findElements(By.xpath("//div[@id='table']/tbody/tr"));
int initialRowCnt = rows.size();
希望这有帮助