【appium 安卓10 QQ发送消息】

代码

python 复制代码
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 设置 Desired Capabilities
desired_caps = {
    "platformName": "Android",
    "platformVersion": "10.0",
    "deviceName": "Android Emulator",
    "appPackage": "com.tencent.mobileqq",
    "appActivity": ".activity.SplashActivity",
    "automationName": "UiAutomator2",
    "noReset": True,
    "appium:ignoreHiddenApiPolicyError": True,
    "appium:forceAppLaunch": True
}

# 创建 Appium WebDriver 实例
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

try:
    # 等待并点击搜索输入框
    search_box = WebDriverWait(driver, 30).until(
        EC.element_to_be_clickable((By.ID, "com.tencent.mobileqq:id/et_search_keyword"))
    )
    search_box.click()
    print("已成功点击搜索输入框")

     # 等待搜索框重新变得可输入
    search_box = WebDriverWait(driver, 30).until(
        EC.element_to_be_clickable((By.ID, "com.tencent.mobileqq:id/et_search_keyword"))
    )

    # 输入 "你夏哥" 到搜索框
    search_box.send_keys("你夏哥")
    print("已成功输入 '你夏哥'")

    # 等待并点击 ID 为 com.tencent.mobileqq:id/dpr 的元素
    target_element = WebDriverWait(driver, 30).until(
        EC.element_to_be_clickable((By.ID, "com.tencent.mobileqq:id/dpr"))
    )
    target_element.click()
    print("已成功点击你夏哥")

    # 等待并点击消息发送框
    input_box = WebDriverWait(driver, 30).until(
        EC.element_to_be_clickable((By.ID, "com.tencent.mobileqq:id/input"))
    )
    input_box.click()
    print("已成功点击消息发送框")

    # 输入消息 "Hello World!"
    input_box.send_keys("Hello World!")
    print("已成功输入消息 'Hello World!'")

    # 等待并点击发送按钮
    send_button = WebDriverWait(driver, 30).until(
        EC.element_to_be_clickable((By.ID, "com.tencent.mobileqq:id/fun_btn"))
    )
    send_button.click()
    print("已成功点击发送按钮")

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

finally:
    # 不关闭驱动,确保应用保持打开
    pass
相关推荐
川石课堂软件测试13 小时前
UI自动化测试|CSS元素定位实践
css·测试工具·ui·fiddler·单元测试·appium·harmonyos
Che2n3JigW13 小时前
Now in Android:它不是最佳实践,而是大型 Android 工程实践的展示
android·architecture·now in android
故渊at13 小时前
第三板块:Android 图形渲染与窗口体系 | 第十三篇:SurfaceFlinger 与 VSYNC 信号机制
android·图形渲染·surfaceflinger·帧率·窗口体系
Che2n3JigW13 小时前
Now in Android Feature 模块分析:一个功能是如何被组织起来的?
android·udf·architecture·now in android·modularization·feature module
Che2n3JigW13 小时前
Now in Android 项目结构分析:这个 App 是如何搭建起来的?
android·architecture·now in android·modularization·structure
恋猫de小郭14 小时前
flutter_agent_lens 用 MCP 服务,将 Flutter DevTools 暴露给 AI
android·前端·flutter
AI玫瑰助手14 小时前
Python函数:内置函数(len/max/min/sorted等)详解
android·开发语言·python
Kapaseker14 小时前
Kotlin 集合:只读不等于不可变
android·kotlin
风华圆舞14 小时前
一个 Flutter 项目同时保留 Android、iOS、HarmonyOS 支持的实践
android·flutter·ios
顾林海14 小时前
Android来时路:Android 是什么
android