首頁>技術>

閱讀文字大概需要 5 分鐘。

很多讀者看過之前的文章,發現我使用最多的是一款 Airtest 的自動化測試框架。

Airtest 是一款適合於遊戲和 App 的 UI 自動化測試框架。

下面對 Airtest 在平時自動化和爬蟲過程中的常見問題做一個彙總。

1、優勢

Airtest 上手難易度低,高效方便,結合 Python 指令碼,可以完成一些自動化的操作,也可以快速開發出一款 App 端的爬蟲。

2、AirtestIDE 還是 Pycharm

當然,想完成一些複雜的操作,就需要在 Python 虛擬環境下安裝 pocoui 依賴庫,然後藉助 Pycharm 編寫 Python 指令碼來完成。

3、Airtest 結合 Python 操作

只需要在 Python 虛擬環境下安裝 pocoui 依賴庫。

pip3 install pocoui

4、有線連線和無線連線

利用 Airtest 驅動手機完成自動化操作,有兩種方式:有線連線、無線連線。

有線連線:手機通過資料線連線 PC,確保使用 adb devices 命令能找到裝置。

然後,通過下面的 Python 程式碼即可以完成連線操作。

# 通過有線連線 PC 端和手機self.poco = AndroidUiautomationPoco(screenshot_each_action=False)auto_setup(__file__)

無線連線:保證手機和 PC 在同一個網段,使用 adb 啟動手機端的 adb 埠,然後使用下面的 Python 程式碼完成連線操作。

# 通過 adb 命令開啟手機端的 adb 埠adb tcpip 6666# 通過 Python,無線連線 PC 和手機device = connect_device('android:///192.168.1.166:6666?cap_method=javacap&touch_method=adb')poco = AndroidUiautomationPoco(device_1, screenshot_each_action=False)auto_setup(__file__)

5、常用操作

只需要通過 Android SDK 中的 Monitor 工具識別到元素 ID 或者文字,然後藉助 Poco 依賴庫完成常見的操作。

# 點選1poco(元素ID).click()# 點選2poco(text=u'元素文字內容').click()# 長按poco(元素ID或者元素文字).long_click(長按的時長)# 滑動到下一頁poco.swipe([起始座標x軸, 起始座標y軸], [終點座標x軸, 終點座標y軸], duration=滑動時長)poco.swipe([0.5, 0.8], [0.5, 0.3], duration=1)# 滑動到上一頁poco.swipe([0.5, 0.3], [0.5, 0.8], duration=1)

pocoui 已經封裝了頁面的常用操作,包含:回到桌面、模擬手機返回鍵、鎖屏鍵、截圖、解除安裝、開啟應用等操作。

# pocoui 封裝的一些方法# 開啟應用def start_app(package, activity=None):# 停止應用def stop_app(package):# 截圖def snapshot(filename=None, msg=""):# 回到桌面def home():# 模擬按鍵操作# 模擬頁面返回操作keyevent('BACK')

6、異常處理

由於 Airtest 是一款 UI 測試框架,對可見的元素能通過元素 ID 或者文字內容拿到元素,處理列表的時候,滑動的時候經常會導致元素異常,這裡要做好異常處理。

# 處理列表元素try: self.__handle_good_list()except: pass

7、元素獲取不到

藉助 Android SDK 中的 Monitor 檢視元素屬性,會發現有些元素沒有 ID 和文字,這時候可以檢視 UI 樹的結構,找到一個可以確定的元素,通過父子關係拿到這個元素。

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • ICLR 2019最佳論文解析:神經網路制霸