使用appium测试app自动化查找元素时比较麻烦,没有selenium查找web页面元素方便,
并且局限性也比较高,使用起来不是太灵活。
那下面介绍下我们一般经常使用到的一些查找元素的方法(已锤子手机为例)。
有两个工具可以用来查找元素:安卓sdk自带的uiautomator viewer;appium最新版1.0.2。
建议使用uiautomator viewer,个人感觉使用起来要方便些,包括复制元素的值也比较方便。
先链接锤子手机:
方法有很多,:
通过xpyth定位:findElementByXPath("//android.widget.TextView[10]")xpath下标从1开始,使用完整的classname
通过text name:find_element_by_name(name对应uiautomator扫描后text的内容)
通过id:find_element_by_id(id对应resource-id)
通过classname定位:find_element_by_class_name(class_name对应class)
通过accessibility id:find_element_by_accessibility_id(accessibility_id对应content-desc)
定位到某个文本框,并输入内容:
driver.find_element_by_id("xxxxx").send_keys("123456")
滑动屏幕:
获取屏幕尺寸 width=self.driver.get_window_size()['width']height=self.driver.get_window_size()['height']
滑动屏幕 driver.swipe(width*9/10, height*1/2, width*1/10, height*1/2, 1000)
在手机上打开头条,只介绍常用的三种:
find_element_by_name(name对应uiautomator扫描后text的内容)
脚本中输入这个name就可以定位到这个元素,然后做相应的操作,比如click()等
find_element_by_id(id对应resource-id,用这个查找比较准确)
用resource-id查找是最准确的!
find_element_by_class_name(class_name对应class,用这个一般都查找出的是一堆的数据,因为有很多地方都使用同一个class name)
这个是名为android.widget.TextView的classname,其他的行全部都是这个name
看看,其他的也是这个class name,所以用这个查找会找出一个列表的数据出来,如果想单独取某个行的数据,就需要使用for 循坏或者下脚标来取[X]
在做app自动化时需要花很大的精力去提前获取的数据并整理,因为很多数据是不能一一
对应的。
有问题可以加QQ群:610845268
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。