python appium筆記(二):元素定位


#這里的示例是用android來說明的,xpath應該是通用的,resource-id不太清楚,沒配過IOS的環境

#環境配置和一些參數的意思不清楚可以看我上一篇python appium筆記(一)

(一)說明

主要說明下面2種方式,其實感覺通過xpath,不管selenium還是appium,應該能定位全部元素了。

1、resource-id:定義了resource-id,並且唯一的情況下,可以使用這種方式

2、xpath:任何情況下,都可以用xpath進行定位

(二)查看

#做第四步的時候,記得先連真機,並且開啟USB調試

1、啟動appium,點擊下面的start server

2、點擊file -- new session window

 

3、配置Desired Capabilities(這里可以保存配置信息,方便下次使用)

4、Start Session啟動

 

5、如上圖,可以看到resource-id的值,但是可以發現這個值不是唯一的。

6、所以可以用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()


免責聲明!

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



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