Appium获取元素坐标
文章转自:https://www.cnblogs.com/lfr0123/p/13686769.html
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),然后点击删除。

# 第一个聊天框元素
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()
 Appium获取元素坐标的更多相关文章
- Python+Appium自动化测试(11)-location与size获取元素坐标
		appium做app自动化测试过程中,有时需要获取控件元素的坐标进行滑动操作.appium中提供了location方法获取控件元素左上角的坐标,再通过size方法获取控件元素的宽高,就可以得到控件元素 ... 
- JavaScript通过ID获取元素坐标
		JavaScript通过ID获取元素坐标 function getElementPos(elementId) { var ua = navigator.userAgent.toLowerCase ... 
- Appium获取元素的方式
		1.apk包名和launcherActivity 1.1.获取包名 所有应用包名列表 adb shell pm list packages 第三方应用包名列表 adb shell pm list pa ... 
- js 获取元素坐标 和鼠标点击坐标
		js 获取元素的位置 var odiv=document.getElementById('divid'); alert(odiv.getBoundingClientRect().left); aler ... 
- jquery 获取元素坐标
		不错哦! 原文地址:http://jianzhong5137.blog.163.com/blog/static/9829049201182295833503/ 绝对X,Y坐标,可以用offset()方 ... 
- Jquery获取元素坐标
		获取页面某一元素的绝对X,Y坐标,相对于浏览器窗体,可以用offset()方法: var X = $('#DivID').offset().top; var Y = $('#DivID').offse ... 
- jquery获取元素坐标获取鼠标坐标
		获取页面某一元素的绝对X,Y坐标,可以用offset()方法: var X = $('#DivID').offset().top; var Y = $('#DivID').offset().left; ... 
- 『与善仁』Appium基础 — 22、获取元素信息的操作(一)
		目录 1.获取元素文本内容 (1)text()方法 (2)get_attribute()方法 (3)综合练习 2.获取元素在屏幕上的坐标 1.获取元素文本内容 (1)text()方法 业务场景: 进入 ... 
- 详细解析 JavaScript 获取元素的坐标
		引言 最近突然看到了有关图片懒加载的问题,大致意思就是初始状态下页面只加载浏览器可视区域的图片,剩余图片在当浏览器可视区域滚动到其位置时才开始加载.貌似现在许多大型网站都有实现懒加载,所以我便就此问题 ... 
- selenium获取元素信息方法(转载)
		1.获取当前页面的Url函数 方法:current_url 实例: driver.current_url 2.获取元素坐标 方法:location 解释:首先查找到你要获取元素的,然后调用locati ... 
随机推荐
- day04-Spring管理Bean-IOC-02
			Spring管理Bean-IOC-02 2.基于XML配置bean 2.7通过util空间名称创建list BookStore.java: package com.li.bean; import ja ... 
- pymysql在读取bit类型时显示x00的解决办法
			#用于转换bit在pymysql中显示为x00的问题from pymysql import convertersconverions = converters.conversionsconverion ... 
- python实现简单信息收集
			python实现简单信息收集 import whois import socket import sys def Query(domain): ip = socket.gethostbyname(st ... 
- VUE Angular通用动态列表组件-亦可为自动轮播组件-02-根据数据量自动横向滚动,鼠标划入停止滚动
			本文为横向轮播,纵向轮播/动态列表组件请戳---- 代码是angular的,稍微改改就可以放入Vue项目里,差别不大哟 以下代码可以根据实际情况自行调整 父组件html <app-scroll- ... 
- 多行文字自动换行居中--实测好用的很OK
			实测好用的很~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ... 
- 【Android】Android 源码方式使用 opencv 库文件
			使用方法 opencv 官方的 SDK 已经有编译好的 so 库,我们可以直接使用,因此我们只需要将平台架构对应的 so 库文件以及头文件提取出来,使用 Android.mk 进行预安装,然后在需要使 ... 
- AR Engine毫秒级平面检测,带来更准确的呈现效果
			近年来,AR版块成为时下大热,这是一种将现实环境中不存在的虚拟物体融合到真实环境里的技术,用户借助显示设备可以拥有真实的感官体验.AR的应用场景十分广泛,涉及娱乐.社交.广告.购物.教育等领域:AR可 ... 
- RA-Depth: Resolution Adaptive Self-Supervised Monocular Depth Estimation
			注:刚入门depth estimation,这也是以后的主要研究方向,欢迎同一个方向的加入QQ群(602708168)交流. 1. 论文简介 论文题目:RA-Depth: Resolution Ada ... 
- 论文翻译:2022_Phase-Aware Deep Speech Enhancement: It’s All About The Frame Length
			摘要 虽然相位感知语音处理近年来受到越来越多的关注,但大多数帧长约为32 ms的窄带STFT方法显示出相位对整体性能的影响相当温和.与此同时,现代基于深度神经网络(DNN)的方法,如Conv-TasN ... 
- JSP第九次作业
			1.建库,建表2个用户表(id,用户名,密码)邮件表(id,发件人,收件人,标题,内容,发送时间,状态) 2.建model层entity,dao包 3.登陆,注册,登陆后显示全部邮件 dao 1 pa ... 
