Una tabla web dinámica es un tipo de tabla web donde el número de filas y columnas no es constante, cambian de vez en cuando según los requisitos o según la consulta, es decir, el número de filas y columnas NO es fijo.
Ejemplo de tabla HTML
Tabla Dinámica
La siguiente tabla es una tabla web dinámica y el código HTML para la tabla. Esta tabla no contiene ni siquiera una disposición de filas y columnas, ya que la última fila tiene solo dos columnas, pero la otra tiene 4 columnas.
HTML
<html> <head> <style></style> </head> <body> <table name="Table"> <tr> <th>BookName</th> <th>Author</th> <th>Subject</th> <th>Price</th> </tr> <tr> <td>Learn Selenium</td> <td>John</td> <td>Selenium</td> <td>100</td> </tr> <tr> <td>Learn Java</td> <td>Joey</td> <td>Java</td> <td>500</td> </tr> <tr> <td>Learn JS</td> <td>Chandler</td> <td>Javascript</td> <td>700</td> </tr> <tr> <td>Master In Selenium</td> <td>Ross</td> <td>Selenium</td> <td>1000</td> </tr> <tr> <td>Master In Java</td> <td>Mike</td> <td>JAVA</td> <td>2000</td> </tr> <tr> <td>Master In JS</td> <td>Rachel</td> </tr> </table> </body> </html>
Guarde el código como «.html», luego obtendrá una tabla HTML como la siguiente.
Ejemplo para buscar no. de filas y columnas de tabla dinámica
El principal problema que ocurre al trabajar con la tabla dinámica es que no podemos predecir el número de filas y columnas. Entonces, en este ejemplo, usaremos el controlador web Selenium para encontrar la cantidad de filas y columnas. Para calcular el número de filas y columnas, requerimos el Xpath de la tabla web.
Encuentre la ruta X de la tabla:
Vaya al sitio web, haga clic con el botón derecho en la tabla y seleccione inspeccionar y copiar la ruta x.
X-Path para columnas:
/html/cuerpo/tabla/tbody/tr[1]/th
X-Path para Filas:
/html/cuerpo/tabla/tbody/tr/td[1]
Programa
Java
import java.util.List; import org.openqa.selenium.WebElement; import org.openqa.selenium.By; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class Geeks { @Test public void geeksforgeeks(){ System.setProperty("webdriver.chrome.driver","C:\\Users\\ADMIN\\Documents\\chromedriver.exe"); ChromeDriver driver = new ChromeDriver(); // Maximize the browser driver.manage().window().maximize(); // Launch Website driver.get("file:///C:/Users/ADMIN/Desktop/table.html"); // Number of columns List <WebElement> col = driver.findElements(By.xpath("/html/body/table/tbody/tr[1]/th")); System.out.println("No of columns : " +col.size()); // Number of rows List <WebElement> rows = driver.findElements(By.xpath("/html/body/table/tbody/tr/td[1]")); System.out.println("No of rows : " + rows.size()); driver.close(); } }
Explicación del código:
Declaramos el objeto webdriver de selenium como «controlador» y lo inicializamos en el controlador de cromo, y usamos la lista ‘List<webelement>’ del tipo de datos del elemento web para encontrar el número de columnas y filas.
Para configurar el controlador Chrome usando Selenium, consulte este artículo Cómo abrir el navegador Chrome usando Selenium en Java
Producción: