Android 的 toast 弹窗通过 appium 桌面版是无法获取到元素信息的,或者说获取到的元素信息,无法通过 find_element 的方式去定位的;
根据网络上的资料,和大神的一些博客,可以通过以下的方式获取,代码如下:
# 指定 toast 弹窗的内容
def get_toast_text(self, locator, by=By.XPATH, wait=5, requence=0.01, model='model'):
"""
########################################
描述:获取 Toast 的文本信息
参数:text 需要检查的提示信息 time 检查总时间 poll_frequency 检查时间间隔
返回值:返回与之匹配到的 toast 信息
异常描述:none
########################################
"""
logging.info("查找 toast")
message = (by, locator)
toast_element = WebDriverWait(self.driver, wait, requence).until(EC.presence_of_element_located(message))
try:
return toast_element.text
except:
logging.exception("未查找到 toast 信息")
self._save_screenShot(model)
raise
备注:如果打印出来的 toast_element 内容为:
就代表成功了
需要注意以下几点:
1.只有 appium1.6.3 以上才支持定位 toast 弹窗;
2.必须要在 desired_caps 中新增:desired_caps['automationName'] = 'uiautomator2';因为只有 Uiautomator2 才能定位到;
具体框架代码如下: