準備
1.電腦系統(tǒng):win10
2.手機:安卓(沒錢買蘋果)
3.需要的工具可以從官網(wǎng)下載
- https://appium.io/
- https://www.jetbrains.com/pycharm/
- https://www.python.org/
- https://www.oracle.com/cn/java/technologies/javase-downloads.html
安裝
- python
- jdk
- 編輯器PyCharm
- Appium-windows-x.x
- Appium_Python_Client
- Android SDK
安裝,邁開腿的第一步
python(它可以用于桌面應(yīng)用,游戲開發(fā),網(wǎng)絡(luò)爬蟲)
勾選Add Python x.x to PATH(沒有勾選的安裝成功后可手動在環(huán)境變量里配置)
Install Now
![](/d/20211017/3ba6560b0a3ccb18cae3680cfde6884e.gif)
安裝中…
![](/d/20211017/c923f4bd591ce595b1d8f95435817d7c.gif)
安裝成功
![](/d/20211017/128aaa07d941ba3969df3af5941e5e0c.gif)
驗證是否成功,終端輸入‘python',出現(xiàn)以下內(nèi)容就成功了
![](/d/20211017/d5b442bfceaa9823bd2de9379d7677fb.gif)
暫時沒遇到紅海,有問題評論留言~
jdk
Java 語言的軟件開發(fā)工具包
appium server好像只支持1.8的jdk,so有時候太優(yōu)秀不一定能被認可(狗頭保命)
![](/d/20211017/701c98f1bdd8bced4c516c4a37b9cebd.gif)
![](/d/20211017/34347879754526db60842ef05fdb8eb1.gif)
![](/d/20211017/4c1f25e64dc559cda114d2e2297c6485.gif)
![](/d/20211017/57b89fca527ee44b16cb4cf95f2020b3.gif)
安裝成功,需要在環(huán)境變量里配置一下
![](/d/20211017/dca4fec4ec953546f1e707bd90619b60.gif)
新建一個'JAVA_HOME'
![](/d/20211017/28d2ba5b56ae41871f9837d779e351e0.gif)
把‘JAVA_HOME'添加到path里,注意是添加不是替換,后果不堪設(shè)想
![](/d/20211017/1daa66ff49711e4e2dcda2d319769428.gif)
確定確定確定,打開cmd運行測試一下是否安裝成功,輸入‘java -version',成功
![](/d/20211017/fd15f19af6954a2524012bf9b3d7e666.gif)
編輯器PyCharm
敲代碼的
![](/d/20211017/f95a1c8ebd59c740e658769b13c0a9b3.gif)
![](/d/20211017/3a457e930b85f114ba7c26028803e550.gif)
勾選64-bit launcher 64位啟動器
.py那個隨意,我這邊勾選
![](/d/20211017/ae3f40b00192f750e95a5351dff8a44a.gif)
![](/d/20211017/6e164c6d43bb128fa3c9d06063a12191.gif)
成功
![](/d/20211017/3cfded9ef8637ef40d7d34ab7f8697fa.gif)
安裝過程暫時沒發(fā)現(xiàn)什么錯誤
Appium-windows-x.x
運行腳本需要,可查看運行日志,可以獲取app頁面元素
![](/d/20211017/9b313b8938005d8ef69ec25bfcbca6be.gif)
![](/d/20211017/457465c54d606bfdf73c8fab5f13b556.gif)
第一次運行可能有點慢,耐心等待就好了
![](/d/20211017/0144bd24bcdb91edf5001783618bbc29.gif)
![](/d/20211017/ae62c4c96f5184f1edef084e7726b628.gif)
右上角的三個按鈕分別是
- “start inspector session(啟動檢查器會話)”
- “Get Raw log(查看日志)"
- “Stop Server(停止服務(wù))”
通俗一點 “沖啊” “讓我看看” “不想搞了”
下面一塊是看日志的
![](/d/20211017/41c2e72ee8973c8d6bd8265ab4f17aa9.gif)
最喜歡的來了,菜單欄有個View—語言—中文(我的寶貝啊)
![](/d/20211017/a68761cf1d3f140ca2c6f08ccfc6f5f6.gif)
Appium_Python_Client
調(diào)用客戶端庫和 Appium Server 進行通信
pip install Appium-Python-Client
或者去Pypi下載
![](/d/20211017/a5f10a3e96172d5e1298429d4fa073db.gif)
下載后解壓使用cmd進入Appium-Python-Client-x.x
輸入
運行 setup.py文件就好了
![](/d/20211017/04f01ee480da63db8cbade2390cf394a.gif)
Android SDK
手機baiandroid系統(tǒng)的開發(fā)發(fā)包,用來執(zhí)行命令設(shè)置手機、傳送文件、安裝應(yīng)用、查看手機界面等
找個風(fēng)水寶地解壓就好了
![](/d/20211017/6e2a3b2bbc3270915cac3fd6f8af977c.gif)
所有需要的工具都安裝成功了,來個表情包慶祝一下
連接手機
敲黑板,重點來了,做app自動化肯定要用到手機噻,拿usb連接電腦
(1) 拿出你的手機-----打開手機設(shè)置------找到關(guān)于手機-------一直點擊版本號直到出現(xiàn)提示
![](/d/20211017/e0ec2f8af61f3fc2b1548c784dc350f5.gif)
(2) 打開手機的開發(fā)者選項,該開的開,該關(guān)的關(guān),特別是USB調(diào)試這里一定要打開
![](/d/20211017/35fcdd772051944162942ac63afa05d0.gif)
還有USB設(shè)置需要改一下,暫時只發(fā)現(xiàn)這兩個比較重要,有興趣的可以研究一下開發(fā)人員選項
![](/d/20211017/c4f636e43e72ceb4844a4eea07d599e3.gif)
(3) 測試是否連接成功,在終端輸入‘a(chǎn)db devices -l',查看連接的設(shè)備,如果列表為空,檢查一下是不是有以上原因。
![](/d/20211017/76cf9d0a0c0af3637c7636176c34186f.gif)
使用python+appium打開手機app-B站
打開PyCharm and appium,直接Start Server Vx,xx,x
新建一個項目
![](/d/20211017/57d1ee3a50d82d41d57a33957e7a346c.gif)
新建一個.py,輸入以下代碼(單純打開app)
# 導(dǎo)入webdriver
from appium import webdriver
# 初始化參數(shù)
desired_caps = {
'platformName': 'Android', # 被測手機是安卓
'platformVersion': '10', # 手機安卓版本
'deviceName': 'xxx', # 設(shè)備名,安卓手機可以隨意填寫
'appPackage': 'tv.danmaku.bili', # 啟動APP Package名稱
'appActivity': '.ui.splash.SplashActivity', # 啟動Activity名稱
'unicodeKeyboard': True, # 使用自帶輸入法,輸入中文時填True
'resetKeyboard': True, # 執(zhí)行完程序恢復(fù)原來輸入法
'noReset': True, # 不要重置App,如果為False的話,執(zhí)行完腳本后,app的數(shù)據(jù)會清空,比如你原本登錄了,執(zhí)行完腳本后就退出登錄了
'newCommandTimeout': 6000,
'automationName': 'UiAutomator2'
}
# 連接Appium Server,初始化自動化環(huán)境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 退出程序,記得之前沒敲這段報了一個錯誤 Error: socket hang up 啥啥啥的忘記了,有興趣可以try one try
driver.quit()
不同的手機有不同的版本,自己找一下大概就是這個意思
手機安卓版本platformVersion:
![](/d/20211017/b9c9686a769115059cb0f60f143a4731.gif)
每一個app都有appPackage、appActivity,那應(yīng)該在哪里查看呢
打開終端輸入(手機需要連接電腦)
adb shell dumpsys activity recents | find “intent={”
![](/d/20211017/19a348e4e09e7645aa1dbcb3fd8119cf.gif)
cmp=tv.danmaku.bili/.ui.splash.SplashActivity就是我們需要的appPackage、appActivity了
appPackage = tv.danmaku.bili
appActivity = .ui.splash.SplashActivity
此時我的手機后臺是個這樣的
![](/d/20211017/02ccdac012efd5a237e74a676185101e.gif)
打開成功,運行的時候會在手機上安裝東西,需要手動同意安裝,或者在開發(fā)選項中開權(quán)限,聽懂鞭炮
獲取app元素信息
得到元素才能操控它
兩種方法
(1)使用appium
(2)使用uiautomatorviewer(Android SDK自帶的元素定位工具)
這兩個不可以同時使用,以我現(xiàn)在的技術(shù)來看我個人推薦使用appium
-----------------------------這是一條分割線------------------------------------
appium:打開appium,點擊Start Inspector Session
![](/d/20211017/c0087f02b5b6c8a7807fd0d163474d6d.gif)
輸入對應(yīng)的內(nèi)容(之前那段代碼把參數(shù)和值填進去就好了)
![](/d/20211017/24cedd79fd20d22145f3e0ada8af2aa2.gif)
打開后我們可以看見這樣一個界面,鼠標懸浮在手機界面上可以看到元素,點擊可在右側(cè)查看到需要的元素
![](/d/20211017/1ff050d450f3f64d22297b9d1eee6323.gif)
uiautomatorviewer(Android SDK自帶的元素定位工具)
之前下載過的Android SDK,打開路徑:androidsdk\tools\bin就可以找到uiautomatorviewer了,double click打開它
![](/d/20211017/eb3fc2393d88b72e0250db5a29ef9bee.gif)
會得到這樣的一個界面
![](/d/20211017/150bac67764dc404e2196783f6426511.gif)
在點擊左上角的device Screenshot(uiautomator dump)獲取手機上的屏幕,如果是不同的頁面需要重新點擊
![](/d/20211017/98b8acb4431762e35dceddf744bf5a97.gif)
鼠標懸浮點擊可以看到這個元素的信息
![](/d/20211017/cd59335e4311cf7997e8be4563593adf.gif)
有一些人點擊uiautomatorviewer.bat會閃退,試試下面這個辦法,如果不行百度去吧
開玩笑的啦,我也是百度找方法的,找了好久沒啥子用,還是評論區(qū)留言一起解決吧(一起百度)
打開環(huán)境變量,新建一個 ANDROID_SWT
我的swt是在D:\app\androidsdk\tools\lib\x86_64,輸入正確路徑即可
![](/d/20211017/978cda8af49ac1750ce7d6212e5f5f9b.gif)
確定確定確定,在重新試試double click它
知道元素后就可以操作它了
使用python+appium操作app-B站
目標:使用B站搜索‘泰坦尼克號'
常用的獲取元素方法有
find_element_by_id()
find_elements_by_class_name()
find_element_by_xpath()
find_element_by_css_selector()
# 導(dǎo)入webdriver
from appium import webdriver
# 初始化參數(shù)
desired_caps = {
'platformName': 'Android', # 被測手機是安卓
'platformVersion': '10', # 手機安卓版本
'deviceName': 'xxx', # 設(shè)備名,安卓手機可以隨意填寫
'appPackage': 'tv.danmaku.bili', # 啟動APP Package名稱
'appActivity': '.ui.splash.SplashActivity', # 啟動Activity名稱
'unicodeKeyboard': True, # 使用自帶輸入法,輸入中文時填True
'resetKeyboard': True, # 執(zhí)行完程序恢復(fù)原來輸入法
'noReset': True, # 不要重置App,如果為False的話,執(zhí)行完腳本后,app的數(shù)據(jù)會清空,比如你原本登錄了,執(zhí)行完腳本后就退出登錄了
'newCommandTimeout': 6000,
'automationName': 'UiAutomator2'
}
# 連接Appium Server,初始化自動化環(huán)境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 設(shè)置等待時間,如果不給時間的話可能會找不到元素
driver.implicitly_wait(5)
# 點擊搜索框
driver.find_element_by_id("expand_search").click()
# 輸入“泰坦尼克號”
driver.find_element_by_id("search_src_text").send_keys("泰坦尼克號")
# 鍵盤回車
driver.keyevent(66)
# 因為它搜索完后就直接退出app了,看不到搜索結(jié)果頁,所以我給了一個讓他停下的方法
input('**********')
# 退出程序,記得之前沒敲這段報了一個錯誤 Error: socket hang up 啥啥啥的忘記了,有興趣可以try one try
driver.quit()
最后就是這樣子的
![](/d/20211017/1a0e2770334608ea3ec3d2d443084a19.gif)
到此這篇Python+Appium新手教程的文章就介紹到這了,更多相關(guān)Python+Appium教程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python使用Appium在移動端抓取微博數(shù)據(jù)的實現(xiàn)
- Python3+Appium安裝及Appium模擬微信登錄方法詳解
- 詳解使用python爬取抖音app視頻(appium可以操控手機)
- Python實現(xiàn)Appium端口檢測與釋放的實現(xiàn)
- Python3+Appium安裝使用教程
- python爬蟲之Appium爬取手機App數(shù)據(jù)及模擬用戶手勢