一、背景
之前我们有分享过python + selenium的UI自动化中一闪而过的dialog。
今天来分享一下app自动化中一闪而过使用到的toast~
二、Toast介绍
Toast,简易的消息提示框。
①为了给当前视图显示一个浮动的显示块,与dialog不同他永远不会获得焦点。
②Toast类的思想:尽可能不引人注意。同时还向用户显示信息希望他们看到。
③Toast显示的时间有限。Toast会根据用户设置的显示时间后自动消失。
④Toast本身是个系统级别的控件,它归属于系统settings,当一个app发送消息的时候,不是自己造出来的这个弹框,他是发给系统的,由系统统一进行弹框,这类控件不在app内,需要特殊的控件识别方法。
三、Toast定位
appium使用uiautomator底层的机制来分析抓取toast,并且把toast放到控件树里面,但本身并不属于控件。
automationName:uiautomator2 (现在安卓默认是这个引擎,所以现在不加也可以通过)
getPageSource是无法找到的
必须使用xpath查找:
- //*[@class='android.widget.Toast']
- //*[contains(@text,"xxxxx")]
代码: