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之后,我們就可以把前面的三個點擊事件去掉,這樣就會自動授權,不需要我們手動授權了