快速上手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 的方式去定位。
热门推荐
电路设计中的阻抗匹配
黄金芽茶的益处与作用:全面解析其健康、美容和心理效应
动力电池揭秘 | 安全性全面解析
客车销售低迷分析系列——价格问题需重视
VWAP与EMA9:实用的日内交易技术指标组合
暑期去这些地方,避暑又“充电”!
如何学习数学概念
1.2343ESR模具钢硬度解析:影响因素与应用要点
生产管理完整方案:从系统搭建到痛点优化
明朝丞相制度的短命:朱元璋废除丞相的深层原因
怎么确保包装设计流程符合环保标准?
山桐子种植前景如何?
委托律师提起诉讼的程序是什么?
谈钱伤感情?我们今天来谈谈钱
月薪上万,专职消防员待遇其实不错,只是年终绩效略为偏少
抗美援朝中让敌军胆寒的第九兵团,先后换过四任司令,都是谁呢?
VMD算法中k值确定的完整指南
茀莱堡口腔:种植牙用医保报销多少?
海市蜃楼:光的折射与自然奇观的完美结合
哪些美国研究生专业的就业前景较好?
感冒后一直鼻塞流鼻涕?从鼻涕颜色看病情,这些知识你需要知道
冬钓鲫鱼用几号线和几号钩最合适,资深钓鱼佬亲自尝试越小口越好
深圳街头植物与四季更迭:一位骑行者的观察笔记
《黑神话:悟空》的三重门:角色、行业、文化输出
如何评估经济发展状况?这些评估方法有哪些应用场景?
券商投行新生态:业务变革、创新趋势与挑战共存
原来老祖宗也不是“一日三餐”?揭秘中国餐食制度的演变
Word文档中如何打出数学符号
壬寅日五行属什么 壬寅日出生的人的命运
一文讲透股市中的"盲目跟风"!理智、独立的决策将是避免损失并实现资本增值的关键。