app自动化——特殊控件 Toast

一、Toast 简介

  • 一种消息框类型
  • 永远不会获得焦点
    • 无法被点击
  • Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失
  • 是系统级别的控件,属于系统settings
  • Toast类的思想:
    • 就是尽可能不引人注意,同时还向用户显示信息,希望他们看到

二、Toast 定位

  • appium 用的是uiautomator底层来抓取toast,

  • 再把toast放到控件树内,但是它本身不属于空间

  • 使用的是uiautomator2

    • automationName: uiautomator2
  • 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\"]"));

image

driver.find_element(MobileBy.XPATH,"Make a Popup").click()
driver.find_element(MobileBy.XPATH,"//*[@text='Search]'")
ele = driver.find_element(MobileBy.XPATH,'//*[@class="android.widget.Toast"]')
print(ele.text)