有的时候会出现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'