首页 > 解决方案 > 如何使用 selenium 处理表

问题描述

处理表格时一头雾水 1.如何点击表格中的复选框 2.如何点击表格中的值 3.如何处理动态和静态表格 4.如何计算行数和列数表中可用

在此处输入图像描述

标签: selenium

解决方案


最通用的方法是使用tagName值为tr和的方法td

@Test 
public void testWebTable()  { 
    WebElement simpleTable = driver.findElement(By.xpath("//span[2]")); 

    // Get all rows 
    List<WebElement> rows = simpleTable.findElements(By.tagName("tr")); 

    // rows count assert and count 
    Assert.assertEquals(rows.size(),4); 
    System.out.println("Total Rows count in table" + rows.size());

    // Print data from each row 
    for (WebElement row : rows) { 
        List<WebElement> cols = row.findElements(By.tagName("td")); 

        // column count assert and count
        Assert.assertEquals(cols.size(),4); 
        System.out.println("Total Column count in each row" + cols.size());

        for (WebElement col : cols) {
            // to select specific column compare its text
             if (col.getText().equals("some text")) {
              col.click(); // assuming td contains check box or link
              col.sendKeys(); // assuming td contains text box
              }
            // print complete table data                 
             System.out.print(col.getText() + "\t"); 

           } System.out.println(); 
       }
    }

同样要单击,您必须WebElement在第二个 for 循环中使用单击。要处理动态表,您必须使用 xpath 轴策略来定位元素,例如将 xpath 写入未更改的静态列,然后使用 xpath 轴方法,如前置、跟随、跟随兄弟等。


推荐阅读