appium+python自动化测试(2)

 最近总结了一些定位不到控件,或者定位到元素不能点击的问题,以及解决这些问题的方法,目前为止都可以定位到,弊端:运行效率比较慢,具体根据可自行百度安卓布局解析原理,这里不进行详细介绍。



首先使用uiautomatorviewer获取需要的classname如下图,classname即为:
android.widget.TextView

图片 

获取到了classname后,会发现有很多控件都是这个classname,所以我们不能使用classname来获取到唯一控件,获取到的即为一组控件,代码如下:


CLASS_NAME=(By.CLASS_NAME , ' android.widget.TextView ' )
WebDriverWait( self .driver , 30 , 0.1 ).until(EC.presence_of_all_elements_located(CLASS_NAME))
list=
self .driver.find_elements_by_class_name( ' android.widget.TextView ' )
time.sleep( 5 )

一定要使用等待将页面的元素都加载出来,否则在接下来的步骤可能会找不到我们需要定位的元素:

接下来我们在list的地方打个断点,然后使用debug模式运行:

图片

注意一定要在list的地方或者之前打断点,目的就是为了查看list中的所有定位到的元素,当运行到list的时候,我们可以通过debug看到如下:

图片




图中的list即为我们代码中的list,途中的标号如00,01,02,03。。。。。即为我们列表中获取到的元素,他们的classname全都是 android.widget.TextView ',我们点击开一个来查看:

图片


如图,我们可以看到标号对应的location,其中标号就是列表的下标,location就是元素的坐标,我们可以到uiautomatorviewer中来找到我们需要的元素的坐标,然后来找到对应的location,这个location所在的标号即为我们需要的元素的下标,

图片
图片

上图就是通过坐标找到的对应的坐标,其列表下标为10

所以点击这个元素可以写成:

list[ 10 ].click()  # 点击设置
time.sleep( 3 )

即可完成点击。


















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值