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

如何从MSSQL表读取数据生成列表,修复for循环仅调用最后一条记录的问题

问题根因
  1. 缩进逻辑错误:你将搜索、点击的业务逻辑全部写在了for循环之外,for循环内部仅重复给searchInput变量赋值,循环执行完毕后searchInput只会保留最后一条记录的值,后续的搜索操作自然仅针对最后一条记录运行。
  2. 返回值格式处理错误:cursor.fetchall()返回的每一行是元组类型,哪怕仅查询一个字段,返回结果格式也是(订单号,),直接将元组传入输入框会存在格式异常。
修正后的代码
from typing import List, Any
# 前面的数据库连接逻辑保持不变
curr = conn.cursor()
sql = """ select order# from Orders WHERE STATUS <> 'Shipped' and STATUS <> 'Not Found' and order# > '' """
curr.execute(sql)
row: List[Any] = curr.fetchall()
# 所有需要逐行执行的逻辑都缩进在for循环内部
for x in row:
    # 从元组中取出第一个元素,就是你要的订单号
    searchInput = x[0]
    serchinput_textbox = driver.find_element_by_id("searchInput")
    # 每次输入前先清空输入框,避免上一次的内容残留
    serchinput_textbox.clear()
    serchinput_textbox.send_keys(searchInput)
    searchbutton = driver.find_element_by_id("searchButton")
    searchbutton.click()
注意事项
  • 严格对齐for循环的缩进:所有需要对每条订单执行的操作都要放在for循环的缩进块内
  • 如果查询的是多字段,可以通过下标x[0]/x[1]分别取对应字段的值
  • 建议增加页面加载等待逻辑,避免点击搜索后页面还没加载完就执行下一次查询,导致元素找不到报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:36:01