简介
Toast 是一种轻量级的信息提示,常常以小弹框的形式显现,通常显现 1 到 2 秒会自动消失,能够出此刻屏幕上中下任意位置。
Toast拥有如下的特点: 没法被点击,区别于 Dialog,永远不会得到焦点。Toast 表示的时间有限,Toast 会按照用户设置的表示时间后自动消失是系统级别的控件,属于系统 settingsToast 的思想:尽可能不引人重视,同期还向用户表示信息,期盼用户看到。
如下图,便是一种 Toast 信息框类型:
Toast 定位
Appium 在抓取 Toast 时,运用的是 uiautomator 底层,而后将 Toast 元素放入控件树中。必须重视的是,Toast 本身并不属于常规的用户界面控件,而是一种短暂的信息提示,在这个过程中,Appium 运用的是 uiautomator2。
Toast 显现的时间通常比较短,能够经过等待或打印页面元素的方式判断是不是存在,并且经过 Xapth 或 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" />
1、配置 driver 的初始化和关闭 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()
2. 定位 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 的方式去定位。
举荐学习
Python全栈研发与自动化测试研发高薪私教班,内容全面升级,可选取岗位更加多,就业面更广。4 个月 30+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,0基本可学,带你一站式把握测试研发必须核心技能!增多高薪私教服务,针对性处理工作困难,简历指点+模拟面试+面试复盘,助你斩获更加多Offer!
返回外链论坛:http://www.fok120.com/,查看更加多
责任编辑:网友投稿
|