python+appium
目錄
一、環(huán)境搭建
1、安裝JDK(1.8.0)并配置環(huán)境
2、安裝Andorid SDK(建議使用29版本)
3、安裝NodeJs
4、安裝appium
5、安裝appium-python-client
二、連接
1、adb連接設(shè)備
2、開(kāi)啟Appium Server
3、?python腳本
三、API Documentation - Appium
1、app
2、元素
3、交互
一、環(huán)境搭建
1、安裝JDK(1.8.0)并配置環(huán)境
?1、下載
????????下載JDK文件,點(diǎn)擊運(yùn)行安裝
?2、配置環(huán)境變量
? ? ?(1)新建一個(gè)名為JAVA_HOME的環(huán)境變量,變量值為JDK的安裝路徑
? ? ?(2)將%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin添加到path中
? ? ?(3)新建一個(gè)名為classpath的環(huán)境變量,變量值為:
? ? ? ? ? %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
?3、驗(yàn)證
? ? ? ? cmd窗口中輸入java -version
2、安裝Andorid SDK(建議使用29版本)
1、下載
????????下載Andorid SDK文件,點(diǎn)擊進(jìn)行安裝
2、安裝相關(guān)工具(默認(rèn)前三個(gè))
????????雙擊Andorid SDK Manager,選擇前三個(gè)tools點(diǎn)擊安裝
3、配置環(huán)境變量
? ?(1)新建ANDROID_HOME變量,變量值為Andorid SDK的路徑
? ?(2)將%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools添加到path中
4、驗(yàn)證
????????cmd窗口中輸入adb,出現(xiàn)版本號(hào)則說(shuō)明安裝成功
3、安裝NodeJs
1、下載
????????下載NodeJS文件,點(diǎn)擊進(jìn)行安裝
2、配置環(huán)境變量
? ? ? ? 自動(dòng)
3、驗(yàn)證
? ? ? ? cmd窗口中輸入node -v,npm -v
4、安裝appium
1、下載
????????下載appium-desktop文件,點(diǎn)擊進(jìn)行安裝
2、配置環(huán)境變量
5、安裝appium-python-client
1、pip install -U appium-python-client
二、連接
1、adb連接設(shè)備
1、打開(kāi)手機(jī)或模擬器開(kāi)發(fā)者模式
2、win+r打開(kāi)cmd
3、adb connect 127.0.0.1:21503
4、adb devices -l
5、adb shell dumpsys window |findstr mCurrent
2、開(kāi)啟Appium Server
{"deviceName": "127.0.0.1:62001","appPackage": "com.android.launcher3","appActivity": "com.android.launcher3.launcher3.Launcher","platformName": "Android","noReset": true }3、?python腳本
from appium import webdriver from appium.webdriver.common.appiumby import AppiumBy from appium.webdriver.common.touch_action import TouchAction import timedesired_caps = {"deviceName": "127.0.0.1:62001","appPackage": "com.hypergryph.arknights","appActivity": "com.u8.sdk.U8UnityContext","platformName": "Android","noReset": True,"newCommandTimeout": 600 }driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps) actions = TouchAction(driver) # start、開(kāi)始喚醒、取得神經(jīng)連接 time.sleep(30) actions.tap(x=635, y=515).perform() time.sleep(15) actions.tap(x=635, y=515).perform() time.sleep(40) # 簽到 actions.tap(x=591, y=591).perform() time.sleep(5) # 關(guān)閉簽到 actions.tap(x=1216, y=79).perform() time.sleep(5) # 關(guān)閉公告 actions.tap(x=1236, y=74).perform() time.sleep(5) # 點(diǎn)擊當(dāng)前 actions.tap(x=929, y=220).perform() time.sleep(5) # 點(diǎn)擊前往上一次作戰(zhàn) actions.tap(x=1137, y=602).perform() time.sleep(10) # 循環(huán)刷取關(guān)卡 for i in range(2):actions.tap(x=1144, y=671).perform()time.sleep(10)actions.tap(x=1103, y=604).perform()time.sleep(180)actions.tap(x=1137, y=602).perform()time.sleep(15)driver.quit()三、API Documentation - Appium
1、app
# 安裝 driver.install_app('/Users/johndoe/path/to/app.apk') # 是否已安裝 driver.is_app_installed('com.example.AppName') # 啟動(dòng) driver.launch_app() # 后臺(tái)應(yīng)用程序 driver.background_app(10) # 關(guān)閉應(yīng)用程序 driver.close_app() # 重啟應(yīng)用程序 driver.reset() # 刪除應(yīng)用程序 driver.remove_app('com.example.AppName') # 激活應(yīng)用程序 driver.activate_app('com.apple.Preferences') driver.activate_app('io.appium.android.apis') # 終止程序 driver.terminate_app('com.apple.Preferences') driver.terminate_app('io.appium.android.apis') # 獲取應(yīng)用狀態(tài) driver.query_app_state('com.apple.Preferences') driver.query_app_state('io.appium.android.apis') # 得到應(yīng)用的字符串 appStrings = driver.app_strings("en", "/path/to/file") # 結(jié)束測(cè)試覆蓋率 driver.end_test_coverage("Intent", "/path")2、元素
# 查找元素 driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="SomeAccessibilityID") driver.find_elements(AppiumBy.ACCESSIBILITY_ID,'SomeAccessibilityID') # 行為 el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='SomeId') el.click() el.send_keys('Hello world!') el.clear() # 元素 el = self.driver.find_element_by_accessibility_id('SomeAccessibilityID') el.text el.tag_name el.get_attribute('content-desc') el.is_selected() el.is_enabled() el.is_displayed() el.location el.size3、交互
from appium.webdriver.common.touch_action import TouchAction # ... actions = TouchAction(driver)# 單次點(diǎn)擊 actions.tap(element) # 雙擊 actions.double_tap(element) # 移動(dòng) actions.tap_and_hold(element) actions.move_to(element, 50, 50) # 向下觸摸 actions.tap_and_hold(element) actions.move(50, 50) # 向上觸摸 actions.tap_and_hold(element) actions.release(50, 50) # 長(zhǎng)按 actions.long_press(element) # 滾動(dòng) actions.scroll_from_element(element, 10, 100) actions.scroll(10, 100) # 使用手指運(yùn)動(dòng)事件在觸摸屏上輕拂 actions.flick_element(element, 1, 10, 10) # 觸摸執(zhí)行 actions.tap_and_hold(20, 20) actions.move_to(10, 100) actions.release()actions.perform()總結(jié)
以上是生活随笔為你收集整理的python+appium的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 税务行业之入库销号
- 下一篇: pandas画图的几个技巧