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 库连接到设备并执行一系列操作