看到標題有些小伙伴肯定懵了,什么是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內容:再按一次返回鍵退出手機淘寶
這里會發現已經成功定位到了,但是可能有時候因為網絡問題,或者其他原因,導致出現了,但是卻沒有定位到,我們可以通過顯示等待的方法,然后循環去讀取元素坐標。
安靜寫的只是其中的一種方法,如果有更好的方法,可以下方留言,共同學習。感謝關注