Python Appium自动化测试 元素定位

本文详细介绍了在Python Appium自动化测试中如何进行元素定位,包括ID定位、className定位和XPath定位,并强调了层级定位在解决复杂场景中的重要性。文中通过实例解析了XPath的使用,并提醒读者注意在App自动化中使用XPath可能导致效率降低的问题。
摘要由CSDN通过智能技术生成

Time will tell.

元素定位是自动化测试中关键的一步,因为你对象都没定位好,那么你想去操作这也是行不通的,所以本章节也是希望同学们多去动手实战,不要仅仅只是看过、看了。


一、 常用定位

1、ID定位

无论是在 web 自动化还是 app 自动化中id都是唯一的,那为什么有的地方说name定位是唯一的呢,在这里又为什么是id呢?

其实这个不冲突,但如果你用 appium 较新版本那是不行的,在新版本中 name定位被去掉了,所以在以后的定位中都不会有name定位了。

看到这里可能又有小伙伴会有疑问,有的时候你的应用为什么没有id,或者说在这个手机上有但在另外的手机上却没有?

原因:

  1. 开发没有添加
  2. android 版本是4.4以下的


图中左边部分用红色圈出来的对象的id,我们在右边的属性中可以看到,它的id同样用红色圈出,如果我们需要对 “请输入淘宝账户” 这个输入框进行输入信息,只需操作右边的 id 就行,看代码:

driver.find_element_by_id("com.taobao.taobao:id/aliuser_login_account_et").send_keys("aaa")


2、className定位

在实际工作中className定位用得相对而言会比较少。当你经常去看 class 时你会发现很多的className是一样的,你没有办法对其进行唯一定位,下面我们看两张图:


可以看一下这两张图片中淘宝账号、密码两个输入框中的className都是一样的,如果在这种情况下你使用下边这种方式去定位,你会发现你永远定位不了密码栏,这是为什么呢?

因为在设计的时候如果你查找的元素在页面有多个,系统会自动给你选择第一个,所以你永远操作不了后面的,那么在实际工作或实战中遇到此类问题如何解决?后面会讲到。

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


3、xpath定位
xpath定位在 web 自动化中是最常见的,而且也是最有效的,使用xpath定位避免了找不到元素导致报错的问题,但是在 app 中使用xpath定位是一件很low的事情。为什么?

因为在过来人的经历中,只要遇到使用xpath定位元素,它的反

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值