You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java Selenium提取并验证网页表格金额列排序

Java Selenium 提取表格金额列并验证排序

以下是实现提取目标网页表格金额列、输出顺序列表并验证排序逻辑的完整代码和说明:

步骤说明

  • 初始化ChromeDriver并打开目标页面
  • 定位表格的金额列(目标页面中金额列是第4列)
  • 遍历所有数据行,提取金额文本并转换为可比较的数值
  • 输出原始顺序的金额列表
  • 验证列表是否为升序或降序排列

完整代码

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class TableSortValidation {
    public static void main(String[] args) {
        // 设置ChromeDriver本地路径(根据你的实际配置调整)
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        
        WebDriver driver = new ChromeDriver();
        driver.get("https://sakshingp.github.io/assignment/home.html");
        driver.manage().window().maximize();

        // 定位表格所有数据行(跳过表头行)
        List<WebElement> rows = driver.findElements(By.xpath("//table[@id='transactionsTable']/tbody/tr"));
        List<Double> originalAmounts = new ArrayList<>();

        // 提取并处理金额列数据
        for (WebElement row : rows) {
            // 定位当前行的第4个td(金额列)
            String amountText = row.findElement(By.xpath("./td[4]")).getText();
            // 清理格式:去掉$符号和逗号,转换为Double类型
            double amount = Double.parseDouble(amountText.replace("$", "").replace(",", ""));
            originalAmounts.add(amount);
        }

        // 输出原始顺序的金额列表
        System.out.println("原始顺序的金额列表:");
        for (double amount : originalAmounts) {
            System.out.println(amount);
        }

        // 验证排序类型
        List<Double> sortedAsc = new ArrayList<>(originalAmounts);
        Collections.sort(sortedAsc);
        List<Double> sortedDesc = new ArrayList<>(originalAmounts);
        Collections.sort(sortedDesc, Collections.reverseOrder());

        if (originalAmounts.equals(sortedAsc)) {
            System.out.println("\n金额列按升序排列");
        } else if (originalAmounts.equals(sortedDesc)) {
            System.out.println("\n金额列按降序排列");
        } else {
            System.out.println("\n金额列未按升序或降序排列");
        }

        driver.quit();
    }
}

关键细节说明

  • 金额格式处理:目标页面金额为$1,234.56格式,必须移除$和逗号才能转换为数值,否则会触发NumberFormatException
  • 行定位逻辑:用tbody/tr定位数据行,避免误取表头行
  • 排序验证方式:通过复制原始列表并分别做升序、降序排序,再与原列表对比,判断当前表格的排序类型

内容的提问来源于stack exchange,提问作者Lakshay Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 03:16:25