Files
tsp_v_onlinetime_pa/plans/login_fix_plan.md

1.9 KiB
Raw Blame History

VIN 批量查询爬虫 - 登录修复计划

问题分析

当前错误

  • 登录过程出错,错误信息为空
  • 截图已保存login_error.png
  • 错误堆栈显示 Selenium 无法找到元素或页面加载异常

根本原因

  1. 页面加载等待不足:登录页面可能需要更长时间加载
  2. 元素定位不准确CSS 类名或 XPath 可能已变化
  3. 验证码处理逻辑:验证码输入后可能需要额外等待
  4. 登录结果检测不准确:仅检查错误提示,未验证登录成功

修复方案

1. 优化页面加载等待

  • 使用 EC.presence_of_element_located 等待登录表单
  • 增加显式等待时间30秒
  • 添加页面加载完成检测

2. 改进元素定位策略

  • 使用多种定位方式组合class、name、placeholder
  • 添加容错机制,当一种定位失败时尝试其他方式
  • 使用更稳定的 XPath 表达式

3. 完善验证码处理

  • 自动检测验证码是否存在
  • 保存验证码截图供人工识别
  • 添加验证码输入后的确认等待

4. 增强登录结果验证

  • 检查 URL 是否跳转到首页
  • 检查是否存在登出按钮或用户头像
  • 检查页面元素是否消失(登录表单)

5. 错误处理和日志

  • 添加详细的错误日志
  • 保存错误截图
  • 提供重试机制

具体修改点

修改 login() 方法

  1. 增加页面加载等待
  2. 改进元素定位逻辑
  3. 完善验证码处理
  4. 增强登录结果验证
  5. 添加详细日志

修改 wait_for_query_page() 方法

  1. 优化页面检测逻辑
  2. 添加手动干预选项

修改 main() 函数

  1. 添加配置验证
  2. 改进错误处理流程

测试计划

  1. 单独测试登录功能
  2. 测试验证码处理流程
  3. 测试批量查询功能
  4. 测试完整流程

预期结果

  • 登录成功率提升至 95% 以上
  • 自动处理验证码或提示人工输入
  • 批量查询稳定运行
  • 错误处理更加完善