2024年最新深度解析Appium元素定位原理及其应用_app的元素定位,字节跳动大神讲座

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

partial_link_text

CSS


**1.3 混合APP**


这个其实就是用了原生`APP`的方法,还用到了`HTML5`的方法;


那么这种`APP`就要根据实际情况来定,要么8种元素定位方法都可以用到,要么只能用到部分。


**2 测试对象**



**2.1 获取包信息**


我们这里使用真机进行测试;


安装包为`taobao`,自行下载即可;


下载后查看对应的包名和活动窗口名:



aapt dump badging taobao.apk



F:\monkey_test>aapt dump badging taobao.apk
package: name=‘com.taobao.taobao’ versionCode=‘609’ versionName=‘10.31.1’ compileSdkVersion=‘33’ compileSdkVersionCodename=‘13’
install-location:‘auto’
sdkVersion:‘21’
targetSdkVersion:‘33’
uses-permission: name=‘com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE’
uses-permission: name=‘android.permission.READ_CONTACTS’
uses-permission: name=‘android.permission.CAMERA’
uses-permission: name=‘android.permission.INTERNET’
uses-permission: name=‘android.permission.ACCESS_NETWORK_STATE’
uses-permission: name=‘android.permission.GET_TASKS’
uses-permission: name=‘android.permission.ACCESS_WIFI_STATE’
uses-permission: name='android.permission.WRITE_EXTERNA


得到重要的两个信息:



appPackage=‘com.taobao.taobao’
appActivity=‘com.taobao.tao.welcome.Welcome’


**2.2 真机配置**


手机上打开`USB`调试;


打开`USB`安装;


打开`USB`调试(安全设置);


注意本文使用的是`xiaomi`手机。



**2.3 启动服务**


启动`appium`服务:



C:\Windows\System32>appium
[Appium] Welcome to Appium v2.2.3
[Appium] Attempting to load driver uiautomator2…
[Appium] Requiring driver at C:\Users\Administrator.appium\node_modules\appium-uiautomator2-driver
[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLs in your client code to connect to this server:
[Appium] http://172.16.1.33:4723/
[Appium] http://127.0.0.1:4723/ (only accessible from the same host)
[Appium] http://172.28.128.1:4723/
[Appium] Available drivers:
[Appium] - uiautomator2@2.34.2 (automationName ‘UiAutomator2’)
[Appium] No plugins have been installed. Use the “appium plugin” command to install the one(s) you want to use.


**2.4 启动session**


脚本或打开`appium-inspecotr`,配置相关信息如下:



{
“platformName”: “Android”,
“appium:automationName”: “uiautomator2”,
“appium:deviceName”: “xxxx”, # 这是设备名称,填写自己的即可
“appium:appPackage”: “com.taobao.taobao”,
“appium:appActivity”: “com.taobao.tao.welcome.Welcome”,
“appium:noReset”: true
}


启动`session`后如下界面:



![](https://img-blog.csdnimg.cn/direct/19df5a6e026d4102958f4917e5feb348.png)


**3 元素定位**


关于`WebAPP`之前提及这个和`selenium`元素定位是一样的,这里可不过多介绍;


**这里主要了解下原生APP的常用的三种方式**。



**3.1 id定位**


这种对应方式无疑对测试人员来说是最喜欢的方式了;


因为如果是不变的`id`属性,那么久代表了唯一性,后续不管元素的位置如何变化,属性不变,对代码的维护成本就小很多了;


比如我们打开软件后,有一个同意的界面,通过`appium-inspecotr`可以看到元素的属性:



![](https://img-blog.csdnimg.cn/direct/10006124e5194f179b89f441acb5d66c.png)


我们可以提炼出【同意】按钮的属性为:



id:com.taobao.taobao:id/provision_positive_button


那我们可以使用的定位方式为`id`,代码如下:



driver.find_element(AppiumBy.ID, “com.taobao.taobao:id/provision_positive_button”).click()


**3.2 class\_name定位**


`class_name`就是根据元素类型进行定位;


加入类型`class_name`比较多的话,可使用下标就行选择,比如:



driver.find_element(AppiumBy.CLASS_NAME, “content-desc”)[1].click()



**3.3 Xpath定位**


**3.3.1 id定位**


假如id是唯一的,比如之前我们定位的【同意】这个按钮:



![](https://img-blog.csdnimg.cn/direct/2f8648860d09406cb6ebfceae53edef2.png)


定位方式直接写为:



driver.find_element(AppiumBy.XPATH,
“//android.widget.TextView[@resource-
id=‘com.taobao.taobao:id/provision_positive_button’]”).click()


**3.3.2 class标签定位**


如果`class`作为标签定位,那么:



![img](https://img-blog.csdnimg.cn/img_convert/a68b95ebdba624f1af00731ef35defe8.png)
![img](https://img-blog.csdnimg.cn/img_convert/9c5668dda367996304d0541c6a4fd3d7.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618608311)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618608311)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值