关于在app和浏览器捕获toast的区别与方法

在app里捕获toast

  1. 在移动端设备里,toast组件并不属于也不存在于app的dom树,它属于系统,所以需要使用系统的底层uiautomator2来捕获toast的元素。
  2. 如果是appium1.x版本,则无需指定uiautomator2,如果是2.x版本则需要在参数capability里添加参数:desired_caps['automationName'] = 'uiautomator2'
    3.获取toast时,通常是通过toast的元素类型来定位。

在web浏览器端捕获toast

  1. 浏览器端倒是没有像app一样,存在toast组件不存于页面这一说法。唯一的难点在于toast只有在存在的一小会时间内,toast的元素信息才会存在于页面源代码(pagesource)里。
  2. 所以获取难点在于如何查看这昙花一现的元素信息,通过F12的资源->暂停,来捕获这个toast的元素信息,然后根据这些信息在代码端进行定位便可。
    3.注意:鉴于toast的存在时间短,所以在触发toast后,建议马上使用显式等待(条件为在dom树里能找到相应元素)来捕获toast,避免错过时机。