+
95
-

回答

可以通过appium-python-client来远程操控andriod手机上qq进行消息收发,流程如下:

1、下载安装appium-python-client

pip install appium-python-client

官网::http://appium.io

2、安装jdk和android sdk,并添加好ANDROID_HOME和JAVA_HOME环境变量,下载地址:https://developer.android.com/studio

3、手机开启开发者模式并打开usb调试。

4、插上手机的usb线连上电脑,命令行敲入adb devices -l显示你的手机信息就表示连接成功了。

800_auto

5、最后运行下面的代码

参考代码

from appium import webdriver
import time
 
desired_caps={
    'platformName':'Android',  # 指定平台为Android
    'platformVersion':'8.1',  # 指定Android版本为8.1
    'deviceName':'your_device_name',  # 替换成你的设备名称
    'appPackage':'com.tencent.qqlite',  # 指定应用包名,这里是QQ轻聊版
    'appActivity':'com.tencent.mobileqq.activity.SplashActivity',  # 指定应用启动的Activity
    #'unicodeKeyboard':True,  # 使用Unicode键盘
    #'resetKeyboard':True,  # 重置键盘
    'noReset':True,  # 不重置应用状态
    'newCommandTimeout':6000,  # 设置新命令超时时间为6000秒
    'automationName':'UiAutomator2'  # 指定自动化测试引擎为UiAutomator2
}
 
driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
 
driver.implicitly_wait(10)
 
driver2=driver.find_element_by_id('recent_chat_list')
 
list2=driver2.find_elements_by_class_name('android.widget.LinearLayout')
print('当前QQ消息为%d个'%(len(list2)))
 
time.sleep(2)
list2[0].click()
 
 
def send_Message(text2:str):   # 发消息
    driver4=driver.find_element_by_id('inputBar')
    driver4.find_element_by_id('input').send_keys(text2)
    driver4.find_element_by_id('fun_btn').click()
    time.sleep(2)
    print("发送消息:%s"%(text2))
 
list4=[
"你你好啊",
"吃了",
"起床了"
]
 
while True:
    try:
        driver3=driver.find_element_by_id('listView1')
        list3=driver3.find_elements_by_class_name('android.widget.RelativeLayout')
        text=list3[-1].find_element_by_id('chat_item_content_layout').text
        print('收到消息:%s'%(text))      # 接收消息
 
        time.sleep(5)
        if(text=='你好'):
            send_Message(list4[0])
        elif(text=="你吃中饭了没"):
            send_Message(list4[1])
        elif(text=="起来没"):
            send_Message(list4[2])
 
    except Exception as e:
        pass

网友回复

我知道答案,我要回答