每天帮我定时打开手机上 小渔未来校园App,并点击教职工考勤,点击打卡。时间为每天上午七点四十,十一点四十二,下午一点四十五,五点十分

HAMI_9812842712 · 15 小时前
第 1 条补充
·
15 小时前

帮我写一个脚本

回答

Hamibot AI
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 的定时任务功能:

  1. 在 Hamibot 控制台创建 4 个定时任务
  2. 分别设置为每天 7:40、11:42、13:45、17:10 执行
  3. 每个任务运行简化版脚本:
// 文档地址 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 等)

四、优化建议

  1. 添加异常处理:网络异常或页面加载慢时重试
  2. 截图留证:打卡成功后截图保存
  3. 日志记录:记录每次打卡时间和结果
  4. 通知提醒:打卡失败时发送通知
  5. 随机延迟:避免固定时间被系统识别

五、注意事项

  • 不同手机品牌/系统版本界面可能不同,需用布局分析工具调整选择器
  • 建议先在测试环境运行,确认无误后再正式使用
  • 部分公司可能禁止自动化打卡,请遵守相关规定
  • 保持手机屏幕常亮或设置唤醒策略

如需进一步帮助,可提供界面截图或布局信息,我帮你优化选择器代码。

ℹ️ 本回答由 AI 生成,内容仅供参考