#這裏的示例是用android來講明的,xpath應該是通用的,resource-id不太清楚,沒配過IOS的環境python
#環境配置和一些參數的意思不清楚能夠看我上一篇python appium筆記(一)android
(一)說明web
主要說明下面2種方式,其實感受經過xpath,無論selenium仍是appium,應該能定位所有元素了。session
一、resource-id:定義了resource-id,而且惟一的狀況下,可使用這種方式app
二、xpath:任何狀況下,均可以用xpath進行定位ide
(二)查看ui
#作第四步的時候,記得先連真機,而且開啓USB調試idea
一、啓動appium,點擊下面的start serverspa
二、點擊file -- new session window3d
三、配置Desired Capabilities(這裏能夠保存配置信息,方便下次使用)
四、Start Session啓動
五、如上圖,能夠看到resource-id的值,可是能夠發現這個值不是惟一的。
六、因此能夠用xpath進定位,把 android.widget.ImageView這些東西當成HTML的標籤看就好了。(這裏我當你已經能熟練的在selenium中使用xpath定位)
//android.support.v7.app.ActionBar.Tab[4]//android.widget.ImageView
(三)示例
這裏用博客園的app作示例了
1 from appium import webdriver 2 import time 3 desired_caps = { 4 'platformName':'Android', 5 #用真機的時候,這個參數deviceName沒什麼用,可是仍是必需要有這個參數,值的話隨便填就好了 6 'deviceName':'HUAWEI', 7 'platformVersion':'7.0', 8 'appPackage':'com.rae.cnblogs', 9 'appActivity':'com.rae.cnblogs.activity.LauncherActivity', 10 'unid':'填寫本身手機unid的值', 11 'noReset':'true', 12 #設置下面2個參數解決不能輸入中文的問題 13 'unicodeKeyboard': 'True', 14 'resetKeyboard':'True' 15 } 16 driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps) 17 driver.implicitly_wait(20) 18 #定位 我,經過xpath定位 19 my = driver.find_element_by_xpath('//android.support.v7.app.ActionBar.Tab[4]//android.widget.ImageView') 20 my.click() 21 #定位意見反饋,經過resource-id定位 22 idea = driver.find_element_by_id('com.rae.cnblogs:id/ll_feedback') 23 idea.click() 24 #定位意見反饋輸入框 25 idea_input = driver.find_element_by_id('com.rae.cnblogs:id/avoscloud_feedback_input') 26 # idea_input = driver.find_element_by_xpath('//android.widget.LinearLayout[2]/android.widget.EditText') 27 #定位發送意見按鈕 28 idea_send = driver.find_element_by_id('com.rae.cnblogs:id/avoscloud_feedback_send') 29 #輸入意見信息 30 idea_input.send_keys('博客園is very good!support you') 31 #點擊發送 32 idea_send.click() 33 time.sleep(10) #睡眠10秒 34 #退出app 35 driver.quit()