Python+Appium自動化測試(11)-location與size獲取元素坐標


appium做app自動化測試過程中,有時需要獲取控件元素的坐標進行滑動操作。appium中提供了location方法獲取控件元素左上角的坐標,再通過size方法獲取控件元素的寬高,就可以得到控件元素更多的坐標。

一,獲取元素坐標的方法

1,size獲取元素的寬、高

ele_size = driver.find_element_by_xx('xx').size
# 元素的寬
width = ele_size['width']
# 元素的高
height = ele_size['height']

2,location獲取元素左上角坐標

ele_coordinate = driver.find_element_by_xx('xx').location
# 元素左上角橫坐標
x = ele_coordinate['x']
# 元素左上角縱坐標
y = ele_coordinate['y']

3,由此可以計算出元素其他的坐標

(x+width, y)  # 右上角坐標
(x+width, y+height)  # 右下角坐標
(x, y+height)  # 左下角坐標
(x+width/2, y+height/2)  # 元素中心點坐標

二,使用場景

需要對元素進行滑動時,我們可以考慮先獲取元素的坐標,再通過坐標來滑動元素。

如:QQ聊天界面刪除某個聊天。從元素的右上角 (x+width, y) 向左滑動至上邊中心點(x+width/2, y),然后點擊刪除。

# @author: 給你一頁白紙

# 第一個聊天框元素
ele = driver.find_element_by_xpath('//android.widget.AbsListView/android.widget.LinearLayout[@index=1]')

# 聊天元素的寬
width = ele.size['width']
# 左上角坐標
x = ele.location['x']
y = ele.location['y']
# 滑動起始坐標
start_x = x + width
start_y = y
# 滑動結束坐標
end_x = x + width/2
end_y = y

# 滑動並刪除
action = TouchAction(driver)
action.press(start_x, start_y).move_to(end_x, end_y).release().perform()
driver.find_element_by_xpath('//*[@content-desc="刪除"]').click()


免責聲明!

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



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