Toast作为一般作为提示信息框, 一般显示时间较短。使用元素定位很难获取到。

    可以使用xpath 定位 **//*[@class="android.widget.Toast"]** 来定位Toast 组件元素。

    image.png

    下面代码演示如何获取上面Toast信息内容。
    **

    1. """
    2. 获取Toast 元素
    3. """
    4. from appium import webdriver
    5. caps = {}
    6. caps["platformName"] = "Android"
    7. caps["platformVersion"] = "5" # 设备的版本号 输入自己的设备版本号
    8. caps["deviceName"] = "127.0.0.1:21503" # 设备的序列号 输入自己的设备序列号
    9. caps["automationName"] = "UiAutomator2"
    10. caps['appPackage'] = "org.cnodejs.android.md"
    11. caps['appActivity'] = ".ui.activity.LaunchActivity"
    12. driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps) # 连接appium 远程服务
    13. # 全局等待时间30秒 如果元素没有立即显示出来,会重试
    14. driver.implicitly_wait(30)
    15. token = "527e85d4-cd50-468c-8003-b804651fba09"
    16. driver.find_element_by_xpath('//*[@resource-id="org.cnodejs.android.md:id/toolbar"]/android.widget.ImageButton').click()
    17. driver.find_element_by_xpath('//*[@resource-id="org.cnodejs.android.md:id/layout_info"]/android.widget.ImageView').click()
    18. driver.find_element_by_xpath('//*[@resource-id="org.cnodejs.android.md:id/edt_access_token"]').send_keys(token)
    19. driver.find_element_by_xpath('//*[@resource-id="org.cnodejs.android.md:id/btn_login"]').click()
    20. # 获取Toast 元素
    21. ele = driver.find_element_by_xpath('//*[@class="android.widget.Toast"]')
    22. print(ele.text)