Python+adb+AndroidViewClient實現朋友圈自動點贊

目錄

 

硬件準備:

功能實現流程:

手機與筆記本連接:

安裝ADB:

安裝Appium Desktop:

使用Appium Desktop獲取元素信息:

安裝AndroidViewClient

完整代碼


硬件準備

筆記本:win10、python2.7

手機:HUAWEI Mate 20 Pro

USB數據線

功能實現流程

  1. 手機與筆記本連接
  2. 安裝ADB,實現筆記本與手機的交互
  3. 安裝Appium,獲取手機界面組件的ID等信息
  4. 安裝AndroidViewClient
  5. 編寫腳本

手機與筆記本連接

參考:https://jingyan.baidu.com/article/5552ef47af9c47518ffbc9a6.html

注意:HUAWEI Mate 20 Pro 有個坑,執行上述操作前需要把懸浮球關閉,否則會連接不成功。

關閉懸浮球位置:手機設置--系統和更新--系統導航方式--懸浮導航

安裝ADB

adb即Android Debug Bridge,可以實現在pc端通過cmd命令行調試安卓移動端。

adb下載安裝參考:https://www.jianshu.com/p/7c0a6da594c8
驗證:win+R打開命令行,輸入adb devices顯示如下圖表示安裝成功(前提是手機與筆記本已正確連接)

ADB相關命令:

1.顯示當前運行的全部模擬器:    adb devices
2.啓動ADB    adb start-server
3.停止ADB   adb kill-server

4.點擊屏幕座標爲 X Y的位置:adb shell input tap X Y

5.滑動屏幕:adb shell input swipe startX startY endX endY

驗證:在cmd窗口輸入 adb shell input swipe 800 800 500 500

正常情況下手機屏幕會向上滑動一段距離,如果沒有,需要排查前面的步驟是否有操作失誤。

安裝Appium Desktop

我們用Appium desktop來獲取元素的基本信息。

下載地址:https://github.com/appium/appium-desktop/releases

雙擊.EXE文件安裝即可

使用Appium Desktop獲取元素信息

  1. 打開appium desktop

輸入下面的信息,點擊啓動會話

{
  "deviceName": "HUAWEI Mate 20 Pro (UD)",
  "automationName": "Appium",
  "platformName": "Android",
  "platformVersion": "10",
  "appPackage": "com.tencent.mm",
  "appActivity": "com.tencent.mm.ui.LauncherUI",
  "noReset": "True",
  "noSign": "True"
}

點擊啓動會話後,手機會提示安裝apk,點擊安裝即可。之後電腦會顯示下面界面

此時可以藉助appium desktop來獲得元素的id,下圖我們得到評論按鈕的id是:com.tencent.mm:id/eyz

安裝AndroidViewClient

pip install AndroidViewClient

注:AndroidViewClient不支持python3.X,安裝之前要確保你的python版本是python2.7

完整代碼

# coding: utf-8
import sys
import os
import re
import time
from com.dtmilano.android.viewclient import ViewClient
def wechat():
    # 連接手機
    device, serialno = ViewClient.connectToDeviceOrExit()
    vc = ViewClient(device, serialno)
    # 找到評論按鈕
    # 使用appium desktop 來查看評論按鈕的resource-id爲"com.tencent.mm:id/eyz"
    # 輸入框是com.tencent.mm:id/aqe,發送按鈕是aql;

    succeed = 0
    Failure = 0
    while True:
        try:
            # 找到評論按鈕並點擊一下
            vc.dump()
            pinglun_button = vc.findViewByIdOrRaise("com.tencent.mm:id/eyz")
            pinglun_button.touch()

            # 找到點贊按鈕,並點擊
            vc.dump()
            zan_button = vc.findViewWithText(u"贊")
            zan_button.touch()
            succeed = succeed + 1
            print "已爲%d人點贊" %(succeed)
        except:
            #失敗的可能是已經點過讚了
            Failure = Failure + 1
            print "失敗了%d次" %(Failure)
        #有時候會誤點擊到拍照按鈕,所以通過一個滑動先將界面恢復到正常狀態
        os.system("adb shell input swipe 900 900 900 850")
        os.system("adb shell input swipe 900 900 900 500")
if __name__ == '__main__':
    wechat()

注意:運行代碼前要吧appium desktop退出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章