App自动化测试(七)之特殊场景自动化

App自动化测试之特殊场景自动化

一、Toast弹出框处理

1、什么是Toast弹出框?

toast是Android中用来显示信息的一种机制,和Dialog对话框是不一样的,toast是没有焦点的,而且toast显示的时间是有限的,过一定的时间就会自动消失,并且也不能被点击。

toast弹出框示例

2、toast获取

1)把 desired_capabilities 中指定对应属性 automationName 为 UiAutomator2(UiAutomator2,支持toast获取,只支持安卓版本5.0+)

caps = {}
caps['automationName '] = 'UiAutomator2'

2)通过xpath定位方式,获取toast信息(toast弹出框的文本信息)

# toast弹出框文本信息
toast_msg = '手机号码或密码不能为空'
# 通过@text写xpath表达式
toast_msg_xpath = "//*[contains(@text, {})]".format(toast_msg)
driver.find_element_by_xpath(toast_msg_xpath)

注意:toast弹出框设置显示等待只能使用 presence_of_element_located

WebDriverWait(driver,10,0.1).until(
	EC.presence_of_element_located(MobileBy.XPATH,toast_msg_xpath))

二、混合应用-H5

1、native & web & hybrid简介

目前主流应用程序分为三类:Web App(网页应用)、Hybrid App(混合应用)、Native App(原生应用):

应用类型 优点 缺点
native 直接依托于操作系统,
交互性最强,
性能最好,
功能最为强大,
特别是在与系统交互中,几乎所有功能都能实现
开发成本高,无法跨平台,不同平台Android 和 iOS 上都要各自独立开发;
门槛较高,原生人员有一定的入门;
门槛,相比广大的前端人员而言较少;
更新缓慢,特别是发布应用商城后,需要等到审核周期;
维护成本高
web 开发成本低,可以跨平台,调试方便;
维护成本低;
更新无需通知用户,不需要手动升级;
无需安装App,不会占用手机内存
无法获取系统级别的通知,提醒,动效等等
用户留存率低
设置受限制诸多;
体验较差
hybrid 在应用程序中嵌入了webview,通过webview访问网页
开发成本较低,可以跨平台,调试方便;
维护成本低,功能可复用;
功能更加完善,性能和体验要比起web app 好太多;
更新较为自由
相比原生,性能仍然有较大损耗;
不适用于交互性较强的App

2、怎么分辨一个App页面究竟是native还是web的?

通过元素定位工具:查看元素的 class 是否为 android.XXX.WebView

3、进入webview进行元素定位,需要添加浏览器驱动

需要在 desired_capabilities 属性中添加属性值 chromedriverExecutableDir,值为驱动的存放路径(尽量不要出现中文)

caps = {}
caps['chromedriverExecutableDir'] = "D:\deive\Chrome"

进入到webview中,就可以对元素进行定位,定位方法跟web元素定位一样。

定位webview,推荐一个 uc-devtools调试工具(在这个工具中,如果我们的元素是webview他就会显示,然后就可以看到浏览器版本,下载对应的驱动即可),

点击进行下载uc-devtools

关于UC 开发者调试工具及使用

4、native和webview的切换

1)切换到webview
# 获取contexts
contexts = driver.contexts
print(contexts)
# 通过获取的contexts索引进行切换到webview
driver.switch_to.context(contexts[1])
# 通过名称进行切换到webview,名称格式为WEBVIEW_appPackage包名
# driver.switch_to.context('WEBVIEW_AppPackage包名')
2)切回到native
# 通过获取的contexts索引切回native
driver.switch_to.context(contexts[0])
# 通过名称进行切回native,名称为NATIVE_APP
# driver.switch_to.context("NATIVE_APP") 
posted @ 2020-03-07 11:14  DesireYang  阅读(602)  评论(0编辑  收藏  举报