小白:Appium 環境怎么搭建,你能帶帶我嗎?
大白:撓撓頭
大白:吶,給你(伸手就是一篇 博客 )
接下來就可以愉快地學習 APP 自動化啦~~
1. 匯入 package
首先匯入 appium 模塊(需要先 pip 安裝模塊)
from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey
2. 創建 webdriver 實體
2.1 Remote
Remote 實際上就是包裝過的 webdriver ,通過下面的代碼
創建一個 webdriver 實體:
# 連接 Appium server 初始化自動化環境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
'http://localhost:4723/wd/hub' 為 Appium server 的 HTTP 服務埠和地址,每次打開 Appium 都會顯示:
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
自動化程式就是客戶端,通過創建實體使客戶端與 server 連接,
2.2 配置資訊
desired_caps 是自動化配置資訊
desired_caps = {
'platformName': 'Android', # 被測手機是安卓
'platformVersion': '8', # 手機安卓版本
'deviceName': 'xxx', # 設備名,安卓手機可以隨意填寫
'appPackage': 'tv.danmaku.bili', # 啟動APP Package名稱
'appActivity': '.ui.splash.SplashActivity', # 啟動Activity名稱
'unicodeKeyboard': True, # 使用自帶輸入法,輸入中文時填True
'resetKeyboard': True, # 執行完程式恢復原來輸入法
'noReset': True, # 不要重置App
'newCommandTimeout': 6000,
'automationName' : 'UiAutomator2'
# 'app': r'd:\apk\bili.apk',
}
2.3 appPackage & appActivity
其中,appPackage 和 appActivity 的獲取方式如下:
打開應用,使用下面的命令查看:
adb shell dumpsys activity recents | grep "intent"
輸出的第一行為:
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=tv.danmaku.bili/.ui.splash.SplashActivity}
其中 cmp=tv.danmaku.bili/.ui.splash.SplashActivity 包含了
'appPackage': 'tv.danmaku.bili'
'appActivity': '.ui.splash.SplashActivity'
3. 定位元素
3.1 uiautomatorviewer
雙擊 D:\android-sdk\tools\bin\uiautomatorviewer 打開視窗(注意要先將 Appium Inspector 關閉),點擊左上角第二個圖示即可加載手機頁面和頁面的樹:

右側展示了節點的資訊!
對了,通過 uiautomatorviewer 也可以查看 appPackage 資訊哦 ~
3.2 Appium Inspector
使用 Appium Inspector 查看 DOM 和查看元素的資訊
在表格內輸入資訊后,點擊保存,點擊 Start Session

此時,Inspector 會充當一個 client,可以看到 Appium 上的 HTTP 請求資訊 ~
可以重繪展示 APP 當前頁面:

點擊右上角的搜索按鈕可以查看元素,根據回傳值的個數可以確定是否能夠唯一查找 ~
3.3 定位方法
定位方法主要包括利用元素 CSS 定位,以及通過 Xpath 定位,定位方法可以參考這兩篇文章哈~
CSS 定位方法: Selenium 元素查找和操作元素
Xpath 定位方法:使用 xpath 選擇元素
REFERENCE:
- https://www.bilibili.com/video/BV1tE411n7rV?p=10
END
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/279619.html
標籤:其他
