appium的安裝配置
阿新 • • 發佈:2020-07-16
安裝
安裝Appium Python Client 包 (Client庫)
pip install Appium-Python-Client
要確保安裝匹配版本的selenium 和 appium
pip install selenium -U
安裝AppiumServer
- 方法一:node.js & npm (下載比較緩慢)
npm install -g appium
-
方法二: Appium Desktop
下載地址 http://appium.io/
安裝 Android SDK
* 安卓app自動化, Appium server 依賴 Android SDK
Android Studio 包含了 Android SDK的安裝工具
官方 網站
* https://developer.android.google.cn/studio
歷史版本
* https://developer.android.google.cn/studio/archive
設定環境變數 Android_Home
將adb所在路徑設定到 path 環境變數中
另外新增兩個環境變數 ANDROID_HOME,JAVA_HOME
真機測試
以honor為例
啟用開發者模式和USB除錯
{ "platformName": "Android", "platformVersion": "9", "deviceName": "BND-AL10-A5RNW18316011526", "appPackage": "tv.danmaku.bili", "appActivity": "ui.splash.SplashActivity", "unicodeKeyboard": true, "resetKeyboard": true, "noReset": true, "newCommandTimeout": 6000, "automationName": "UiAutomator2" }
使用adb命令檢視對應的值
# 獲取裝置號
adb devices
# 獲取系統版本
adb -s 裝置號 shell getprop ro.build.version.release
# 獲取app啟動包名和啟動名(⚠️ 手機需要先開啟對應app)
1.Mac/Linux:
adb shell dumpsys window windows | grep mFocusedApp
2.在 Windows 終端執行 '
adb shell dumpsys window windows
然後去看mFocusedApp這一行的內容。
如圖
start
python自動化執行
from appium import webdriver # 視覺化投屏 from appium.webdriver.extensions.android.nativekey import AndroidKey desird_caps = { "platformName": "Android", "platformVersion": "9", "deviceName": "BND-AL10-A5RNW18316011526", # 自己手機型號-adb devices 返回的裝置號 "appPackage": "tv.danmaku.bili", # 啟動APP package 名稱 "appActivity": "ui.splash.SplashActivity", # 對應的activity名稱 "unicodeKeyboard": True, "resetKeyboard": True, "noReset": True, } # 連線Appium Server, 初始化自動化環境 開始控制手機 固定寫法 desird_caps:配置資訊 driver = webdriver.Remote('http://localhost:4723/wd/hub', desird_caps) # 設定預設等待時間 driver.implicitly_wait(10) # 根據id定位搜尋位置框,點選 driver.find_element_by_id("expand_search").click() # 根據id定位搜尋框輸入框,點選 sbox = driver.find_element_by_id('search_src_text') sbox.send_keys('老祝頭之夜的鋼琴曲第五篇') # 輸入回車鍵,確定搜尋 driver.press_keycode(AndroidKey.ENTER) # 選擇(定位) 所有視訊標題 因為id不唯一 所有用 elements eles = driver.find_elements_by_id('title') for ele in eles: ele.click() # 列印標題 # print(ele.text) input('****按任意鍵退出...') driver.quit()