import time
import datetime
import uiautomator2 as u2
import argparse


def perform_operations(device_id):
    try:
        # 初始化设备
        d = u2.connect(device_id)

        # 启动应用
        d.app_start('com.ss.android.lark')

        # 点击指定元素
        d.xpath(
            '//*[@resource-id="com.ss.android.lark:id/recycler"]/android.view.ViewGroup[2]/android.widget.ImageView[1]').click()
        time.sleep(2)

        # 检查并点击目标元素
        if d.xpath('//*[@resource-id="_n_90"]').exists:
            d.xpath('//*[@resource-id="_n_90"]').click()
        else:
            d.xpath('//*[@resource-id="_n_150"]').click()
            d.click(0.683, 0.529)

    except Exception as e:
        print(f"操作失败: {e}")


def main(device_id, target_time):
    while True:
        time.sleep(0.1)  # 每 0.1 秒检测一次时间
        current_time = datetime.datetime.now().strftime('%H:%M:%S')
        print(f"当前时间: {current_time}")

        if current_time == target_time:
            print(f"达到目标时间 {target_time},开始执行操作...")
            perform_operations(device_id)
            break


if __name__ == '__main__':
    # 设置命令行参数解析
    parser = argparse.ArgumentParser(description="通过命令行传入设备 ID 和时间")
    parser.add_argument('--device', type=str, required=True, help='设备 ID')
    parser.add_argument('--time', type=str, required=True, help='目标时间(格式: HH:MM:SS)')
    args = parser.parse_args()

    # 从命令行获取设备 ID 和时间
    device_id = args.device
    target_time = args.time

    # 检查时间格式是否正确
    try:
        datetime.datetime.strptime(target_time, '%H:%M:%S')
    except ValueError:
        print("时间格式错误,请使用 HH:MM:SS 格式(例如 18:44:20)")
        exit(1)

    # 启动主程序
    print(f"设备 ID: {device_id}, 目标时间: {target_time}")
    main(device_id, target_time)
python script.py --device id --time 18:44:20

定时任务,当系统时间达到 某个时间 时,会通过 uiautomator2 库连接到设备并执行一系列操作

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐