如何使用 Selenium 查找表格中的特定行?

seleniumautomation testingtesting tools更新于 2026/2/12 9:52:17

我们可以使用 Selenium webdriver 查找表格中的特定行。HTML 文档中的表格由 <table> 标签标识。每个表格包含一个表示行的 <tr> 标签和一个表示列的 <td> 标签。要遍历表格的行和列,我们使用 findElements() 方法。

要计算表格中的总行数,我们使用 list − 的 size() 方法。

List <WebElement> l=driver.findElements(By.tagName("tr"));
int s= l.size();

为了计算表格中的总列数,我们使用 list 的 size() 方法 −

List <WebElement> m=driver.findElements(By.tagName("td"));
int t= m.size();

我们考虑下表,并获取 TYPE 中 AUTOMATION TOOL 为 UFT 的值。

表格的 HTML 结构如下所述 −

示例

代码实现。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class TableHandling{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      String url = " https://sqengineer.com/practice-sites/practice-tables- selenium/";
      driver.get(url);
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      // 识别表格
      WebElement mytable = driver.findElement(By.xpath("//table[@id='table1']/tbody"));
      //识别表格的行。
      List<WebElement> r_table = mytable.findElements(By.tagName("tr"));
      String b_xpath = "//table[@id='table1']/tbody/tr[";
      String a_xpath = "]/td[1]";
      //使用 size() 计算行数
      int rs_c = r_table.size();
      //迭代表格行并检查匹配条件
      for (int r = 2;r <= rs_c; r++) {
         String n = driver.findElement(By.xpath(b_xpath + r + a_xpath)).getText();
         if(n.contains("UFT")){
            // 获取匹配单元格的文本
            String                   celtxt=driver.findElement(By.xpath("//table[@id='table1']/tbody/tr["+r+"]/td[2]")).getText();
            System.out.println("The cell data at particular row is:" + celtxt);
            break;
         }
      }
      driver.quit();
   }
}

输出


相关文章