1. 程式人生 > >使用python實現對安卓模擬器的自動化操作QQ!

使用python實現對安卓模擬器的自動化操作QQ!

這裡使用安卓模擬器自動實現qq登入,並且發一條說說,教程開始之前要安裝好python開發環境:在win7和ubuntu系統安裝Python開發環境,和安卓模擬器:使用夜神安卓模擬器建立安卓虛擬機器

使用python實現對安卓模擬器的自動化操作

 

 

安裝完成,就首先開啟Pycharm新建python專案,最好是在虛擬環境下面進行的,不影響系統的配置,hello.py就是寫程式碼的,pwd是讀取密碼

使用python實現對安卓模擬器的自動化操作

 

 

 

使用python實現對安卓模擬器的自動化操作

 

 

 

建好專案,在命令列安裝需要用的環境,

uiautomator2,pillow 這兩個模組,在Pycharm的Terminal命令視窗用pip安裝,這個在安裝python環境的時候預設安裝了的,

 

使用python實現對安卓模擬器的自動化操作

 

 

 

1#兩條安裝的命令,依次輸入
2pip install --upgrade --pre uiautomator2
3
4pip install pillow

 

安裝好依賴模組,還要在本地模擬器的adb做關聯檔案的安裝,用python -m uiautomator2 init 測試已連線的所有裝置。

初始化這時候會自動安裝這幾個檔案,因為有些檔案是要連線github會出現不穩定的情況,多嘗試幾次就好,出現圖片的介面,就說明初始化成功了。

uiautomator-server、

atx-agent、

openstf/minicap、

openstf/minitouch

 

使用python實現對安卓模擬器的自動化操作

 

 

 

開啟Pycharm這時候還要安裝一個叫weditor

的模組,同樣使用pip安裝,

1pip install -U weditor

 

命令列啟動 python -m weditor 會自動開啟瀏覽器,輸入裝置的ip或者序列號,點選Connect即可,在程式碼需要用到模擬器的屬性。

 

使用python實現對安卓模擬器的自動化操作

 

 

 

在hello.py需要寫的邏輯程式碼:

 import uiautomator2 as u2
 def funpwd():
 # 這裡是獲取QQ的密碼,在pwd.txt檔案儲存,下面的檔案路徑也要做對應的修改。
 f = open(r"C:UsersAdministratorPycharmProjects	estpwd.txt", "r")
 txt = f.read()
 f.close()
 return txt
pwd = funpwd()
# 這裡要根據具體情況修改IP地址
d = u2.connect('192.168.0.103')
d(text="QQ").click()
d(text="登 錄").click()
d(text=u"QQ號/手機號/郵箱").set_text("1922820882")
d(resourceId="com.tencent.mobileqq:id/password").set_text(pwd)
d(resourceId="com.tencent.mobileqq:id/login").click()
d(text="動態").click()
d(text="好友動態").click()
d(description=u"說說,").click()
d(resourceId="com.tencent.mobileqq:id/name", text=u"分享新鮮事…").click()
d(resourceId="com.tencent.mobileqq:id/name", text=u"分享新鮮事...").set_text("Hello ")
d(resourceId="com.tencent.mobileqq:id/ivTitleBtnRightText").click()
d(resourceId="com.tencent.mobileqq:id/ivTitleBtnLeft").click()
d(resourceId="com.tencent.mobileqq:id/ivTitleBtnLeft").click()

現在就是直接執行hello.py,再看模擬器就可以有效果。

 

使用python實現對安卓模擬器的自動化操作

 

 

 

因為是模擬器的緣故,有些操作會跟真實機器有很大區別,這裡是uiautomator2官方的gihub地址,有很多功能都可以嘗試。https://github.com/openatx/uiautomator2