2026-01-14 07:19:39 +08:00
|
|
|
# coding=utf-8
|
|
|
|
|
import asyncio
|
|
|
|
|
import logging
|
|
|
|
|
import os
|
|
|
|
|
import time
|
|
|
|
|
import uiautomator2 as u2
|
2026-01-14 07:31:31 +08:00
|
|
|
from Apps.TeLaiDian.Kit import take_screenshot, setup_logger
|
2026-01-14 07:19:39 +08:00
|
|
|
|
2026-01-14 07:28:06 +08:00
|
|
|
# 初始化日志
|
2026-01-14 07:31:31 +08:00
|
|
|
logger = setup_logger("OpenTeLaiDian")
|
2026-01-14 07:19:39 +08:00
|
|
|
|
|
|
|
|
async def open_mini_program():
|
|
|
|
|
"""
|
|
|
|
|
进入微信小程序: 特来电
|
|
|
|
|
"""
|
|
|
|
|
d = u2.connect()
|
|
|
|
|
logger.info("执行进入小程序: 特来电")
|
|
|
|
|
|
|
|
|
|
# 1. 启动微信
|
|
|
|
|
logger.info("启动微信...")
|
|
|
|
|
d.app_start("com.tencent.mm", stop=True)
|
|
|
|
|
await asyncio.sleep(5)
|
|
|
|
|
|
|
|
|
|
logger.info("点击搜索按钮...")
|
|
|
|
|
w, h = d.window_size()
|
|
|
|
|
d.click(int(w * 0.84), int(h * 0.08))
|
|
|
|
|
await asyncio.sleep(2)
|
|
|
|
|
|
|
|
|
|
logger.info("输入搜索内容: 特来电")
|
2026-01-17 07:21:21 +08:00
|
|
|
try:
|
|
|
|
|
d.set_input_ime(True)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.warning(f"启用 FastInputIME 失败: {e}")
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
search_bar_x, search_bar_y = int(w * 0.4), int(h * 0.08)
|
|
|
|
|
d.click(search_bar_x, search_bar_y)
|
|
|
|
|
await asyncio.sleep(1.5)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.warning(f"点击搜索框以获取焦点失败: {e}")
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
d.send_keys("特来电")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.warning(f"直接 send_keys 失败: {e}")
|
|
|
|
|
try:
|
|
|
|
|
d(focused=True).set_text("特来电")
|
|
|
|
|
except Exception as e2:
|
|
|
|
|
logger.error(f"文字输入彻底失败: {e2}")
|
|
|
|
|
|
2026-01-14 07:19:39 +08:00
|
|
|
await asyncio.sleep(3)
|
|
|
|
|
|
2026-01-17 07:21:21 +08:00
|
|
|
try:
|
|
|
|
|
d.set_input_ime(False)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.warning(f"恢复系统输入法失败: {e}")
|
|
|
|
|
|
2026-01-14 07:19:39 +08:00
|
|
|
# 4. 点击搜索结果中的第一个小程序
|
|
|
|
|
logger.info("点击搜索结果中的小程序...")
|
|
|
|
|
# 这里的坐标可能需要根据实际情况调整,先参考 YeLiTe 的实现
|
|
|
|
|
d.click(int(w * 0.5), int(h * 0.18))
|
|
|
|
|
|
|
|
|
|
logger.info("等待小程序加载...")
|
|
|
|
|
await asyncio.sleep(10)
|
|
|
|
|
|
|
|
|
|
logger.info("已到达小程序页面,停止执行。")
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
asyncio.run(open_mini_program())
|