相信做UI自动化的小伙伴都知道,appium不是左右页面的元素都能定位的到的,尤其是原生中嵌套了H5页面,所有这个时候我们可以通过坐标定位的方式去解决,理论上坐标定位可以解决所有的元素识别问题,但有一个缺点,那就是只负责点击,却不管是不是我们自己要点击的,甚至会因为点击不是我们想要的而导致报错,这是个很坑的事,怎么搞那么直接来代码:
def __init__(self,driver):
self.driver = driver
self.size = driver.get_window_size()
self.width = self.size['width']
self.height = self.size['height']
def driverTap(self,x,y,z=None):
self.driver.tap([((x/1080)*self.width,(y/2280)*self.height)],z)
简单的说明:
1、driver.tap有两个参数分别是[(x,y)],z,即要点击的坐标[(x,y)],点击的持续时间z,这里可以用到长按的操作中,还有[(x,y)] 是一个整体参数,记得带[(,)],当初我就在这里躺坑,一直报参数given错误
2、方法里的1080/2280指的是调试机型的屏幕分辨率,注意有些不是全面屏或有启用底部导航的要注意Y轴的导航栏高度,实际的计算中要去掉改高度。x、y指的是调试机型的实际坐标,(x/1080)*self.width,(y/2280)*self.height)是坐标换算方法,可用于计算在不同屏幕分辨率手机的实际坐标,这样换手机也能跑了
调用:
driverTap(x,y,z)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)