python+appium自動化測試-06toast元素識別

Android中的Toast是一種簡易的消息提示框。 當視圖顯示給用戶,在應用程序中顯示爲浮動。和Dialog不一樣的是,它永遠不會獲得焦點,無法被點擊。
Toast類的思想就是儘可能不引人注意,同時還向用戶顯示信息,希望他們看到。而且Toast顯示的時間有限,一般3秒左右就消失了。因此使用傳統的元素定位工具,我們是很難定位到Toast元素的。那麼,我們應該怎樣獲取到toast元素呢?

Toast內容獲取環境準備

Appium 1.6.3開始支持識別Toast內容,主要是基於UiAutomator2,因此需要在Capablity配置如下參數:desired_caps[‘automationName’]=‘uiautomator2’
安裝appium-uiautomator2-driver: 安裝命令如下cnpm install appium-uiautomator2-driver
安裝selenium模塊:pip install selenium

場景舉例

進入登錄界面輸入錯誤的用戶名或者密碼,獲取Toast內容:
“用戶名或密碼錯誤,你還可以嘗試4次”
“驗證失敗次數過多,請15分鐘後再試”

# coding=utf-8
from findElement.capability import driver
from selenium.webdriver.support.ui import WebDriverWait

driver.find_element_by_id('com.tal.kaoyan:id/login_email_edittext').clear()
driver.find_element_by_id('com.tal.kaoyan:id/login_email_edittext').send_keys('username')

driver.find_element_by_id('com.tal.kaoyan:id/login_password_edittext').send_keys('password')
driver.find_element_by_id('com.tal.kaoyan:id/login_login_btn').click()


error_message="用戶名或密碼錯誤,你還可以嘗試4次"
#limit_message="驗證失敗次數過多,請15分鐘後再試"

message='//*[@text=\'{}\']'.format(error_message)
# message='//*[@text=\'{}\']'.format(limit_message)

toast_element=WebDriverWait(driver,5,0.5).until(lambda x:x.find_element_by_xpath(message))
print(toast_element.text)
發佈了53 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章