一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题。
铁子们,快放假了~节前给大家搞一波这两年大势的自动化测试之“App自动化测试元素定位”,当你快要被内卷的时候,趁机先卷别人!
App自动化测试时,避免不了的要进行元素定位,那么在app自动化中元素定位如何进行,与web自动化中的元素定位是否一样呢?
首先对于应用中的web元素的定义,跟selenium中web元素定位是一致的。
其次,app中的andriod原生控件的定位与web中是有所区别的。
如下主要介绍app的andriod原生控件的元素定位。
Appium中有个Mobile类,它继承了Selenium的By类,appium内所有的定位方式如下:
从By类继承的定位方法:
Mobile类扩展的定位方式:
定位方法是不是很多?但是我们原生应用元素定位时,较多使用5种方式,以下分别做简单介绍:
1.根据ID定位
对于andriod原生应用,实际上使用了元素的resource-id值进行元素定位:
driver.find_element_by_id("com.ss.android.article.news:id/ecp")
也可以直接用id后面的内容driver.find_element_by_id("azo")
2.根据class_name定位
根据class_name定位元素时,使用class值进行定位,同selenium。
driver.find_element_by_class_name("com.ss.android.article.news:id/ecp")
3.根据xpath定位元素
使用时同selenium,有绝对路径和相对路径之分,也可以根据元素的各种属性获取下标进行匹配。
driver.find_element_by_xpath("//android.view.View[@content-desc="推荐"]")
4.根据accessblity-id定位元素
实际上使用的元素的content-desc值作为accessbility-id
driver.find_element_by_accessibility_id("推荐")
5.根据Android_uiautomator定位元素
实际是采用android自带的元素定位方法,相对效率比较高
str1 = ‘new UiSelector().text("精神之源 代代相传 | 担当使命篇")’
driver.find_element_by_android_uiautomator(str1)
本质上是通过各种属性与节点关系定位元素。然后通过UiSelector对象去构造一个UiObject对象。Uiautomator使用时有许多方法,在此不一一展开。
以上是我们较常用的5种android原生控件的定位方式。其他web元素适用定位方式不再一一举例。“App自动化测试元素定位”的内容就给大家念叨到这里,希望对做这些工作的小伙伴有帮助~
大家觉得文章有用的话一定要关注我们,每天来这里和小编一起学习涨薪技能哦。