有一个带有多行的表格。
我正在使用sccSelector定位此表格的元素。
WebElement myElement = driver.findElement(By.cssSelector...........);
这个元素属于某个表格行,假设是第五行。我如何获取这一行的编号?
int myElementRowNumber = ???
有一个带有多行的表格。
我正在使用sccSelector定位此表格的元素。
WebElement myElement = driver.findElement(By.cssSelector...........);
这个元素属于某个表格行,假设是第五行。我如何获取这一行的编号?
int myElementRowNumber = ???
使用rows = myElement.findElement(By.xpath("ancestor::table[1]"))
来定位表格。然后可以使用table.findElements(By.xpath("./tbody/tr"))
获取所有行。
使用另一个row = myElement.findElement(By.xpath("ancestor::tr[1]"))
获取行元素。
现在它就很简单了:
int myElementRowNumber = rows.indexOf( row );
public String rowNo(String value)
{
WebElement table =driver.findElement(By.id("tableId"));
WebElement tbody=table.findElement(By.tagName("tbody"));
List<WebElement> rows=tbody.findElements(By.tagName("tr"));
ArrayList<String> ListOdIds=new ArrayList<>();
String rowNo="";
for(int i=0;i<rows.size();i++)
{
WebElement row = tbody.findElement(By.xpath("//table[@id='tableId']/tbody/tr["+(i+1)+"]"));
if(row.getText().trim().contains(value))
{
rowNo=Integer.toString(i+1);
break;
}
}
return rowNo;
}
JavascriptExecutor js = (JavascriptExecutor) driver;
int myElementRowNumber = js.executeScript("return arguments[0].cellIndex;",myElement);