使用auto.js实现自动化每日打卡功能
作者:草莓味的屁 发布时间:2024-04-16 08:47:38
使用auto.js实现自动化每日打卡
疫情原因,需要在家每天定时打卡,每天刚起床的时候避免不了出现注意力不集中或者是看不到app,点不到按钮什么的(我瞎说的)。
所以,就想搞一个自动化操作的东西,省去了这劳神费力的每日打卡。
说干就干,于是乎就想起了之前双十一写的叠猫猫的无障碍脚本,所以这个还是不在话下的。
用到的工具库:auto.js
因为auto.js需要依赖安卓手机上的无障碍操作。所以目前只支持安卓手机并且需要在安卓6.0以上,这个官方网站都有详细介绍,我就不在此过多赘述了。多说一下,这个auto.js作者在19年的时候就不在维护了,所以我选择的另一个接手auto.js的库:autox.js,他们两个都是大同小异的,用哪一个也不影响啦。
实际操作
首先需要保证电脑和手机在同一网络下,并且电脑上安装vscode,搜索插件“auto.js”去安装。你也可以在手机上编辑代码,但是这样实在是不方便。安装完成后按下“cmd+shift+P”,输入“auto”,下面列表里会出现相关设置,点击"开启服务",即可在电脑上编辑auto.js代码.
手机上需要打开设置点击“连接到电脑”,输入电脑ip,即可在电脑端看到新设备连接的提示。(注意必须首先要在电脑选择开启服务后才能连接)
接下来就可以利用手机端的auto.js对各个页面进行调试以及布局分析了。
写好代码以后点击vscode上的保存到所有设备,刚才电脑上的代码就同步到手机啦。点击插件的运行按钮就可以看到运行的全过程。
对于脚本的编写和操作也有大把的教程,我只是作为这一个需求而写的代码,也没有过多深究,有兴趣的可以自己去学习。这里只说一下我遇到的一些问题。
当一个页面的组件状态有两个是一样的,就需要通过写死坐标来点击了。手机开启开发人员选项中的“指针位置”就可以清楚的看到当前手指触摸的位置坐标啦。
有的时候按钮的clickable属性不可用,可以试试click(“需要点击的文字”),会有奇效。
最后,写完的脚本可以利用auto.js的“打包应用”进行打包和分发了。
最后的最后,奉上代码:
auto()
auto.waitFor();
console.show(true);//打开控制台
console.log("i轻工大自动打卡脚本");
console.log("version--------1.1");
console.log("autuer---zhaosheng");
app.launch('io.cordova.zhqy')
console.log("已打开app");
sleep(5000);
//点击应用服务
var fuwu = text("应用服务").findOnce();
fuwu.click();
console.log("选择应用服务");
sleep(2000)
console.log("点击疫情防控");
click("疫情防控")
sleep(2000)
// 2.居家学习
className("android.view.View").depth(11).desc("home").findOne().click();
console.log("点击居家学习");
// id("home").findOne().click()
sleep(1500)
//健康日报
// click(222,945)
console.log("点击健康日报");
click("健康日报")
sleep(2000)
//选择当前日期
// 1.获取当天日期
console.log("计算当前日期");
var myDate = new Date();
let day = myDate.getDate(); //对应页面数字
if(day < 10){
day = "0"+day
console.log("当前为:"+day);
}
// alert(day)
click(day)
console.log("点击立即打卡");
click("立即打卡")
sleep(3000)
click("点击获取当前位置")
sleep(2000)
click(244,2130)
sleep(3000)
swipe(550,1925,550,465,2000)
swipe(550,1925,550,465,2000)
sleep(2000)
click(493,2095)
sleep(2000)
click(764,1638)
来源:https://blog.csdn.net/weixin_44555878/article/details/119593142
猜你喜欢
- 目标:创建一个字典,记录几对python词语,使用OrderedDict类来写,并按顺序输出。写完报错:[root@centos7 tmp]
- 前言 在我们学习C语言时,我们学了
- @property作用:python的@property是python的一种装饰器,是用来修饰方法的。我们可以使用@property装饰器来
- Python2.7已于2020年1月1日开始停用,之前RF做自动化都是基于Python2的版本。没办法,跟随时代的脚步,我们也不得不升级以应
- # coding:utf-8 import os import sys def cut_and_paste_file(source, des
- 首先我们知道python通过pip安装,那么我们安装的所有东西都会在我们pip下的配置目录下,这会显得非常臃肿,同样也让我们部署艰难。pyt
- Python命令行假设你已经安装好了Python, 那么在Linux命令行输入:$python将直接进入python。然后在命令行提示符&g
- 关于MySQL8的WITH查询学习前言:对于逻辑复杂的sql,with可以大大减少临时表的数量,提升代码的可读性、可维护性MyS
- 存储文件的重要一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,。 默认数据是加载到
- 数据类型:定义列中可以存储什么数据以及该数据实际怎样存储的基本规则。数据类型用于以下目的:1、允许限制可存储在列中的数据。如:数值数据类型列
- PyGame是一个Python的库,能够让你更容易的写出一个游戏。它提供的功能包括图片处理和声音重放的功能,并且它们能很容易的整合进你的游戏
- 我们首先来看下全部代码:# -*- coding: cp936 -*- import win32serviceutil import win
- 1. 安装 docker在 WSL2 中安装 docker https://www.jb51.net/article/223179.htm会
- 1.客户端的主页面:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"
- 这几天要折腾mysql服务器,所以在网上搜罗了一些维护策略,然后自己总结实验,下面是我的总结经验和别人的一些建议。日志类型:MySQL有几个
- 一、问题在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中
- 内容摘要:最近在做项目的时候,客户要求表格里的数据可以拖选,于是用JS写了个下面的方法。支持IE、FIREFOX等浏览器。实现对整行、整列数
- MySQL中group_concat函数,完整的语法如下:group_concat([DISTINCT] 要连接的字段 [Order BY
- 提要:作为普通的Python开发者来讲,深入理解object、type不是必要的,但了解他们确实元编程这个词很多朋友都听过,可能用的却不多。
- 主要介绍了SQL删除语句DROP、TRUNCATE、 DELETE 的区别,帮助大家更好的理解和学习sql语句,感兴趣的朋友可以了解下DRO