tutorial descargar chrome selenium selenium-webdriver web-testing automated-tests gui-testing

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