Toast作为一般作为提示信息框, 一般显示时间较短。使用元素定位很难获取到。
可以使用xpath 定位 **//*[@class="android.widget.Toast"]**
来定位Toast 组件元素。
下面代码演示如何获取上面Toast信息内容。
**
"""
获取Toast 元素
"""
from appium import webdriver
caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "5" # 设备的版本号 输入自己的设备版本号
caps["deviceName"] = "127.0.0.1:21503" # 设备的序列号 输入自己的设备序列号
caps["automationName"] = "UiAutomator2"
caps['appPackage'] = "org.cnodejs.android.md"
caps['appActivity'] = ".ui.activity.LaunchActivity"
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps) # 连接appium 远程服务
# 全局等待时间30秒 如果元素没有立即显示出来,会重试
driver.implicitly_wait(30)
token = "527e85d4-cd50-468c-8003-b804651fba09"
driver.find_element_by_xpath('//*[@resource-id="org.cnodejs.android.md:id/toolbar"]/android.widget.ImageButton').click()
driver.find_element_by_xpath('//*[@resource-id="org.cnodejs.android.md:id/layout_info"]/android.widget.ImageView').click()
driver.find_element_by_xpath('//*[@resource-id="org.cnodejs.android.md:id/edt_access_token"]').send_keys(token)
driver.find_element_by_xpath('//*[@resource-id="org.cnodejs.android.md:id/btn_login"]').click()
# 获取Toast 元素
ele = driver.find_element_by_xpath('//*[@class="android.widget.Toast"]')
print(ele.text)