python-appium安卓APP自動化環境搭建
- 安裝步驟總覽:
- 第一步:下載安裝包
- 第二步:安裝node.js
- 第三步:安裝java-sdk
- 第四步:配置Java環境變數
- 一共配置三處環境變數
- 系統變數中,新建(1)
- 系統變數中,新建(2)
- 用戶變數中的path變數中新增三條新建(1)
- 第五步:SDK Tools和部分工具內容
- 第六步:配置ANDROID_HOME環境變數
- 第七步:安裝Appium和鏈接手機
- 第八步:鏈接手機進行除錯
- 第九步:python代碼連接操作
- 樣例代碼和appium基本操作api
安裝步驟總覽:
第一步:下載安裝包
- node.js
- java-sdk
- SDK Tools
- Appium
第二步:安裝node.js
- D盤新建檔案夾“nodejs”
- 安裝時安裝到此檔案夾即可
- 打開cmd輸入“node -v”顯示版本號即為成功

第三步:安裝java-sdk
-
D盤新建檔案夾“Java”和“Java_an”
-
安裝時 第一次輸入安裝路徑輸入“D:\Java” 第二次輸入安裝路徑輸入“D:\java_an”
-
安裝完成后進入“D:\java_an\bin”地址欄輸入cmd敲回車,打開cmd視窗,

-
輸入“java”和“javac”顯示相關內容即為成功
java

javac

第四步:配置Java環境變數
一共配置三處環境變數
系統變數中,新建(1)
- [變數名 ] JAVA_HOME
- [變數值 ] D:\Java
系統變數中,新建(2)
- [變數名 ] CLASSPATH
- [變數值 ] .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
兩個環境變數配置方式一樣,注意一定要記得保存

用戶變數中的path變數中新增三條新建(1)
- [變數值 ] %JAVA_HOME%\bin
- [變數值 ] %JAVA_HOME%\jre\bin
注意:win環境是分別添加的如圖所示,win7環境是通過分號鏈接兩個變數值的,詳情請百度
驗證java的環境變數是否成功
- 直接運行系統cmd視窗

- 輸入“java”和“javac”顯示相關內容即為成功
java

javac

第五步:SDK Tools和部分工具內容
- D盤新建檔案夾“SDKTools”
- 安裝時安裝到此檔案夾即可
- 安裝完成后進入“D:\SDKTools”打開“SDK Manager.exe”
- 安裝時只需要安裝這5個就行

第六步:配置ANDROID_HOME環境變數
系統變數中,新建(1)
- [變數名 ] ANDROID_HOME
- [變數值 ] D:\SDKTools
用戶變數中的path變數中新增三條新建(1)
- [變數值 ] %ANDROID_HOME%\tools
- [變數值 ] %ANDROID_HOME%\platform-tools
注意:添加配置的方式和java環境變數配置方法一樣,win環境是分別添加的如圖所示,win7環境是通過分號鏈接兩個變數值的,詳情請百度,記得點保存
驗證android的環境變數是否配置成功
- 直接運行系統cmd視窗

- 輸入“adb version”顯示相關內容即為成功
adb version

第七步:安裝Appium和鏈接手機
- 直接安裝即可
第八步:鏈接手機進行除錯
- usb資料線鏈接手機,打開手機usb除錯(usb除錯找不到請百度,模擬器鏈接方式下次說,這次先說真機)
- 獲取設備名稱
adb devices,紅框兩面的就是

- 獲取手機安卓版本,
手機設定》關于手機》安卓版本
- 手機型別:Android
- 生成:json
{
"deviceName": "P7CDU18C04001791",
"platformVersion": "10.0.0",
"platformName": "Android"
}
- 啟動appium(不要改動默認填寫的東西)


-
輸入連接配置,連接手機,


-
連接成功

第九步:python代碼連接操作
連接方式和web端的selenium基本相同原理也十分近似,api也幾乎一樣,如果selenium掌握了那么appium也是會很好掌握的,
樣例代碼和appium基本操作api
# -*- coding: utf-8 -*-
from appium import webdriver # 匯入appium包
desc = {
"deviceName": "P7CDU18C04001791", # 手機設備名稱,adb devices
"platformVersion": "10.0.0", # 手機版本,在手機中:設定--關于手機
"platformName": "Android", # 手機型別,ios或android
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desc) # 訪問服務介面,并啟動手機app,url引數是當appium啟動后,默認訪問服務地址和介面
driver.implicitly_wait(10) # 設定隱式等待時間
driver.find_element_by_id('') # 通過id定位
driver.find_element_by_xpath('') # 通過xpath運算式定位
driver.find_element_by_class_name('') # 通過class名稱定位
driver.find_element_by_link_text('') # 通過元素文本定位
元素本文值 = driver.find_element_by_id('').text # 獲取元素的本文值
driver.find_element_by_id('').click() # 點擊元素
driver.find_element_by_id('').click() # 點擊元素
driver.find_element_by_id('').clear() # 清除元素輸入的內容
driver.find_element_by_id('').send_keys('輸入的內容') # 向元素內輸入內容
driver.back() # 進行回傳操作
driver.quit() # 進行關閉鏈接操作
# 進行截圖操作,將截圖保存為指定名稱并指定路徑
driver.get_screenshot_as_file(u'F:\\wifibanlv\\find_element\\image\\anjian01.png')
# 進行截圖操作,將截圖保存為base64值
base64值 = driver.get_screenshot_as_base64()
# 進行截圖操作,指定名稱保存到當前腳本所在的檔案夾,
driver.save_screenshot('anjian.png')
# 螢屏滑動操作
driver.execute_script("mobile:dragFromToForDuration",
{"duration": 0.5,#滑動完成所需時間
"element": None,#指定元素
"fromX": 0,#x軸滑動開始位置
"fromY": 650,#y軸滑動開始位置
"toX": 0,#x軸滑動結束位置
"toY": 100})#y軸滑動結束位置
感謝各位的關注和支持,下次準備些關于unittest測驗框架的應用,支持selenium和appium;對報告內容優化和報告中截圖相關事項決議,以及unittest測驗框架基礎概念和相關api描述及應用,至此再次感謝,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/243863.html
標籤:其他

