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

如何使用Selenium Java点击下一页按钮抓取所有页面的公司名称

Selenium 全分页抓取公司名称逻辑完善方案

你现有代码的核心问题是仅能抓取第一页数据,点击下一页后没有循环执行后续页面的抓取逻辑,同时缺少页面加载等待、异常兼容处理,运行时容易出现各类元素定位报错。

以下是完善后的可运行代码:

@Test(priority=2)
public void fetchdata() {
    // 建议把抓取到的公司名统一存储,方便后续处理
    java.util.List<String> allCompanyNames = new java.util.ArrayList<>();
    // 显式等待实例,全局通用,超时时间可根据页面加载速度调整
    WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
    
    while(true) {
        // 等待当前页公司名元素加载完成,建议替换为带类名/属性的相对路径XPath,稳定性更高
        By companyLocator = By.xpath("/html/body/div[3]/div[2]/div/div/div/div[1]/div[1]/h3/a/div");
        wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(companyLocator));
        java.util.List<WebElement> companyNameList = driver.findElements(companyLocator);
        
        // 遍历提取公司名
        for (WebElement company : companyNameList) {
            String name = company.getText().trim();
            System.out.println(name);
            allCompanyNames.add(name);
        }
        
        // 判断是否存在可点击的下一页按钮
        try {
            WebElement nextBtn = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[text()='Next']")));
            // 点击下一页前先记录当前页的任意一个元素,用于判断页面是否跳转完成
            WebElement pageFlag = companyNameList.get(0);
            nextBtn.click();
            // 等待旧页面元素失效,确认页面已经跳转到下一页
            wait.until(ExpectedConditions.stalenessOf(pageFlag));
        } catch (TimeoutException | NoSuchElementException e) {
            // 下一页按钮不存在/不可点击,说明已经到最后一页,终止循环
            break;
        }
    }
    
    // 所有页面抓取完成后可以在这里统一处理收集到的allCompanyNames
    System.out.println("共抓取到公司数量:" + allCompanyNames.size());
}

核心优化说明

  • 新增while循环持续执行「抓取当前页数据→判断下一页状态→跳转下一页」的流程,直到没有可点击的下一页按钮时自动终止,实现全量分页数据抓取
  • 加入显式等待逻辑,覆盖元素加载、下一页可点击、页面跳转完成三个核心等待节点,完全避免页面未加载完成导致的各类元素异常
  • 建议将原有的绝对路径XPath替换为带类名、属性的相对路径XPath,页面结构小幅度变动时不会定位失败
  • 增加异常捕获兼容逻辑,到最后一页没有下一页按钮时会自动结束抓取,不会抛出异常中断用例
  • 新增统一存储容器保存所有抓取到的公司名称,方便后续的导出、校验等操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:36:01