日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3.6+Appium实现手机微信自动回复

發布時間:2023/12/10 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3.6+Appium实现手机微信自动回复 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、環境準備

1、jdk1.8.0

2、android-sdk_r24.4.1-windows.zip

3、Python3.6

4、Appium-Server-GUI-windows-1.22.0.zip

5、Appium-Python-Client

6、Appium-Inspector-windows-2021.12.2.zip

簡單說明:jdk為java運行環境,SDK為Android運行環境,Python3.6+Appium-Python-Client庫為Appium客戶端,Appium-Server為Appium服務器,Appium-Inspector用于定位頁面元素。

二、Appium框架原理、加載過程

Appium基本原理為

?Appium加載過程為

?

?

三、實戰

1、在appium安裝目錄雙擊Appium Server GUI.exe先啟動服務器,點擊編輯配置,填入SDK和jdk根目錄,保存后啟動服務器。

Appium Server啟動成功

2、執行代碼,啟動微信APP

? ? ? ? 執行代碼前需要安裝Appium-Python-Client庫,用于連接Appium服務器。

????????platformName是設備系統類型,deviceName為設備名稱,appPackage為應用包名,appActivity為應用啟動入口,noReset為不在會話前重置應用狀態,默認為false ?切記要保證為True,不然APP數據會被清掉,所有聊天記錄都清空,血的教訓。。。

deviceName、appPackage、appActivity這三個東西可以在如下連接方法找到https://blog.csdn.net/l15767016983/article/details/122943734

如果deviceName想為IP:port,則需要在如下連接方法找到deviceName

https://blog.csdn.net/l15767016983/article/details/122939195

from appium import webdriverif __name__ == '__main__':desired_caps = {"platformName": "Android","deviceName": "81c94a60","appPackage": "com.tencent.mm","appActivity": "com.tencent.mm.ui.LauncherUI","noReset": True}driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

? ? ? ? 運行代碼前需要確保Appium服務器正常運行,不然會連接不了服務器。

3、Inspector定位元素

? ? ? ? 安裝完Inspector后在安裝目錄雙擊Appium Inspector.exe運行Inspector,填寫請求JSON

?啟動會話,微信被成功啟動。

?Inspector有幾個小工具,包括選擇元素、錄制代碼、滑動坐標、點擊坐標點、刷新等工具用于操作頁面。

?可以找到元素的ID、CLASS_NAME、XPATH等信息,用于操作元素。

(1)點擊元素,進入和某人的聊天頁面。

name="對方正在輸入..." count=1 while True:#循環等待消息print("第{0}次循環。。。".format(count))child = driver.find_elements(AppiumBy.ID, "com.tencent.mm:id/btg")for i in child:try:msg_person=i.find_element(AppiumBy.ID, "com.tencent.mm:id/hga").text#聯系人昵稱if name in msg_person:msg_count=i.find_element(AppiumBy.ID, "com.tencent.mm:id/kn6").text#新消息數if int(msg_count)>0:#和某人的消息數大于0則進入該聊天i.click()driver.find_element(AppiumBy.ID, "com.tencent.mm:id/fz").click()#返回上一步except Exception:passcount+=1time.sleep(5)

?(2)點擊輸入框,輸入聊天內容,發送內容。如果想自動回復各種消息可以弄一個聊天機器人,例如圖靈,可以免費注冊。

b4a=driver.find_element(AppiumBy.ID,"com.tencent.mm:id/b4a")#輸入框 b4a.click()#需要點擊一下喚起鍵盤,不然全面屏可能找不到發送的元素 b4a.send_keys(msg) driver.find_element(AppiumBy.ID,"com.tencent.mm:id/b8k").click()#點擊發送

?(3)查看當前頁面的聊天記錄。

????????時間ID為com.tencent.mm:id/b8z,文字/小表情的ID為com.tencent.mm:id/b4b,大表情包ID為com.tencent.mm:id/b4c,發送者昵稱ID為com.tencent.mm:id/b3s。

child=driver.find_element(AppiumBy.ID, "com.tencent.mm:id/b79").find_elements(AppiumBy.XPATH, ".//*")for i in child:resource_Id=i.get_attribute("resourceId")if resource_Id:text=i.get_attribute("text")if "com.tencent.mm:id/b8z" in resource_Id:msg_time = text# 1 時間print(msg_time)elif "com.tencent.mm:id/b3s" in resource_Id:sender = i.get_attribute("contentDescription")# 2 發送者print(sender)elif "com.tencent.mm:id/b4b" in resource_Id:text_msg= text# 3 文字消息/小表情print(text_msg)elif "com.tencent.mm:id/b4c" in resource_Id:big_msg = "[表情]"# 4 大表情print(big_msg)

(4)滑動頁面,加載更多聊天記錄。

size = driver.get_window_size() driver.swipe(size['width'] * 0.5, size['height'] * 0.25, size['width'] * 0.5, size['height'] * 0.65)

(5)打印整頁XML資源

print(driver.page_source)#打印整頁XML資源

總結

以上是生活随笔為你收集整理的python3.6+Appium实现手机微信自动回复的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。