autojs之每日上报3.0-极简版(无容错,可以运行)

解锁函数

较第一版,添加了back() -/*如果晚上有人发消息,上滑不能打开输密码界面,需要返回一次后上滑 */

auto.waitFor() //打开无障碍服务后会继续运行脚本

/*判断屏幕锁定,解锁屏幕(数字密码)*/
while (!device.isScreenOn()) {//息屏状态将屏幕唤醒
    device.wakeUp();//唤醒设备
    sleep(500); // 等待屏幕亮起

    /*如果晚上有人发消息,上滑不能打开输密码界面,需要返回一次后上滑 */
    back()
    sleep(1000);

    swipe(700, 1900, 700, 450, 300);//上滑
    sleep(400);

    /*没有到密码界面时,findOne会阻塞,手动到达密码界面后,脚本会继续运行 */
    //解锁 密码123456
    desc(5).findOne().click();
    desc(0).findOne().click();
    desc(5).findOne().click();
    desc(4).findOne().click();
    desc(4).findOne().click();
    desc(3).findOne().click();
    //等待解锁完成,返回并退出
    sleep(400);
}

打印日期

较第一版,添加当日日期打印

var myDate = new Date();
console.info(myDate.getMonth() + 1 + '月' + myDate.getDate() + '日' + '-开始打卡');

打开微信,确保在主页面

if (currentPackage().search("com.tencent.mm") == -1) {//当前 APP 不是微信
    launchApp("微信");
    toastLog('正在打开微信');
}

waitForPackage("com.tencent.mm")//等待指定的应用出现。
toastLog('微信已打开');

click(100, 150);
sleep(500);
click(100, 150);
sleep(500);
click(100, 150);
sleep(500);//确保在主页面
toastLog("已在主页面")

后续操作

较第一版,通过

while (!className("android.view.View").textContains("基本信息")) {
	    sleep(500);
}

确保页面已到达指定页面;
通过

className("android.widget.EditText").depth(9).click()//不能点击,会跳到获取位置的文本框

跳到获取位置的文本框,然后用绝对坐标点击

	while (!click("通讯录"));
	while (!click("中国海大")); //因为是while(),所以只要没有点击到文字,就会一直循环
	while (!click("每日上报"));
	while (!click("每日填报"));
	//确保已进入页面
	while (!className("android.view.View").textContains("基本信息")) {
	    sleep(500);
	}
	className("android.widget.EditText").depth(9).click()//不能点击,会跳到获取位置的文本框
	sleep(500);
	weizhi = className("android.widget.EditText").depth(9).findOnce().bounds()
	
	click(weizhi.centerX(), weizhi.centerY());
	toastLog('点击获取位置');

	click(735, 1373);       //点击确定
	toast('已确定'); 

	while (!className("android.widget.EditText").textContains("河南省")) {
	    sleep(500);
	}
	sleep(2000);

    while (!click("提交信息"));   //点击提交信息
    sleep(500);

    if (text("每天只能填报一次,请确认信息是否全部正确?").findOnce()) {
        text("确认").findOnce().click();
        console.info("打卡完成")
        sleep(500);
        
        back()
	    sleep(500);
	    back()
	    sleep(500);
	    back()//返回主页面
    }
    else
        console.error("未正确提交")

    console.show()//控制台
    sleep(500);

完整代码

	auto.waitFor() //打开无障碍服务后会继续运行脚本
	
	/*判断屏幕锁定,解锁屏幕(数字密码)*/
	while (!device.isScreenOn()) {//息屏状态将屏幕唤醒
	    device.wakeUp();//唤醒设备
	    sleep(500); // 等待屏幕亮起
	
	    /*如果晚上有人发消息,上滑不能打开输密码界面,需要返回一次后上滑 */
	    back()
	    sleep(1000);
	
	    swipe(700, 1900, 700, 450, 300);//上滑
	    sleep(400);
	
	    /*没有到密码界面时,findOne会阻塞,手动到达密码界面后,脚本会继续运行 */
	    //解锁 密码123456
	    desc(5).findOne().click();
	    desc(0).findOne().click();
	    desc(5).findOne().click();
	    desc(4).findOne().click();
	    desc(4).findOne().click();
	    desc(3).findOne().click();
	    //等待解锁完成,返回并退出
	    sleep(400);
	}
	var myDate = new Date();
	console.info(myDate.getMonth() + 1 + '月' + myDate.getDate() + '日' + '-开始打卡');
	
	if (currentPackage().search("com.tencent.mm") == -1) {//当前 APP 不是微信
	    launchApp("微信");
	    toastLog('正在打开微信');
	}
	
	waitForPackage("com.tencent.mm")//等待指定的应用出现。
	toastLog('微信已打开');
	
	click(100, 150);
	sleep(500);
	click(100, 150);
	sleep(500);
	click(100, 150);
	sleep(500);//确保在主页面
	toastLog("已在主页面")

	while (!click("通讯录"));
	while (!click("中国海大")); //因为是while(),所以只要没有点击到文字,就会一直循环
	while (!click("每日上报"));
	while (!click("每日填报"));
	//确保已进入页面
	while (!className("android.view.View").textContains("基本信息")) {
	    sleep(500);
	}
	className("android.widget.EditText").depth(9).click()//不能点击,会跳到获取位置的文本框
	sleep(500);
	weizhi = className("android.widget.EditText").depth(9).findOnce().bounds()
	
	click(weizhi.centerX(), weizhi.centerY());
	toastLog('点击获取位置');

	click(735, 1373);       //点击确定
	toast('已确定'); 

	while (!className("android.widget.EditText").textContains("河南省")) {
	    sleep(500);
	}
	sleep(2000);

    while (!click("提交信息"));   //点击提交信息
    sleep(500);

    if (text("每天只能填报一次,请确认信息是否全部正确?").findOnce()) {
        text("确认").findOnce().click();
        console.info("打卡完成")
        sleep(500);
        
        back()
	    sleep(500);
	    back()
	    sleep(500);
	    back()//返回主页面
    }
    else
        console.error("未正确提交")

    console.show()//控制台
    sleep(500);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tfnmdmx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值