之前还是深度学习服务器和数据库,怎么这里就变成script kiddie了?————原来是上班了啊
是谁合同没签工资没发十点半被电话叫醒干活?
概要和需求
一共有30个单位,每一个单位有50个中奖名额,未中奖需要提示“祝你长命百岁”而不是简单的“可惜”。
在这里使用了叫做“抽奖助手”的微信小程序,但微信OS过于臃肿,且该小程序在PC端会白屏,因此使用Auto.js自动完成填写内容。
使用 Samsung S20 运行,复制粘贴部分使用微软三星跨设备剪贴板操作。
开始
Auto.js 基础
这就是个无障碍服务用js的套壳,因此没啥特殊的东西。
auto.waitFor()
toast("running");
var height = device.height;
var width = device.width;
等待无障碍服务,发送running的toast,并定义屏幕宽高变量用于划屏幕,定义基础内容
判断页面
var change_pic = text("更换图片").findOnce();
if (change_pic ) {
//这里是代码主体部分,是下面一章节的内容
}
else {
toast("未检查到页面");
exit();
}
通过页面上有没有"更换图片"的文字按钮判断页面。微信是个很可怕的软件,说不定就因为没有判断页面,戳一戳了领导。
主体内容
更换banner图片
change_pic.click(); //点击更换图片按钮
sleep(1500);
click(150, 1460) //当然是从相册选择
sleep(1500);
click(235, 283) //选中左上角最新图片
sleep(1500);
click(970, 138) //右上角确认
sleep(1500);
click(537, 2302) // 裁剪
至此banner图片更换完成。为啥sleep一点五秒?因为小而美微信OS太卡了,有时间缩略图打开要卡好久。
添加奖品
sleep(1500)
click(850, 1850)
sleep(300);
setText("汤臣一品一栋")
click(1004, 2350) //收掉Gboard
sleep(1000);
click(955, 1950)
sleep(300);
setText("1")
click(545, 1640) //收掉微信OS数字键盘
sleep(300);
click(870, 2149) //选择发放方式
sleep(300);
click(587, 2133) //选择填写信息
这一部分是添加一等奖,使用了setText方法,输入了奖品和数量,选择让中奖者自行填写信息。
填写信息内容
sleep(1000);
click(255, 434)
sleep(1000);
click(540, 1553) //点击Gboard剪贴板最近复制
sleep(1000);
click(1004, 2350) //收掉Gboard
sleep(1000);
click(725, 2295)
仅每次抽奖的第一次需要,设置中奖者填写的信息内容,比如“请在下方输入你的工号”,之后选中相同发放方式就不会跳出页面。
翻页并再添加下一等奖项
sleep(1000);
swipe(3, height-500 , 3, height-1460, 1000)
sleep(1300);
click(560, 1350)
swipe(x1,y,x2,y2,t)函数的使用方法:x1为x起点坐标,x2为x终点坐标,y1为y起点,y2为y终点,t为间隔时间。
使用本文章内调试好的坐标值,可以保证与第一个奖品信息的坐标一样,不再设置新坐标。
鼓励奖设置
可以通过简单的循环或者单纯复制黏贴重复上述添加奖品、翻页并再添加下一等奖项操作。但鼓励奖需要使用小程序内的“兑换码”功能。
sleep(300);
click(700, 1710) //点击“兑换码”表明该礼物是一句话
sleep(200);
click(850, 1850)
sleep(300);
setText("神秘礼物")
click(1004, 2350) //收掉Gboard
sleep(1500);
在这里唯一的区别是多点击了一下兑换码按钮。
开奖设置
swipe(3, height-500 ,3, height-1460, 1000) //下滑一点
sleep(300);
click(855, 1860) //点击“即抽即中”
sleep(300);
swipe(3, height-500 , 3, height -1460, 1000) //再下滑一点
sleep(300);
click(830, 1110)
sleep(300);
setText("50") //人数
click(545, 1640) //收掉微信OS数字键盘
sleep(300);
click(700, 1680) //点击发起人
sleep(3000);
click(311, 868) //选择第二个,会自动确认返回
设置了开奖方式,人数和抽奖公司名。
手动内容
至此,程序内容介绍完毕。需要手动添加以下内容
- 开奖截止日期
- 兑换码一行一句话。例子:共50人,奖品10人,需要40行“重在参与”粘贴进对话框。
- 抽奖详情介绍
- 高级版也需要自己设置启用