自动化篇 | 实现自动化抢茅台超详细过程!( 二 )


2-5 发送信息到群聊中
申购完成后,我们可以将申购结果发送到群聊中
...function send_wx_msg(send_msg){//如果休眠,唤醒设备device.wakeUpIfNeeded()app.launch("**");text("*信").waitFor()text("通讯录").waitFor()sleep(2000)//点击进入到聊天界面var chat_element= id("fzg").text(group_name).findOne();//获取坐标点var chat_element_bounds = chat_element.bounds();click_many_times(chat_element_bounds,id("auj").className("EditText"))sleep(3000)//1--发送消息id("auj").className("EditText").findOne().setText(send_msg)sleep(3000)//发送text("发送").click()sleep(1000)//3- 返回back_to_home()home();exit()}...
3. 申购结果
3-1 打开应用并进入到主页
和上面申购的代码一样
3-2 进入到申购记录列表页面
...function click_desc_element(content,is_wait){//是否需要等待if(is_wait){descContains(content).waitFor();}log("等待元素加载完成,继续点击操作 。。。")//查找元素var buy_element = desc(content).findOne()if(buy_element){click(buy_element.bounds().centerX(), buy_element.bounds().centerY());}}...//点击【个人】Tabclick_text_element("个人",is_wait=false)//点击申购单click_desc_element("申购单",is_wait=true)...
3-3 查询列表元素,获取所有子元素列表,筛选出当天所有申购记录
首先,通过 id 获取页面中的列表控件及其子元素列表
然后,遍历子元素列表,过滤出申购时间为当天的记录
最后,根据满足条件的记录,查询当条申购记录的状态
...//获取所有的item元素var rv_element= id("reservation_rv").findOne()//获取当前日期var current = get_today()console.log("当前日期:",current)//获取下面的所有子元素Itemlet result = ""if(rv_element){var elements = rv_element.children()for(let element of elements){//获取预约时间var time = element.findOne(id("date_time")).text()if(time===current){//获取结果var status =element.findOne(id("draw_status")).text()//品种var title = element.findOne(id("mt_goods_name")).text()console.log("种类:",title,",结果:",status)result+="种类:"+title+",结果:"+status+"\n\n"}}} ...
3-4组装结果,回退到应用首页,并发送群聊
将当天所有的申购结果组装一下,回退到 App 首页,最后发送信息到目标群聊中
3-5 异步
将「 申购」、「 查询结果」两个动作定义为函数,放入到线程中执行,这样就完成了自动化脚本的开发
...//申购function buy_task(){//定义子线程threads.start(function(){log("申购任务 。。。")purchase_buy()})}//查询function result_task(){threads.start(function(){log("查询任务 。。。")purchase_result()})} ...
3-6 发布并安装
脚本开发完成后,在脚本控制台进行脚本发布,编辑产品基本信息后提交审核,审核完成后安装到脚本列表
PS:建议免费发布到私有地址,通过私有地址安装到脚本列表中
4. 参数化及配置
在 在线编辑器中编写完脚本后,就可以将一些参数写入到配置文件中
比如,本例中我们首先添加一个输入框,用于指定群聊的名称;然后添加一个下拉选择框,用于选择执行类型,包含:申购和查询结果