看到标题有些小伙伴肯定懵了,什么是toast?
toast
toast属于一种轻量级的反馈,常常以小弹框的形式出现,一般出现1到3秒会自动消失,可以出现在屏幕上中下任意位置。那么toast怎么进定位呢?我们先看下toast在app中是怎么显示的
app中的toast
我们打开淘宝,进入淘宝后,然后点击返回按钮。淘宝页面底部会出现一个弹框,这就是toast
定位toast
知道什么是toast了,那么怎么定位toast呢?
定位toast有两个前置条件:
1、appium必须是1.7以上的版本才可以
2、在启动appium的参数中加入 'automationName':"uiautomator2"
这里返回的是text文本,安静这里选择的是文本定位
# coding:utf-8 from appium import webdriver import time desired_caps = { 'platformName': 'Android', # 测试版本 'deviceName': 'emulator-5554', # 设备名 'platformVersion': '5.1.1', # 系统版本 "appPackage": "com.taobao.taobao", # app包名 "appActivity": "com.taobao.tao.welcome.Welcome", # 启动launch Activity "noReset": True, # 不清空数据 "unicodeKeyboard": True, # 使用Unicode编码方式发送字符串 "resetKeyboard": True, # 键盘隐藏起来 'automationName':"uiautomator2" } driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) time.sleep(10) # 点击返回按钮 driver.back() text = '再按一次' # text模糊定位 element = driver.find_element_by_xpath('//*[contains(@text, "%s")]'%text) print("toast内容:%s" % element.text) -----------结果--------- toast内容:再按一次返回键退出手机淘宝
这里会发现已经成功定位到了,但是可能有时候因为网络问题,或者其他原因,导致出现了,但是却没有定位到,我们可以通过显示等待的方法,然后循环去读取元素坐标。
安静写的只是其中的一种方法,如果有更好的方法,可以下方留言,共同学习。感谢关注