Appium当定位不到元素时,通过坐标模拟点击屏幕

  • 自动化环境:
xcode:7.3
设备:iphone6s
脚本语言:Python

在写自动化测试脚本时,通过appium inspector定位元素时,有时会遇到一个页面中使用的是整个table view,而属于table view里面的控件就无法被识别到,相应的就无法进行对控件的操作。这个时候可以通过tap方法去模拟用户的点击操作

  • tap方法简介:
tap(self, positions, duration=None):

Taps on an particular place with up to five fingers, holding for a certain time
模拟手指点击(最多五个手指),可设置按住时间长度(毫秒)

    :Args:
     - positions - an array of tuples representing the x/y coordinates of
     the fingers to tap. Length can be up to five.
     - duration - (optional) length of time to tap, in ms

    :Usage:
        driver.tap([(100, 20), (100, 60), (100, 100)], 500)
用法 driver.tap([(x,y),(x1,y1)],500)

使用这个方法有有个问题,对当前编写的设备适用,对其他不同分辨率的机型就不再适用,所以需要进行相应的修改:

 1.只要单击操作
 2.模拟坐标点击可适配所有机型
  • 重新封装后的方法:
 def target_click(self,x1,y1):  #x1,y1为你编写脚本时适用设备的实际坐标
        wd = self.wd
        x_1=x1/375         #计算坐标在横坐标上的比例,其中375为iphone6s的宽
        y_1=y1/667         #计算坐标在纵坐标667为iphone6s的高
        x = wd.get_window_size()['width']  #获取设备的屏幕宽度
        y = wd.get_window_size()['height'] #获取设备屏幕的高度
        print x_1*x,y_1*y    #打印出点击的坐标点
        wd.tap([(x_1*x, y_1*y)], 500)  #模拟单手点击操作

这样理论上只要知道屏幕上的具体坐标就都可以实现用户的点击操作,坐标的获取可通过appium inspector工具中的Precise Tap,通过点击需要获取坐标的位置去获取:
这里写图片描述

  • 例子
public.target_click(self,15.6,42.6)   #返回上一级,注意坐标输入坐标时需要将小数点带入
  • 1
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值