appium--desktop


appium desktop簡單使用

下載地址https://github.com/appium/appium-desktop/releases

 

Appium Desktop與Appium不是同一個東西。Appium Desktop是對於Appium而言,是一個擁有更多相關工具的圖形化界面。

安裝完直接啟動,啟動成功是如下的頁面

 

點擊start server啟動一個服務

 

左下角的鏈接是文檔說明,可以查看相對應的文檔。

設備id和appPackage,appActivity都可以通過adb devices獲取(可以看我的adb文章),如果是模擬器,需要先連接

如果沒有安裝,需要在增加一個參數app,后面放app的絕對路徑

這樣配置好之后,就會自動打開我們的app,啟動之后,會打開一個頁面,這個頁面可以幫助我們分析各個元素的屬性等等內容

我們選中開啟,單擊tap就會進入下一步

溫馨提示:如果頁面和手機的頁面沒有同步,點擊刷新按鈕

 錄制腳本

appium--desktop提供了我們錄制腳本的功能,就像selenium的錄制腳本一樣

啟動appium desktop之后,開始錄制

選擇一個控件之后,點擊tap,就會在上面出現一行代碼,錄制完成之后,點擊右上角的 Show/Hide Boilerplate Code在點擊復制,這樣就把我們錄制好的腳本轉成了對應語言的腳本

 把錄制好的腳本放到pycharm里,加以改造,加上隱式等待,要不然會報錯

 1 # This sample code uses the Appium python client
 2 # pip install Appium-Python-Client
 3 # Then you can paste this into a file and simply run with Python
 4 
 5 from appium import webdriver
 6 
 7 caps = {}
 8 caps["platformName"] = "Android"
 9 caps["deviceName"] = "CLB0219314000452"
10 caps["appPackage"] = "com.xueqiu.android"
11 caps["appActivity"] = ".view.WelcomeActivityAlias"
12 caps["platfromVersion"] = "9.0.0"
13 
14 driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
15 driver.implicitly_wait(15)
16 el1 = driver.find_element_by_id("com.XXX")
17 el1.click()
18 el2 = driver.find_element_by_id("com.android.packageinstaller:id/permission_allow_button")
19 el2.click()
20 el2.click()
21 el3 = driver.find_element_by_xpath("/hierameLayout/android.wid")
22 el3.click()
23 
24 driver.quit()

這樣我們就可以使用pycharm啟動我們的腳本了

自動允許權限

上面腳本有四個點擊事件,其中前面的三個點擊事件是允許權限的,我們可以設置 autoGrantPermissions為True,在來改動我們的腳本

# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python

from appium import webdriver

caps = {}
caps["platformName"] = "Android"
caps["deviceName"] = "CLB0219314000452"
caps["appPackage"] = "com.xueqiu.android"
caps["appActivity"] = ".view.WelcomeActivityAlias"
caps["platfromVersion"] = "9.0.0"
caps["autoGrantPermissions"] = True  # 設置自動授權權限

driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
driver.implicitly_wait(15)

el3 = driver.find_element_by_xpath("/t.FrameLayout[1]/androidget.ImageView")
el3.click()

driver.quit()

設置了autoGrantPermissions為True之后,我們就可以把前面的三個點擊事件去掉,這樣就會自動授權,不需要我們手動授權了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM