Android Toast控件是Android系统级别的控件,不是App的控件,getPageSource是⽆法找到的。
Toast介绍
1.背景
在安卓设备里面,使用各种手机应用程序的时候,需要先进行登录操作。如果登录成功,手机下方会弹出一个“登录成功”的消息提示,一个简单的提醒,同时又不会打扰到用户,这个就是toast。
2.简介
toast,简单的消息提示框。
2.1 为了给当前视图显示一个浮动的显示块,与dialog不同,它永远不会获取焦点。
2.2 Toast类的思想:尽可能不引人注意,同时还向用户显示信息希望他们看到
2.3 Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失。
2.4 Toast本身是个系统级别的控件,它归属于系统settings,当一个app发送消息的时候,不是自己造出来的这个弹框,它是发给系统,由系统统一进行弹框。这类的控件不在app内,需要特殊的控件识别方法。
怎么判断一个控件是Toast控件
https://blog.csdn.net/shanchuan94912/article/details/107520137
定位工具
UIAutomatorViewer
定位方法
使用Xapth定位
//*[contains(@text,'xxx')]
//*[@class='android.widget.Toast']
原理
Appium发现Toast控件,将其转成一个虚拟页面。转换源码如下:
练习App
可使用官方提供的app进行练习。
https://github.com/appium/sample-code/raw/master/sample-code/apps/ApiDemos/bin/ApiDemos-debug.apk
功能路径:Views——PoPup——Menu