python坐标定位_Appium+python定位方式

介绍appium 几种简单的定位方式

1、id定位

格式:driver.find_element_by_id("这里是resource-id")

driver.find_element_by_id("com.taobao.taobao:id/home_searchedit")

2、name定位

如上图的定位,就可以通过name来定位

格式:driver.find_element_by_name("这里是text")

driver.find_element_by_name("搭配新宠不能缺")

注:appium1.5以下老的版本是可以通过name定位的,新版本从1.5以后都不支持name定位了**

(如果text属性为空,那就不能通过name属性定位了)

3、class定位

格式:driver.find_element_by_class_name("class属性")

driver.find_element_by_class_name("android.widget.EditText")

(注:一般一个页面上的class属性不唯一,元素不唯一的话定位会报错了)

4、accessibility_id定位就是通过UI Automator工具查看的content-desc属性

(当然content-desc属性为空,就不能通过这个属性定位了,这里只是举个例子)

看到content-desc属性有值,就可以通过accessibility_id来定位了

格式:driver.find_element_by_accessibility_id(“content-desc的值”)

driver.find_element_by_accessibility_id(“xxx”)

(注:一般一个页面上的class属性不唯一,元素不唯一的话定位会报错了)

除了上面的这几个通过属性定位的,复杂一点的还可以通过xpath和AndroidUiAutomator来定位

5、list定位,即列表定位。driver.find_elements_by_id("com.baidu.yuedu:id/tab_search")[0].click()。

说明:有些列表页面页面没有id属性,有class属性,但class属性不唯一。或者有id属性,但是列表的id属性都一样。这个时候可以采用list定位,取id相同或class相同的,定位一组元素,再通过下标取出元素,便可定位到想取出的元素。

单数定位:find_element 为定位单数

复数定位:find_elements 为定位复数

例子:

searchs = driver.find_elements_by_id("com.baidu.yuedu:id/tab_search")

print(searchs) # 打印list

print(type(searchs))

该定位到为list类型

定位一组之后,如果要点击该元素,那就先从list里面通过下标索引取出元素对象,再click就可以了。下标索引是从0开始。

# list定位

driver.find_elements_by_id("com.baidu.yuedu:id/tab_search")[0].click()

6、xpath定位

appium 1.5版本后name定位方式无法使用,可使用xpath代替

appium中xpath语法://*[@text='页面text文本']

例子:

driver.find_element_by_xpath("//*[@text='小说']").click()

若一个界面的text值不唯一呢?

xpath语法里面*是代表匹配任意的值,在selenium里面*是匹配任意标签,appium里的*是匹配任意class名称,如果几个文本的class属性不一样,就可以通过以下组合:

//android.widget.TextView[@text='小说']

7、模拟手势点击坐标

原因:定位元素确实无法定位到。可使用坐标定位,

tap为模拟手指点击坐标

driver.tap([(374, 831), (654, 906)], 500)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值