appium python 用xpath和tap模拟点击

当clickable=false或其他情况导致无法直接点击时,可通过appium使用xpath定位元素,并结合.size和.location获取元素坐标,转换为bounds,最后通过tap方法模拟点击。这种方法在不同分辨率设备间具有较好适应性。
摘要由CSDN通过智能技术生成

有的时候会出现clickable=false不能点击,以及一些其他不能用click()的情况。此时如果没有resource_id和text,我想到了一种方式也可以模拟点击,虽然目前用到这种方式的情况并不多,但是记录下来万一以后会用到。
总的来说就是利用xpath+tap

1、用xpath定位到元素
element = driver.find_element_by_xpath(xpath) #这里的xpath要换成元素的xpath信息
2、用.size和.location方法获取元素的大小和坐标

至于为什么不用bounds,是因为想使方法更灵活,在连接另一个分辨率的手机的时候也能适配。

elem_size = element.size
elem_location = element.location

print出来elem_size和elem_location是这样的:
{‘width’: 285, ‘height’: 76}
{‘y’: 233.0, ‘x’: 28.0}

3、将size和location的数据处理成bounds

这里将第2步中elem_size和elem_location的数据处理成bound的类型,这样做是因为可以提供个tap方法做参数,脚本如下:

#根据size和location定位,返回tap中的参数
def coordinate(size, location):
    _x_ = size.get('width')
    _y_ = size.get('height'
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值