移动自动化appium --如何获取安卓手机的toast提示语

toastAndroid系统中一种消息框类型,比如很多APP点击一次返回,会有个灰色弹出框提示:“再次点击退出XX”这样的消息,这个弹出框就是toast

那么如何获取到toast显示的内容呢?

 

appiumtoast和找普通的控件没有太大的区别,但是需要先装个东西:

cnpm install appium-uiautomator2-driver

 

然后连接手机或者driver的代码里面增加一个键值对:

‘automationName‘: ‘Uiautomator2‘,

 

‘Uiautomator2‘是一个可以识别安卓UI界面控件的框架,之前都是使用的‘Uiautomator‘

 

比如我们进入华为手机的文件管理页面,点击返回,会提示:再次点击即可退出,怎么获取到这个提示呢?

 

代码如下:

import time

from appium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.wait import WebDriverWait

 
"""连接手机,获取driver"""

server = rhttp://localhost:4723/wd/hub  # Appium Server, 端口默认为4723

desired_capabilities = {

    # 设备信息

    platformName: Android,

    deviceName: 127.0.0.1:62001,

    platformVersion: 5.1.1,

    # app信息

    appPackage:  com.cyanogenmod.filemanager,

    appActivity: .activities.NavigationActivity,

    # 中文问题

    unicodeKeyboard: True,

    reserKeyBoard: True,

    # 测试完毕退出后不清理APP缓存

    noReset: True,

    fullReset: False,

    # toast

    automationName: Uiautomator2

}

# 声明对象

driver = webdriver.Remote(server, desired_capabilities)  # 连接手机和APP


def find_toast(message):

    message = "//*[contains(@text, ‘" + message + "‘)]"

    ele = WebDriverWait(driver, 5, 0.1).until(lambda x : x.find_element(By.XPATH, message))

    return ele.text


time.sleep(3)

driver.press_keycode(4)  # 点击返回按钮,适用于Uiautomator2框架

# driver.keyevent(4)   # 适用于Uiautomator1框架


print(find_toast(退出))

 

移动自动化appium --如何获取安卓手机的toast提示语

上一篇:NOIP 信息学1038:苹果和虫子--信息学一本通(c++)


下一篇:Eureka安全访问