使用auto.js实现自动化每日打卡

本文介绍了如何使用auto.js或autox.js在安卓手机上实现自动化每日打卡。通过电脑VSCode连接手机,编写并调试脚本,解决因手动打卡带来的不便。文中提到了一些可能遇到的问题,如组件状态相同需写死坐标,以及clickable属性不可用时的解决方法。
摘要由CSDN通过智能技术生成

使用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上的保存到所有设备,刚才电脑上的代码就同步到手机啦。点击插件的运行按钮就可以看到运行的全过程。

对于脚本的编写和操作也有大把的教程,我只是作为这一个需求而写的代码,也没有过多深究,有兴趣的可以自己去学习。这里只说一下我遇到的一些问题。

  1. 当一个页面的组件状态有两个是一样的,就需要通过写死坐标来点击了。手机开启开发人员选项中的“指针位置”就可以清楚的看到当前手指触摸的位置坐标啦。
  2. 有的时候按钮的clickable属性不可用,可以试试click(“需要点击的文字”),会有奇效。

最后,写完的脚本可以利用auto.js的“打包应用”进行打包和分发了。

最后的最后,奉上代码:

auto()
auto.waitFor();
console.show(true);//打开控制台
console.log("i轻工大自动打卡脚本");
console.log
  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
京东自动打卡需要模拟用户的行为,需要使用自动化测试工具Selenium和WebDriver。Selenium可以模拟浏览器行为,WebDriver则是Selenium的驱动程序,可以控制浏览器的行为。下面是一个使用Selenium和WebDriver实现京东自动打卡的示例代码: ```javascript const { Builder, By, Key, until } = require("selenium-webdriver"); require("chromedriver"); (async function example() { let driver = await new Builder().forBrowser("chrome").build(); try { // 打开京东登录页面 await driver.get("https://passport.jd.com/new/login.aspx"); // 等待页面加载完成 await driver.wait(until.titleContains("京东"), 1000); // 输入账号和密码 await driver.findElement(By.id("loginname")).sendKeys("your_username"); await driver.findElement(By.id("nloginpwd")).sendKeys("your_password"); await driver.findElement(By.id("nloginpwd")).sendKeys(Key.ENTER); // 等待登录完成 await driver.wait(until.titleContains("京东"), 5000); // 进入京东打卡页面 await driver.get("https://clock.jd.com/"); // 等待页面加载完成 await driver.wait(until.titleContains("京东打卡"), 1000); // 点击打卡按钮 await driver.findElement(By.id("clockInBtn")).click(); // 等待打卡完成 await driver.wait(until.elementLocated(By.className("clock-in-log")), 5000); // 打印打卡结果 let result = await driver.findElement(By.className("clock-in-log")).getText(); console.log(result); } finally { await driver.quit(); } })(); ``` 在代码中,我们使用了Selenium和WebDriver来模拟用户行为,先打开京东登录页面,输入账号和密码,然后进入京东打卡页面,点击打卡按钮,等待打卡完成后,获取打卡结果并打印出来。 请注意,使用自动化工具进行自动打卡可能会违反京东的用户协议和使用规则,建议谨慎使用,否则可能会被京东封号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值