安裝和配置
類型 | 內容 | 安裝步驟 | 驗證 |
android | jdk(java開發包) |
1.找到8版本jdk下載並安裝 2.並在系統變量中添加 JAVA_HOME:C:\Program Files\Java\jdk1.8.0_231(jdk安裝路徑) CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; path:%JAVA_HOME%\jre\bin(jre路徑)和%JAVA_HOME%\bin(bin路徑) |
java -version 結果:出現版本信息 |
android sdk(軟件開發包) |
1.可以直接下載安裝帶sdk的android studio 2.file>setting>搜索框輸入sdk查找sdk安裝路徑 3.添加系統變量 ANDROID_HOME:C:\Users\Rock\AppData\Local\Android\Sdk(sdk安裝路徑) path:%ANDROID_HOME%\tools(tools路徑) %ANDROID_HOME%\platform-tools(platform-tools路徑) %ANDROID_HOME%\build-tools\29.0.3(build-tools路徑) |
解決adb不是內部或外部指令 cmd裏輸入adb和aapt 結果:出現命令行幫助信息 |
|
android studio(開發工具) | 下載並安裝 | ||
genimotion(模擬器) |
1.下載並安裝genimotion 2..android打開設置(Ctrl+Alt+S) 3..找到Plugins選項並點擊 4..在搜索欄輸入enymotion,然後點擊Search in repositories在線搜索 5.install |
||
python | python環境 |
1.下載地址:https://www.python.org/downloads/ 2.安裝時勾選add python 版本 to path |
python 出現python版本信息 |
pycharm編輯器 | |||
.NET framework |
.NET framework3.5(包括.NET2.0和) .NET framework4.8 Advanced Services |
設置路徑控制面板>程序>程序和功能>啓用或關閉windows功能 | |
appium | appium客戶端 |
下載安裝appium客戶端 |
|
appium服務端 | appium服務端:npm install -g appium --registry=https://registry.npm.taobao.org | ||
appium-doctror | appium-doctror:npm install -g appium-doctor(安裝後可以檢查appium的環境配置情況) | ||
Appium-Python-Client | 安裝Appium-Python-Client:pip install Appium-Python-Client |
adb命令
作用 | adb命令 | 結果 |
查看包名 | adb shell dumpsys window windows | findstr mFocusedApp |
mFocusedApp=AppWindowToken{52a313dc token=Token{5289c48c ActivityRecord{529ad31c u0 com.example.myapplication/.MainActivity t10}}} 包名:com.example.myapplication 界面名:.MainActivity |
發送文件 |
adb push 文件路徑 手機文件路徑 adb push D:\testing\1.txt /sdcard |
模擬器的fileManiger可以查看文件目錄 D:\testing\1.txt: 1 file pushed, 0 skipped. 0.0 MB/s (6 bytes in 0.157s) /sdcard是所有設備都有的路徑 傳好後要在文件列表右下角展開按鈕,然後refresh刷新 |
從手機中拉取文件 |
adb pull手機文件路徑 電腦目錄 adb pull /sdcard/1.txt D:/testing |
/sdcard/1.txt: 1 file pulled, 0 skipped. 0.0 MB/s (6 bytes in 0.002s) |
app啓動時間 | adb shell am start -W com.example.myapplication/.MainActivity |
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.myapplication/.MainActivity } 946:0.946秒 thistimae:應用啓動時間(系統+application) totalTime:界面啓動完成所需時間(系統+application+activity) |
獲取手機日誌 | adb logcat | |
設備列表 | adb devices | |
adb重啓 | adb kill-server 和adb start-server |
python代碼
類別 | 功能 | 代碼 | 解釋/例子 |
應用 | 啓動其他app |
driver.start_activity(appPackage,appActivity) driver.start_activity('com.android.mms','com.android.setting') |
appPackage:程序包名, appActivity:程序界面名 |
獲取包名 | driver.current_package | ||
獲取界面名 | driver.current_activity | ||
關閉app | driver.close_app() | ||
關閉驅動對象 | driver.quil() | ||
安裝app | driver.install_app(app_path) | ||
卸載app | driver.remove_app(app_id) | ||
判斷是否安裝app |
driver.is_install_app(app_id) |
driver.is_install_app(“cn.goapk.market”) 返回布爾值 |
|
將應用置於後臺 | driver.background_app(second) | 後臺停留多少秒,在後臺待多少秒再回到原界面 | |
定位 | 定位元素一個元素 |
//class driver.find_element_by_id(id_value) //id driver.find_element_by_class_name(class_value) //xpath driver.find_element_by_xpath(xpath_value) |
element id_value的值是resource-id的字符串形式,它可以在uiautomatorviewer裏查看 class_value可以在uiautomatorviewer裏查看 找不到元素會報錯 |
定位一組元素 |
//class driver.find_elements_by_id(id_value) //id driver.find_elements_by_class_name(class_value) //xpath driver.find_elements_by_xpath(xpath_value) |
elements 找不到元素會返回空列表 |
|
元素等待 | 隱式等待 | ||
顯示等待 |
python+appium案例
1.使用appium打開模擬器中軟件(前置代碼)
from appium import webdriver
import time
desired_caps = dict()
//手機參數:設備類型,模擬器(手機)版本,設備號(隨便寫)
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4'
desired_caps['deviceName'] = '192.168.56.101:5555'
//應用參數:程序包名,界面
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
//連接appium,獲取driver
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(5)
driver.quit()
2.查找元素
- 步驟一:uiautomatorviewer查找元素
C:\Users\Rock\AppData\Local\Android\Sdk\tools\bin下打開uiautomatorviewer.bat
uiautomatorviewer運行不正常原因
點擊uiautomatorviewer菜單欄第二個按鈕報錯:原因是appium正在用adb,解決方法:先在cmd關閉adb再開adb
uiautomatorviewer閃退原因jdk版本不是8
- 步驟二:在前置基礎上添加代碼
# 通過id查找一個元素
fun1 = driver.find_element_by_id("com.android.settings:id/switchWidget")
fun1.click()
# 通過class查找一個元素
fun1 = driver.find_element_by_class_name("")
# 通過xpath查找一個元素
fun1 = driver.find_element_by_xpath("")
# 通過id查找一組元素
fun1 = driver.find_elements_by_id("com.android.settings:id/switchWidget")
fun1[1].click()
# 通過class查找一組元素
fun1 = driver.find_elements_by_class_name("android.widget.TextView")
for tex1 in fun1:
print(tex1.text)
# 通過xpath查找一組元素
fun1 = driver.find_elements_by_xpath("")
3.等待
time.sleep:直接睡眠模式,停止運行指定秒數
隱式等待:在等待時間後,如果出現了要查找的元素再進行後續操作,如果沒有出現則報錯(元素在指定時間內要出現)
顯式等待:每隔多少秒後再進行操作,超出時長報錯