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

使用Selenium下载文件翻页后如何重置遍历循环计数

实现翻页后重置遍历计数的解决方案

原有代码使用固定范围的for循环无法灵活重置遍历计数,替换为手动控制变量的while循环即可满足需求,修改后代码如下:

import time
from selenium.common.exceptions import NoSuchElementException

# 初始化遍历计数、当前页码、最大翻页上限(可按需调整,防止死循环)
x = 1
current_page = 1
max_allow_page = 20

while current_page <= max_allow_page:
    try:
        xpath = f'//*[@id="ctl00_CPH_Main_ctl00_RadGridFacturen_ctl00__{x}"]/td[10]/input'
        time.sleep(2)
        driver.find_element_by_xpath(xpath).click()
        # 找到元素后计数+1,继续遍历当前页下一个
        x += 1
    except NoSuchElementException:
        print('当前页元素遍历完毕,尝试跳转下一页')
        try:
            nextPage = driver.find_element_by_xpath('//*[@id="ctl00_CPH_Main_ctl00_RadGridFacturen_ctl00"]/tfoot/tr/td/table/tbody/tr/td/div[3]/input[1]')
            nextPage.click()
            # 翻页后重置遍历计数,从新页第1个元素开始
            x = 1
            current_page += 1
            # 预留页面加载时间,可根据网络情况调整
            time.sleep(3)
        except NoSuchElementException:
            print('已到达最后一页,全部任务执行完成')
            break

核心逻辑说明

  • 替换固定范围的for循环为while结构,自行控制遍历计数变量和页码变量的更新
  • 每次触发当前页元素找不到的异常时,先执行翻页操作,翻页成功后直接将遍历计数x重置为1,即可实现新页面从第1个元素开始遍历
  • 新增下一页按钮不存在的异常捕获,到达最后一页时自动终止程序,避免进入死循环
  • 新增最大翻页上限参数,可根据实际业务需要调整,进一步规避死循环风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:09:02