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

Selenium Python:从数组索引2开始向文本框数组输入内容

解决方案

核心需求很明确:通过CLASS_NAME定位到5个文本框,跳过前2个,将['YES', 'NO', 'IDK']依次填入第3、4、5个文本框(对应索引2、3、4)。

你之前代码的问题

  • 嵌套循环逻辑混乱:每次遍历投票选项时都重新定位所有文本框,还给每个框都输入当前选项,导致所有文本框会被重复赋值
  • 变量i完全没用,既没参与索引定位,也没控制循环逻辑

正确代码实现

方法一:通过索引对应

# 一次性获取所有CLASS_NAME为formCTRL的文本框
all_textboxes = driver.find_elements(By.CLASS_NAME, 'formCTRL')
voting_options = ['YES', 'NO', 'IDK']

# 遍历投票选项,对应到后三个文本框
for idx in range(len(voting_options)):
    # 文本框索引从2开始,和投票选项索引一一对应
    all_textboxes[2 + idx].send_keys(voting_options[idx])

方法二:用zip配对(更简洁)

直接把需要输入的文本框切片出来,和投票选项一一配对输入:

all_textboxes = driver.find_elements(By.CLASS_NAME, 'formCTRL')
voting_options = ['YES', 'NO', 'IDK']

# 取后三个文本框,和选项逐一配对输入
for textbox, option in zip(all_textboxes[2:], voting_options):
    textbox.send_keys(option)

关键注意点

  • 必须确保driver.find_elements返回的元素顺序和页面上文本框的显示顺序完全一致,这是定位的基础
  • 如果页面加载较慢,建议添加显式等待(比如WebDriverWait),等所有文本框加载完成后再执行定位操作,避免出现元素未找到的异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:13:14