AppiumDesktop啓動頁面:python
platformName:'Android' #Android手機
platformVersion:'4.3 ' #模擬器系統是4.3
deviceName:'192.168.105.101::5555' # 這個是模擬器的設備名稱web
app:'D:\\app\\SHIPPER_Android_TEST_4.1.1.0.apk' # 安裝本身待測app,類型爲filepathshell
appPackage:'com.taobao.taobao' #app的包名稱app
appActivity:'com.taobao.tao.welcome.Welcome ' #activity的名稱ide
使用命令查看:adb shell dumpsys activity activitiesui
noReset:是一個bool值,選TRUE。
若是想要使用真機,必須再加一個字段udid,是text類型。this
2.參數配置好以後能夠保存下,而後啓動模擬器,再點Start Session按鈕就能定位元素了3d
寫Appium腳本的最重要的一個信息是定位元素,獲取元素的ID或者xpath等等相似的信息。
只須要點擊Inspector最左邊一欄的Select按鈕,而後再去點擊所要獲取信息的元素便可,當元素突出顯示時,其信息將顯示在Inspector右側的詳細視圖中。有些是用accessibility id 定位,有些是xpath定位或者其餘的定位信息,可是在iOS應用上Appium推薦使用accessibility id 來定位一個元素信息。
在Inspector窗口的中間是您的應用程序的層次結構,表示爲XML。code
如今能夠定位當前頁面的元素了,可是怎麼滑動到下一個頁面或者怎麼滑動頁面上的滑動條(slider)呢?
選中Swipe。模擬在手機上的操做手勢,從起點到終點各點擊一下,就實現了滑動。orm
若是咱們想要點擊某一個元素進行下一步操做,好比在輸入框內輸入文本或者彈出一個alert該怎麼操做呢?
選中Tap。而後再去點擊textfield或者alert咱們就能夠進行下一個操做了。若是想要定位alert上的元素信息,那就在alert彈出的時候在切換到Select,而後點擊想要定位的元素就好了。
這真的是一個很實用的功能。他彷佛解決了咱們一個大問題,那就是該使用哪一個API的問題以及腳本的編寫規範的問題。對於初步入坑的小夥伴來講是一個很好的參考。腳本錄製功能就是那個眼睛圖標,以下圖:
點擊該按鈕之後以下圖:
而後就能夠在左邊隨便對App進行操做了,此處我進行的操做有:點擊輸入框,點擊Alert,滑動滑動條,滑動屏幕,點擊軟鍵盤並輸入文本(這裏我選擇是Python語言)。這時候Inspector生成的腳本是很是簡單的,只是對你操做的步驟進行記錄,還不能執行,這段腳本以下:
TouchAction(driver).tap([(167, 73)])
TouchAction(driver).tap([(81, 300)])
TouchAction(driver).tap([(303, 414)])
el1 = driver.find_element_by_accessibility_id("IntegerA")
el1.click()
el1.send_keys("Hello")
TouchAction(driver)
.press({x: 198, y: 393})
.moveTo({x: 50: y: 0})
.release()
TouchAction(driver)
.press({x: 335, y: 264})
.moveTo({x: -183: y: -3})
.release()
TouchAction(driver).tap([(191, 498)])
TouchAction(driver).tap([(357, 698)])
反正我沒看懂這段代碼。別擔憂,這只是Inspector默認生成的極簡腳本,善良的Inspectory爲咱們提供了一個功能那就是將極簡腳本變成可執行腳本,操做以下圖:
如今腳本就變成了這個樣子:
# 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"] = "iOS"
caps["platformVersion"] = "10.3"
caps["deviceName"] = "iPhone 7 Plus"
caps["app"] = "http://appium.s3.amazonaws.com/TestApp7.1.app.zip"
caps["noReset"] = True
driver = webdriver.remote("http://0.0.0.0:4723/wd/hub", caps)TouchAction(driver).tap([(167, 73)])TouchAction(driver).tap([(81, 300)])TouchAction(driver).tap([(303, 414)])el1 = driver.find_element_by_accessibility_id("IntegerA")el1.click()el1.send_keys("Hello")TouchAction(driver).press({x: 198, y: 393}).moveTo({x: 50: y: 0}).release()TouchAction(driver).press({x: 335, y: 264}).moveTo({x: -183: y: -3}).release()TouchAction(driver).tap([(191, 498)])TouchAction(driver).tap([(357, 698)])driver.quit()