等峰也等你

博客园 首页 新随笔 联系 订阅 管理
  308 随笔 :: 0 文章 :: 0 评论 :: 15147 阅读

Toast 是什么

  • 一种消息框类型

  • 永远不会获得焦点

    • 无法被点击
  • Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失

  • 是系统级别的控件,属于系统settings

  • Toast类的思想:

  • 就是尽可能不引人注意,同时还向用户显示信息,希望他们看到

Toast 定位

  • appium 用的是uiautomator底层来抓取toast,
  • 再把toast放到控件树内,但是它本身不属于空间
  • 使用的是uiautomator2

Toast 定位

  • xpath 可以找到 ``` //*[@class="android.widget.Toast"]

    //*[contains(@text,"xxx")] ``` xxx:toast的文本内容

    driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(50));
    driver.findElement(AppiumBy.xpath("//*[@class=\"android.widget.Toast\"]"));

演示结果

 

 adb shell dumpsys window | findstr mCurrent

# _*_ coding:utf-8 _*_
# @Author : Sam
from appium import webdriver
from appium.options.common import AppiumOptions
from appium.webdriver.common.appiumby import AppiumBy


class TestTost:
def setup_class(self):
# 设置启动参数
print("setup_class")
# 定义一个字典
caps = {}
# 设置 app 安装平台
caps["platformName"] = "Android"
# 设置 app 安装平台的版本
caps["platformVersion"] = "6"
# 设备的名字
caps["deviceName"] = "127.0.0.1:7555"
# 设置 app 的包名
caps["appPackage"] = "io.appium.android.apis"
# 设置 app 启动页 adb logcat ActivityManager:I | findstr "cmp"
caps["appActivity"] = "io.appium.android.apis.view.PopupMenu1"
# 不清空缓存
# caps["noReset"] = True
# tost 使用:automationName : uiauromator2 工作引擎 默认自带
# 实例化 appiumOptions 对象
self.options = AppiumOptions().load_capabilities(caps)
# 连接 appium server
self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", options=self.options)
# 设置全局的隐式等待
self.driver.implicitly_wait(10)

def teardown_class(self):
# 退出app
self.driver.quit()

def test_tost(self):
self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Make a Popup!").click()
self.driver.find_element(AppiumBy.XPATH, "//*[@text='Search']").click()
# print(self.driver.page_source)
# print(self.driver.find_element(AppiumBy.XPATH, "//*[@class='android.widget.Toast']").text)
self.driver.find_element(AppiumBy.XPATH, "//*[contains(@text, 'Clicked popup menu item Search')]")
posted on   等峰也等你  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示