1. 程式人生 > 其它 >Appium微信傳送訊息擴充套件——提醒群成員

Appium微信傳送訊息擴充套件——提醒群成員

一、簡介

https://www.cnblogs.com/ourshiningdays/p/16023291.html的基礎上,新增提醒(@)微信群成員的功能。

二、無法實現的方法

最樸素的想法是利用send_keys方法@群裡成員,但這種方法被@的成員並不會收到“有人@我”的提醒。實際上,即使手動輸入@xxx,xxx也並不能收到提示,無論是手機還是PC端,都需要先輸入@,並且在自動彈出的提示框中選擇需要@的xxx,方可使該群成員收到提示。因此本需求並不能簡單使用這種方法實現。

三、實現時有問題的方法

既然上述思路不能奏效,仍然可以用send_keys方法先輸入一個@,此時微信會彈出需要@的成員列表,此時再用find_element方法結合send_keys方法,實現自動在成員列表裡搜尋指定成員並點選搜尋結果的流程。(此流程與前一篇博文的搜尋指定群/好友高度一致,在此不加贅述)

但實現時實測發現,當需要@多個成員時,只有第一次輸入的@才會使微信彈出需要@的成員列表,隨後輸入@不生效。嘗試了sleep()和在兩次輸入的@之間加其他符號,均不彈出。

四、最終實現方法

注意到Appium擁有press_keycode方法,該方法可以模擬按下指定按鍵,接收一個整數作為引數,該整數即為Keycode。

接下來需要查詢Android有沒有為我們定義“@”的Keycode。查閱Android官方文件(https://developer.android.com/reference/android/view/KeyEvent,如無法訪問請使用https://developer.android.google.cn/reference/android/view/KeyEvent

),發現擁有該Keycode,值為77。

 

因此,只需要將引數77傳入press_keycode方法,並用find_element方法結合send_keys方法,實現自動在成員列表裡搜尋指定成員並點選搜尋結果的流程,此方法未出現如本文第三部分的問題,可@多位成員。