여러 행이있는 테이블이 있습니다.특정 원소의 행 번호를 얻는 방법 Selenium?
내가 sccSelector
이 요소는 어떤 테이블 행에 속하는WebElement myElement = driver.findElement(By.cssSelector...........);
를 사용하여이 테이블의 요소를 찾는하고,의를 행 5 가 어떻게이 행의 수를 얻을 수 가정 해 봅시다?
int myElementRowNumber = ???
여러 행이있는 테이블이 있습니다.특정 원소의 행 번호를 얻는 방법 Selenium?
내가 sccSelector
이 요소는 어떤 테이블 행에 속하는WebElement myElement = driver.findElement(By.cssSelector...........);
를 사용하여이 테이블의 요소를 찾는하고,의를 행 5 가 어떻게이 행의 수를 얻을 수 가정 해 봅시다?
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;
}
먼저 테이블에서 모든 행을 가져 와서 행에 문자열 값이 들어 있는지 확인합니다. String 값을 포함하는 해당 행의 행 번호를 제공합니다. – Praveen
당신은 JavaScriptExecuter을 사용 할 수 있습니다. 다음 코드는 당신을 위해 작동합니다.
JavascriptExecutor js = (JavascriptExecutor) driver;
int myElementRowNumber = js.executeScript("return arguments[0].cellIndex;",myElement);
나는 당신이 테이블 행에 대해 이야기하고 있다고 가정합니다. 기본적으로 가능하지 않으며 형제 요소에 행 번호가있는 텍스트가 포함되어 있지 않으면 쉽지 않을 것입니다. 그러나 글쓰기에 도움이 필요하면 HTML이 필요합니다. –