1. 程式人生 > 實用技巧 >appium的安裝配置

appium的安裝配置

安裝

安裝Appium Python Client 包 (Client庫)

pip install Appium-Python-Client

要確保安裝匹配版本的selenium 和 appium

pip install selenium -U

安裝AppiumServer

  • 方法一:node.js & npm (下載比較緩慢)
npm install -g appium

安裝 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()