Files
tsp_v_onlinetime_pa/plans/login_fix_plan.md

72 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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% 以上
- 自动处理验证码或提示人工输入
- 批量查询稳定运行
- 错误处理更加完善