该项目主要面向经常需要抢购火车票的个人用户,特别是春运、节假日等高峰期。适用于以下场景:
· 个人出行:帮助用户自动完成车次筛选、余票监控、一键下单,避免手动抢票的繁琐和延误。
· 差旅服务:可作为小型企业或团队内部工具,为员工提供自动化的车票预订支持。
· 票务代购(个人):为有抢票需求的亲友提供辅助,提升抢票成功率。
点击空白处退出提示
该项目主要面向经常需要抢购火车票的个人用户,特别是春运、节假日等高峰期。适用于以下场景:
· 个人出行:帮助用户自动完成车次筛选、余票监控、一键下单,避免手动抢票的繁琐和延误。
· 差旅服务:可作为小型企业或团队内部工具,为员工提供自动化的车票预订支持。
· 票务代购(个人):为有抢票需求的亲友提供辅助,提升抢票成功率。
· 一键启动:运行脚本后自动打开12306,跳过开屏广告。
· 灵活配置:通过对话框交互设置日期、车次类型、出发时段、座位偏好、票种。
· 智能筛选:自动选择指定日期,设置车次类型(高铁/动车/普通车)、车组(复兴号/智能动车等)、席别(硬座/硬卧/软卧)及出发时间段。
· 循环抢票:遍历所有车票,对每张票尝试预订用户指定的座位,直到成功或全部检查完毕。
· 无票自动重试:检测到无票提示后,返回桌面并重新开始新一轮抢票。
· 自动下单:抢到票后自动选择乘车人、提交订单,并尝试进入支付页面(支付需手动完成密码)。
· 日志输出:实时输出操作日志,方便用户监控进度和调试。
---
技术栈
· 开发工具:Auto.js 6.0
· 核心技术:Android无障碍服务、控件识别、坐标定位、图像比对、HTTP请求(用于调用外部API)
· 运行环境:Android 7.0以上(已适配主流分辨率)
核心实现思路
1. 应用自动化启动与权限管理
利用Auto.js的auto.waitFor()确保无障碍服务开启,自动启动12306官方App并跳过开屏广告,确保主界面稳定。
2. 用户交互式配置
通过弹窗交互获取用户输入的日期、车次类型、出发时间段、座位偏好(硬座/硬卧/软卧)及票种(成人/学生),实现灵活配置。
3. 智能筛选与车次定位
模拟点击进入查询页,通过控件text()筛选指定日期,利用swipe滑动使筛选选项可见,然后通过文本或坐标点击完成高级筛选(车次类型、车组、席别、出发时段)。
4. 票列表遍历与余票检测
在查询结果页面,按票高度循环点击每张车票,进入详情页后优先通过text(“预定”)查找可用席位,若未找到则利用预设的座位Y坐标精准点击“预定”按钮,避免误点“候补”。
5. 订单自动提交
抢到票后,自动进入订单确认页,通过控件ID或坐标完成乘车人选择、票种确认、提交订单、立即支付等步骤。同时集成了支付方式选择(微信/支付宝)和确认支付操作(密码除外)。
6. 防封与异常处理
加入了随机延时、滑动间隔、重试机制,模拟人类操作行为;当检测到无票文本(如“很抱歉,没有符合筛选条件的车次”)时,自动返回桌面并进入下一轮循环。




评论