知識全聚集 .Net Core 技術突破 | 我用C#手把手教你玩微信自動化一


知識全聚集 .Net Core 技術突破 | 我用C#手把手教你玩微信自動化一

教程

01 | 模塊化方案一

02 | 模塊化方案二

03 | 簡單說說工作單元

其他教程預覽

分庫分表項目實戰教程

Git地址: https://github.com/MrChuJiu/EasyLogger

01 | 前言

02 | 簡單的分庫分表設計

03 | 控制反轉搭配簡單業務

04 | 強化設計方案

05 | 完善業務自動創建數據庫

06 | 最終篇-通過AOP自動連接數據庫-完成日志業務

介紹

本文主要講的內容是 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM