快速上手App自动化测试利器:Toast原理解析及操作实例
创作时间:
作者:
@小白创作中心
快速上手App自动化测试利器:Toast原理解析及操作实例
引用
1
来源
1.
https://developer.aliyun.com/article/1463595
简介
Toast 是一种轻量级的消息提示,常常以小弹框的形式出现,一般显示 1 到 2 秒后自动消失,可以出现在屏幕上的中下任意位置。
Toast 具有以下特点:
- 无法被点击,不同于 Dialog,永远不会获得焦点。
- Toast 显示的时间有限,会根据用户设置的显示时间后自动消失。
- 是系统级别的控件,属于系统 settings。
Toast 的设计理念是:尽可能不引人注意,同时还向用户显示信息,希望用户看到。
Toast 定位
Appium 在抓取 Toast 时,使用的是 uiautomator 底层,然后将 Toast 元素放入控件树中。需要注意的是,Toast 本身并不属于常规的用户界面控件,而是一种短暂的消息提示,在这个过程中,Appium 使用的是 uiautomator2。
Toast 出现的时间一般比较短,可以通过等待或者打印页面元素的方式判断是否存在,并且通过 XPath 或者 Accessibility ID 的定位方式找到 Toast 元素。在页面结构中,Toast 元素大致如下所示:
<!-- 在这里可以看到Toast消息提示框的class是android.widget.Toast,且一个页面一般只有一个 -->
<android.widget.Toast index="1" package="com.android.settings" class="android.widget.Toast" text="Clicked popup menu item Search" displayed="true" />
配置 driver 的初始化和关闭
class TestToast:
def setup_class(self):
caps = {
'platformName': 'android',
'appium:appPackage': 'io.appium.android.apis',
'appium:appActivity': 'io.appium.android.apis.view.PopupMenu1',
"appium:noReset": True,
"appium:shouldTerminateApp": True
}
self.driver = webdriver.Remote("http://127.0.0.1:4723", options=UiAutomator2Options().load_capabilities(caps))
self.driver.implicitly_wait(15)
def teardown_class(self):
self.driver.quit()
定位 toast 消息提示框
def test_get_toast(self):
# 定位到 Make a Popup! 按钮并点击
self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Make a Popup!").click()
# 消息框类型选择search
self.driver.find_element(AppiumBy.XPATH, "//*[@text='Search']").click()
# 获取 Toast 弹框文本信息
result = self.driver.find_element(AppiumBy.XPATH, "//*[contains(@text, 'Clicked popup')]").text
assert result == "Clicked popup menu item Search"
总结
Toast 消息提示框是一个出现时间短并且无法被点击的控件,一般可以用 XPath 或者 Accessibility ID 的方式去定位。
热门推荐
首批70名AI公务员上岗,工作效率最高提升100倍!网友热议→
生物课件:选修三2.1植物组织培养技术
奇门遁甲之九星解析
氮化镓专利的技术创新与市场应用前景如何?
算命真的准确吗?揭秘算命背后的科学与迷思
如何改掉强迫症思维
泉州老城区City Walk美食之旅——深入探寻传统与现代的味蕾盛宴
期货周线交易精髓:从趋势判断到资金管理的全面指南
苹果要大改iPhone等操作系统界面,但不打通
江苏跨江大桥密集“体检”,大桥也会“到龄退休”吗?
姜维执掌10万蜀军,为何会害怕宦官黄皓呢?他究竟有什么能耐?你怎么看?
人工智能专业求职者怎样写好项目经验
国防大学联合勤务学院:现地教学画好向战“延长线”
汉武帝:开创盛世的千古一帝
赤小豆芡实薏仁茶的健康功效与长期饮用指南
如何解决拉链头无法锁定的困扰?
荒野大镖客游戏显存不足怎么办?七种实用解决方案
牛剑G5地位直线提升的三大考试 对比与策略来了!
一日三餐、四季食饮中的中医智慧
治水名人故事 | 杨广:开创南北大运河
阳气不到就是病,80%的现代人都阳气不足
逆版本而行!辅助金克丝,从失业到秋名山车神的华丽蜕变
如何有效清洁耳朵?这些方法请收好
如何有效清洁耳朵?这些科学方法请收好
日系RPG游戏合集 日系RPG类单机游戏大全
开放世界单机游戏有哪些介绍2024 单机的开放世界游戏汇总
北体大院长详解:国家队如何科学使用运动营养补充剂?
山楂泡酒:传统养生饮品的制作
哪吒IP火爆出圈,如何借势打造文化旅游新体验?
大模型如何应对不同的业务场景和需求变化