'commit'
This commit is contained in:
95
WeiXin/T1_OpenChat_ActionTest.py
Normal file
95
WeiXin/T1_OpenChat_ActionTest.py
Normal file
@@ -0,0 +1,95 @@
|
||||
# coding=utf-8
|
||||
import uiautomator2 as u2
|
||||
import time
|
||||
import logging
|
||||
import sys
|
||||
import os
|
||||
import WxUtil
|
||||
|
||||
# 添加项目根目录到 sys.path
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
if project_root not in sys.path:
|
||||
sys.path.append(project_root)
|
||||
|
||||
# 配置日志
|
||||
log_dir = WxUtil.LOG_DIR
|
||||
if not os.path.exists(log_dir):
|
||||
os.makedirs(log_dir)
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler(os.path.join(log_dir, "T1_OpenChat.log"), encoding='utf-8'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger("T1_OpenChat")
|
||||
|
||||
def open_chat(target_name="糖豆爸爸"):
|
||||
# 运行前清理 Logs 和 Output
|
||||
WxUtil.setup_script_environment()
|
||||
|
||||
logger.info(f"开始执行 T1: 打开微信并进入 '{target_name}' 的对话框...")
|
||||
|
||||
# 连接设备
|
||||
d = WxUtil.connect_device()
|
||||
if not d:
|
||||
return
|
||||
|
||||
# 1. 启动微信
|
||||
logger.info("步骤 1: 启动微信...")
|
||||
d.app_start("com.tencent.mm", stop=True)
|
||||
time.sleep(5)
|
||||
|
||||
# 获取屏幕尺寸
|
||||
w, h = d.window_size()
|
||||
logger.info(f"屏幕尺寸: {w}x{h}")
|
||||
|
||||
# 2. 点击搜索按钮
|
||||
search_x = int(w * 0.84)
|
||||
search_y = int(h * 0.08)
|
||||
logger.info(f"步骤 2: 点击搜索按钮 (坐标: {search_x}, {search_y})...")
|
||||
d.click(search_x, search_y)
|
||||
time.sleep(2)
|
||||
|
||||
# 3. 输入搜索内容
|
||||
logger.info(f"步骤 3: 输入搜索内容 '{target_name}'...")
|
||||
try:
|
||||
d.set_input_ime(True)
|
||||
d.click(int(w * 0.4), int(h * 0.08))
|
||||
time.sleep(1)
|
||||
d.send_keys(target_name)
|
||||
time.sleep(2)
|
||||
d.set_input_ime(False)
|
||||
except Exception as e:
|
||||
logger.error(f"输入文字失败: {e}")
|
||||
try:
|
||||
d(focused=True).set_text(target_name)
|
||||
except:
|
||||
pass
|
||||
|
||||
# 4. 点击搜索结果
|
||||
logger.info("步骤 4: 查找并点击搜索结果...")
|
||||
time.sleep(2)
|
||||
|
||||
found = False
|
||||
if d(text=target_name).exists:
|
||||
logger.info(f"找到文本为 '{target_name}' 的元素,点击...")
|
||||
d(text=target_name).click()
|
||||
found = True
|
||||
else:
|
||||
logger.warning(f"未找到文本为 '{target_name}' 的元素,尝试模糊匹配或坐标点击...")
|
||||
result_x = int(w * 0.5)
|
||||
result_y = int(h * 0.18)
|
||||
logger.info(f"尝试点击第一个搜索结果位置 ({result_x}, {result_y})...")
|
||||
d.click(result_x, result_y)
|
||||
found = True
|
||||
|
||||
if found:
|
||||
logger.info("✅ T1 执行完成: 已进入对话框。")
|
||||
else:
|
||||
logger.error("❌ T1 执行失败: 未能进入对话框。")
|
||||
|
||||
if __name__ == "__main__":
|
||||
open_chat()
|
||||
Reference in New Issue
Block a user