每天帮我定时打开手机上 小渔未来校园App,并点击教职工考勤,点击打卡。时间为每天上午七点四十,十一点四十二,下午一点四十五,五点十分
第 1 条补充
· 15 小时前
帮我写一个脚本
回答
小渔未来校园 App 自动打卡脚本方案
一、脚本代码
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
// 打卡时间点配置(24 小时制,格式:小时:分钟)
var checkInTimes = [
{ hour: 7, minute: 40 },
{ hour: 11, minute: 42 },
{ hour: 13, minute: 45 },
{ hour: 17, minute: 10 }
];
// App 包名(需要在手机上查看实际包名)
var appPackageName = "com.xiaoyu.future.campus"; // 请替换为实际包名
// 启动考勤页面
function openCheckInPage() {
// 启动 App
app.launchApp("小渔未来校园");
sleep(3000);
// 查找并点击"教职工考勤"按钮
// 方法一:通过文本查找
var checkInBtn = text("教职工考勤").findOne(5000);
if (checkInBtn) {
checkInBtn.click();
sleep(2000);
} else {
// 方法二:通过 ID 查找(更稳定)
checkInBtn = className("android.widget.TextView").textContains("考勤").findOne(5000);
if (checkInBtn) {
checkInBtn.click();
sleep(2000);
}
}
// 查找并点击"打卡"按钮
var clockBtn = text("打卡").findOne(5000);
if (clockBtn) {
clockBtn.click();
toastLog("打卡成功");
} else {
// 尝试其他可能的按钮文本
clockBtn = textContains("签到").findOne(5000);
if (clockBtn) {
clockBtn.click();
toastLog("打卡成功");
} else {
toastLog("未找到打卡按钮,请手动检查");
}
}
}
// 检查当前时间是否匹配打卡时间
function shouldCheckIn() {
var now = new Date();
var currentHour = now.getHours();
var currentMinute = now.getMinutes();
for (var i = 0; i < checkInTimes.length; i++) {
var time = checkInTimes[i];
if (currentHour === time.hour && currentMinute === time.minute) {
return true;
}
}
return false;
}
// 主循环
toastLog("自动打卡服务已启动");
while (true) {
if (shouldCheckIn()) {
// 随机延迟 0-30 秒,避免过于精确被识别
var randomDelay = Math.floor(Math.random() * 30000);
sleep(randomDelay);
openCheckInPage();
// 打卡后等待 1 分钟,避免重复执行
sleep(60000);
}
// 每分钟检查一次
sleep(60000);
}
二、定时任务配置(推荐方案)
更稳定的方式是使用 Hamibot 的定时任务功能:
- 在 Hamibot 控制台创建 4 个定时任务
- 分别设置为每天 7:40、11:42、13:45、17:10 执行
- 每个任务运行简化版脚本:
// 文档地址 https://docs.hamibot.com/
auto.waitFor();
// 启动 App
app.launchApp("小渔未来校园");
sleep(3000);
// 点击教职工考勤
var btn = text("教职工考勤").findOne(5000);
if (btn) {
btn.click();
sleep(2000);
}
// 点击打卡
var clockBtn = text("打卡").findOne(5000);
if (clockBtn) {
clockBtn.click();
toastLog("打卡完成");
}
hamibot.exit();
三、使用前准备
| 步骤 | 操作 |
|---|---|
| 1 | 在 Hamibot App 中授予无障碍权限 |
| 2 | 授予屏幕截图权限(如需图像识别) |
| 3 | 使用布局分析工具查看实际控件属性 |
| 4 | 确认 App 包名(使用 app.getPackageName("小渔未来校园") 获取) |
| 5 | 根据实际界面调整选择器(text、id、className 等) |
四、优化建议
- 添加异常处理:网络异常或页面加载慢时重试
- 截图留证:打卡成功后截图保存
- 日志记录:记录每次打卡时间和结果
- 通知提醒:打卡失败时发送通知
- 随机延迟:避免固定时间被系统识别
五、注意事项
- 不同手机品牌/系统版本界面可能不同,需用布局分析工具调整选择器
- 建议先在测试环境运行,确认无误后再正式使用
- 部分公司可能禁止自动化打卡,请遵守相关规定
- 保持手机屏幕常亮或设置唤醒策略
如需进一步帮助,可提供界面截图或布局信息,我帮你优化选择器代码。
ℹ️ 本回答由 AI 生成,内容仅供参考