知識全聚集 .Net Core 技術突破 | 我用C#手把手教你玩微信自動化一
教程
其他教程預覽
分庫分表項目實戰教程
Git地址: https://github.com/MrChuJiu/EasyLogger
介紹
本文主要講的內容是 C# + Appium 自動化玩微信
Appium 是一個開源的自動化測試工具,支持 Android、iOS 平台上的原生應用,支持C#、 Java、Python、PHP 等多種語言。
Appium 封裝了 Selenium,能夠為用戶提供所有常見的 JSON 格式的 Selenium 命令以及額外的移動設備相關的控制命令,比如:多點觸控手勢、屏幕朝向等。
環境搭建
本文章用到的所有軟件安裝包請聯系QQ群: 867095512 看群公告
一台電腦win7 - win10
vs2019
JDK1.8
Appium
android-sdk
mumu 模擬器/你的安卓手機 (作者買不起 腎12 蘋果黨請使用模擬器)
JDK
計算機(右鍵)->屬性->高級系統設置->高級->環境變量->新建環境變量 JAVA_HOME,如圖所示:
系統變量->找到 Path 變量->編輯->在變量值的末尾添加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
新建 CLASSPATH 變量,變量值為:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

android-sdk
與 JDK 配置類似,新建環境變量 ANDROID_HOME,變量值為 android-sdk 位置,比如:D:\android-sdk-windows
在 Path 變量值的末尾添加 ;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\30.0.0-preview;%ANDROID_HOME%\platform-tools
Appium
Appium 安裝完成啟動后,點擊編輯配置,配置 JDK 和 android-sdk,如圖所示

mumu
mumu 模擬器下載完后,除了根據自己需要更改一下安裝路徑,其他選項默認即可安裝,裝完后打開點擊應用中心,搜一下微信,搜到之后安裝一下,微信安裝完成后再用自己的微信號登錄一下。
因為我們是通過安卓的 adb 連接虛擬機的,因此需要在控制台執行 adb connect 127.0.0.1:7555 命令,讓 adb 連接上虛擬機。
執行了上面連接模擬器的命令后,我們可以在 cmd 控制台輸入 adb devices 查看當前連接的虛擬機。
真機
拿起我的華為手機
在手機中依次執行(點擊):設置->我的設備->全部參數->MIUI版本(多次點擊,開啟開發者模式)->返回設置列表->更多設置->開發者選項->開啟開發者選項並分別開啟:USB調試、USB安裝、USB調試(安全設置)選項


如果你的手機是第一次鏈接電腦可能還需要安裝一下驅動


adb檢測
在 Path 變量值的末尾添加 D:\adb Adb的安裝存放路徑


使用
首先啟動 Appium 和 mumu,因為之前我們已經配置了 Appium,此時我們直接點擊 Appium的啟動服務器按鈕 即可,如下圖所示:

啟動之后如圖所示:

現在我們可以先通過 C# 控制台程序來啟動一下微信:

AppiumOptions appium = new AppiumOptions();
appium.AddAdditionalCapability("platformName", "Android"); // 操作系統
appium.AddAdditionalCapability("deviceName", "hdwifi"); // 設備 ID
appium.AddAdditionalCapability("platformVersion", "10.0.0"); // 設備版本號
appium.AddAdditionalCapability("appPackage", "com.tencent.mm"); // app 包名
appium.AddAdditionalCapability("appActivity", "com.tencent.mm.ui.LauncherUI"); // app 啟動時主 Activity
appium.AddAdditionalCapability("noReset", true);// 是否保留 session 信息,可以避免重新登錄
appium.AddAdditionalCapability("unicodeKeyboard", true); // 使用 unicodeKeyboard 的編碼方式來發送字符串
appium.AddAdditionalCapability("resetKeyboard", true); // 將鍵盤給隱藏起來
Console.WriteLine("打開微信");
var driver = new AndroidDriver<AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub"), appium);
執行上述代碼之后,如果發現 mumu 模擬器中的微信已經啟動了,就說明基本環境已經調通了;如果執行代碼后發現調不到 mumu 模擬器中的微信,先在 cmd 中執行一下 adb connect 127.0.0.1:7555 命令,再執行程序即可。
也可以打開Appium 點擊這個按鈕,輸入JSON 啟動項目 看看手機是否能夠正常啟動微信
{
"platformName": "Android",
"deviceName": "hdwifi",
"platformVersion": "10.0.0",
"appPackage": "com.tencent.mm",
"appActivity": "com.tencent.mm.ui.LauncherUI",
"noReset": true,
"unicodeKeyboard": true,
"resetKeyboard": true
}


微信如果成功打開了那么你就成功了,接下來我們來看如何自動化執行一些按鈕和操作
(各位大佬別點擊加我好吧!!!)
Console.WriteLine("點擊加號");
driver.FindElementsById("com.tencent.mm:id/ef9")[0].Click();
Console.WriteLine("點擊添加好友");
driver.FindElementsById("com.tencent.mm:id/gam")[1].Click();
Console.WriteLine("輸入框");
driver.FindElementsById("com.tencent.mm:id/fcn")[0].Click();
Console.WriteLine("輸入內容");
driver.FindElementsById("com.tencent.mm:id/bhn")[0].SendKeys("hd377749229");
Console.WriteLine("點擊搜索");
driver.FindElementsById("com.tencent.mm:id/ga1")[0].Click();
再來個自動發送消息給指定的好友
Console.WriteLine("點擊微信搜索框");
driver.FindElementsById("com.tencent.mm:id/f8y")[0].Click();
Console.WriteLine("在搜索框輸入搜索信息");
driver.FindElementsById("com.tencent.mm:id/bhn")[0].SendKeys("hd377749229");
Console.WriteLine("點擊搜索到的好友");
driver.FindElementsById("com.tencent.mm:id/tm")[0].Click();
Console.WriteLine("輸入文字");
driver.FindElementsById("com.tencent.mm:id/al_")[0].SendKeys("hello C#");
Console.WriteLine("輸入表情");
driver.FindElementsById("com.tencent.mm:id/anz")[0].Click();
driver.FindElementsById("com.tencent.mm:id/rv")[0].Click();
Console.WriteLine("點擊發送按鈕發送信息");
driver.FindElementsById("com.tencent.mm:id/anv")[0].Click();
driver.Quit();
上面的命令是不是已經驚艷到了你!!別慌我還有更騷的
我們通過點擊左側的 加號 就能獲取到他的ID 然后就可以在代碼中寫下來,簡直舒服的不行!


如果你能把這篇文章玩一下, 下一篇我還有更加刺激的,
比如自動發紅包空款,自動收取螞蟻森林能量,檢測微信刪除了我的人!!!
項目地址
知識全聚集系列: https://github.com/MrChuJiu/Easy.Core.Flow
結語
感覺在邊緣摩擦的文章,如果你覺得本文有什么不合規的東西,請大佬通知我。
鳴謝
本次系列教程思路來自於:Python小二
Python的朋友看這里:https://www.cnblogs.com/ityard/p/13928363.html
