¿Cómo manejar tablas web dinámicas usando Selenium WebDriver en Java?

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:

Output

 

Publicación traducida automáticamente

Artículo escrito por allwink45 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *