selenium - descargar - ¿Cómo encontrar líneas específicas en una tabla usando Selenio?
selenium tutorial (5)
Aquí hay un código de ejemplo:
<div id="productOrderContainer">
<table class="table gradient myPage">
Entonces, esta tabla que está en productOrderContainer tiene varias columnas y, dependiendo de varias cosas, tendrá varias filas que tienen varias columnas. Un ejemplo es:
Lo que quiero hacer es, por ejemplo, obtener la primera fila de esta tabla. (las filas tienen identificadores como: <td rowspan="1">
) Y luego nuevamente, por ejemplo, en este rowspan, busque un valor específico en un <div>
específico
Entonces en psudo-código lo que quiero decir es:
Dame la mesa, consígueme la n-ésima fila, dame el valor en <div id=''something''>
Bien anteriormente, utilicé el enfoque que puedes encontrar dentro de WebElement
:
WebElement baseTable = driver.findElement(By.tagName("table"));
WebElement tableRow = baseTable.findElement(By.xpath("//tr[2]")); //should be the third row
webElement cellIneed = tableRow.findElement(By.xpath("//td[2]:));
String valueIneed = cellIneed.getText();
Tenga en cuenta que encuentro dentro de la instancia WebElement
encontrada.
Lo anterior es código Java, suponiendo que la variable del driver
es una instancia saludable de WebDriver
Usted quiere:
int rowNumber=...;
string value = driver.findElement(By.xpath("//div[@id=''productOrderContainer'']/table/tbody/tr[" + rowNumber +"]/div[id=''something'']")).getText();
En otras palabras, ubique <DIV>
con el id "algo" contenido dentro de rowNumber
th <TR>
de <TABLE>
contenido dentro de <DIV>
con el id "productOrderContainer", y luego obtenga su valor de texto (que es lo que Creo que quieres decir con "me da el valor en <div id=''something''>
"
puedes intentar seguir
int index = 0;
WebElement baseTable = driver.findElement(By.className("table gradient myPage"));
List<WebElement> tableRows = baseTable.findElements(By.tagName("tr"));
tableRows.get(index).getText();
También puede iterar sobre las tablas para realizar cualquier función que desee.
(.//*[table-locator])[n]
donde n
representa la línea específica.
si quieres acceder a la celda de la tabla
WebElement thirdCell = driver.findElement(By.Xpath("//table/tbody/tr[2]/td[1]"));
Si desea acceder a la celda de la tabla anidada -
WebElement thirdCell = driver.findElement(By.Xpath("//table/tbody/tr[2]/td[2]"+//table/tbody/tr[1]/td[2]));
Para más detalles visita este Tutorial