Python+Appium學習篇之元素定位


背景:

QQ郵箱為例;APPIUM版本=1.8

1. list下標定位

先看兩個定位信息

 

 

可以看出這里的  收件箱  和 星標郵件 的resource-Id 是一樣的,這里就可以用list來定位  收件箱 了

u'''list下標定位'''
driver.find_elements_by_id('com.tencent.androidqqmail:id/q0')[0].click()

2.xpath定位

在這里可以看成是一個萬能的定位,只要后面的  收件箱 文本是唯一的就行

u'''xpath定位'''
driver.find_element_by_xpath("//*[@text='收件箱​']").click()

3.content-desc定位

這里就用 accessibility_id 來定位

u'''con-desc定位'''
driver.find_element_by_accessibility_id('寫郵件和設置等功能').click()

4.文本定位

這里就用到 uiautomator 了

u'''文本定位'''
ele='text("收件箱​")'
driver.find_element_by_android_uiautomator(ele).click()

5.組合定位

組合定位可以更精准,這個可以自由搭配(index+text,classname+id等等)

u'''組合定位(id+text)'''
ele='resourceId("com.tencent.androidqqmail:id/q0").text("收件箱​")'
driver.find_element_by_android_uiautomator(ele).click()

6.父子定位

這里就來定位  寫郵件和設置等功能 按鈕

 

可以找到找到兒子的 resourceId

 

這里可以找到父親的classname

父親寫前面,兒子寫后面

u'''父子定位'''
ele='className("android.widget.RelativeLayout").childSelector(resourceId("com.tencent.androidqqmail:id/f"))'
driver.find_element_by_android_uiautomator(ele).click()

7.兄弟定位

  

找到能定位他們兩個的東東,這里就找了 resourceId

u'''兄弟定位'''
ele='resourceId("com.tencent.androidqqmail:id/k").fromParent(resourceId("com.tencent.androidqqmail:id/f"))'
driver.find_element_by_android_uiautomator(ele).click()

8.包含定位

u'''包含定位'''
driver.find_element_by_xpath("//*[contains(text(),'【搶票】我能搶到票嗎')]").click()

總代碼:

# coding:utf-8
from appium import webdriver
import time
desired_caps = {'platformName': 'Android',
                'deviceName': 'emulator-5554',
                'platformVersion': '5.1.1',
                'noReset': True,
                'appPackage': 'com.tencent.androidqqmail',
                'appActivity': 'com.tencent.qqmail.launcher.desktop.LauncherActivity'}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(15)  #用的模擬器,sleep久點
a=driver.find_elements_by_id('com.tencent.androidqqmail:id/q0')

print(len(a))  #主要是打印出來看看有多少個
time.sleep(3)
u'''list下標定位'''
#driver.find_elements_by_id('com.tencent.androidqqmail:id/q0')[0].click()
u'''xpath定位'''
#driver.find_element_by_xpath("//*[@text='收件箱​']").click()
u'''con-desc定位'''
#driver.find_element_by_accessibility_id('寫郵件和設置等功能').click()
u'''文本定位'''
#ele='text("收件箱​")'
#driver.find_element_by_android_uiautomator(ele).click()
u'''組合定位(id+text)'''
#ele='resourceId("com.tencent.androidqqmail:id/q0").text("收件箱​")'
#driver.find_element_by_android_uiautomator(ele).click()
u'''父子定位'''
#ele='className("android.widget.RelativeLayout").childSelector(resourceId("com.tencent.androidqqmail:id/f"))'
#driver.find_element_by_android_uiautomator(ele).click()
u'''兄弟定位'''
ele='resourceId("com.tencent.androidqqmail:id/k").fromParent(resourceId("com.tencent.androidqqmail:id/f"))'
driver.find_element_by_android_uiautomator(ele).click()
print('點擊完畢')

 


免責聲明!

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



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