Bom dia,
Estou tentando capturar a quantidade de Regsitros de uma tabela, pesquisei na web achei atá uma resposta no próprio site da Alura porém não funcionou, estou usando Selenium juntamente com o Java, segue a primeira forma que tentei mas não deu certo:
A primeira forma que tentei:
List<WebElement> trs = navegador.findElements(By.cssSelector("body > form > table:nth-child(19) > tbody > tr > td.centercoltext > table:nth-child(7) > tbody > tr > td > table:nth-child(1) > tbody > tr:nth-child(2) > td > div > table > tbody"));
for (WebElement tr : trs) {
List<WebElement> tds = tr.findElements(By.tagName("td"));
System.out.println(tds.size());
}
A segunda forma:
WebElement tabela = navegador.findElement(By.xpath("/html/body/form/table[3]/tbody/tr/td[2]/table[6]/tbody/tr/td/table[1]/tbody/tr[2]/td/div/table/tbody/tr[1]/td[1]/input"));
List<WebElement> rows = tabela.findElements(By.tagName("tr"));//
int qtd = rows.size();
System.out.println("Quantidade de Linhas - " +qtd / 2);
Tentei fazer um loop testando linha por linha da tabela , verificando se existia cada linha, porém dar o erro NoSuchElementException, como ele retorna um boolean eu pensei que não era para ocorrer esse erro
int i = 0;
String registro = "/html/body/form/table[3]/tbody/tr/td[2]/table[6]/tbody/tr/td/table[1]/tbody/tr[2]/td/div/table/tbody/tr["+i+"]/td[1]/input";
boolean estado = navegador.findElement(By.xpath(registro)).isDisplayed();
while(estado){
i++;
registro = "/html/body/form/table[3]/tbody/tr/td[2]/table[6]/tbody/tr/td/table[1]/tbody/tr[2]/td/div/table/tbody/tr["+i+"]/td[1]/input";
System.out.println(registro);
}
Eu tentei o isDisplayed(), mas existe outro método que faça o teste de um elemento existe sem retornar o erro?