日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 9.0 toast不显示,9.0 toast定位+WebDriverWait显示等待

發(fā)布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 9.0 toast不显示,9.0 toast定位+WebDriverWait显示等待 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Toast ?判斷-----基本操作問題

首先基本操作,進入安卓市場的賬號密碼頁面---

from appium importwebdriverfrom selenium.webdriver.support.ui importWebDriverWaitfrom selenium.webdriver.support importexpected_conditions as ECfrom appium.webdriver.common.touch_action import TouchAction #導入Touch Action類

importtime,re,os

Start={}

Start['platformName']='android' #設(shè)備型號 android或者ios

Start['platformVersion']='5.1' #安卓設(shè)備版本號

Start['deviceName']='192.168.176.101:5555' #安卓設(shè)備名稱

Start['app']=r'C:\Users\Administrator\Desktop\xuexi\apk\anzhuoshichang_16793302.apk' #設(shè)備路徑 pc電腦存放apk包的路徑#上面的路徑不推薦這種寫法,但是目前先這么寫!后續(xù)告訴大家正確的寫法

Start['appPackage']='com.hiapk.marketpho' #包名

Start['appActivity']='com.baidu.appsearch.LauncherActivity' #容器

Start['noReset']='True' #是否重新安裝app True不重新安裝

Start['unicodeKeyboard']='True' #是否禁用手機鍵盤 True禁用手機輸入法

Start['resetKeyboard']='True' #是否啟動appium自帶鍵盤 True開始手機輸入法

Start['automationName']='uiautomator2' #可選模式 本教程默認 Uiautomator2

Start['newCommandTimeout']='400' #超時時間(s)

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',Start)

driver.implicitly_wait(10) #隱式等待十秒

time.sleep(3)'''模擬器或者手機上已經(jīng)有了安卓市場,那么啟動之后,直接點擊左上角的頭像圖標'''head='com.hiapk.marketpho:id/person_center_btn'driver.find_element_by_id(head).click()#點擊頭像圖標進入個人中心

time.sleep(5)

login='com.hiapk.marketpho:id/please_login'driver.find_element_by_id(login).click()#點擊立即登錄

time.sleep(5)

為什么要進入到這個頁面呢---因為這個頁面輸入有個toast提示............

如圖所示:這個toast提示是在uiautomator上面定位不到的,所以需要稍微處理一下!

然后隨便輸入一個手機號碼和一個密碼登記登錄:

Elements=driver.find_elements_by_id('com.hiapk.marketpho:id/edt_text')

Elements[0].set_text('17700000000') #因為賬號輸入和密碼輸入id相同,所以需要用到elements,之前有介紹過

Elements[1].set_text('123456')

driver.find_element_by_id('com.hiapk.marketpho:id/btn_login').click()

這時手機出現(xiàn)下圖所示的toast提示:

之前章節(jié)有說過權(quán)限彈窗定位的那個方法--用在這里就O了!記得導入這個庫

from selenium.webdriver.support import expected_conditions as EC

try:

Element= ("xpath", "//*[@text='網(wǎng)絡(luò)連接異常,請重試']")

WebDriverWait(driver,30, 0.5).until(EC.presence_of_element_located(Element))print('獲取到toast提示:網(wǎng)絡(luò)連接異常,請重試')except:print('涼了,兄碟')

稍微換一下寫法呢:

結(jié)果:很舒服---也是可以的--

try:

Element= "//*[@text='網(wǎng)絡(luò)連接異常,請重試']"WebDriverWait(driver,60, 0.5).until(lambdadriver:driver.find_element_by_xpath(Element))print('獲取到toast提示:網(wǎng)絡(luò)連接異常,請重試')except:print('涼了,兄碟')

備注:toast定位基本上是穩(wěn)定的,但是偶爾會判斷不鳥,屬于正常現(xiàn)象,建議把掃描時間0.5s換成0.1s會穩(wěn)定很多!

WebDriverWait(driver,60, 0.5).until(lambda driver:driver.find_element_by_xpath(Element))

這個是顯示等待,?意思就是 等待60s ??在這六十秒中,每隔0.5秒掃描一次,是否出現(xiàn)元素 Element

現(xiàn)在把上面的強制等待time.sleep()全部換成顯示等待!

from appium importwebdriverfrom selenium.webdriver.support.ui importWebDriverWaitfrom selenium.webdriver.support importexpected_conditions as ECfrom appium.webdriver.common.touch_action import TouchAction #導入Touch Action類

importtime,re,os

Start={}

Start['platformName']='android' #設(shè)備型號 android或者ios

Start['platformVersion']='5.1' #安卓設(shè)備版本號

Start['deviceName']='192.168.176.101:5555' #安卓設(shè)備名稱

Start['app']=r'C:\Users\Administrator\Desktop\xuexi\apk\anzhuoshichang_16793302.apk' #設(shè)備路徑 pc電腦存放apk包的路徑#上面的路徑不推薦這種寫法,但是目前先這么寫!后續(xù)告訴大家正確的寫法

Start['appPackage']='com.hiapk.marketpho' #包名

Start['appActivity']='com.baidu.appsearch.LauncherActivity' #容器

Start['noReset']='True' #是否重新安裝app True不重新安裝

Start['unicodeKeyboard']='True' #是否禁用手機鍵盤 True禁用手機輸入法

Start['resetKeyboard']='True' #是否啟動appium自帶鍵盤 True開始手機輸入法

Start['automationName']='uiautomator2' #可選模式 本教程默認 Uiautomator2

Start['newCommandTimeout']='400' #超時時間(s)

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',Start)

driver.implicitly_wait(10) #隱式等待十秒

time.sleep(3)'''模擬器或者手機上已經(jīng)有了安卓市場,那么啟動之后,直接點擊左上角的頭像圖標'''head='com.hiapk.marketpho:id/person_center_btn'driver.find_element_by_id(head).click()#點擊頭像圖標進入個人中心

#time.sleep(5)

login='com.hiapk.marketpho:id/please_login'

#判斷十秒內(nèi)是否獲取到登錄元素

WebDriverWait(driver,10,0.5).until(lambdadriver:driver.find_element_by_id(login))

driver.find_element_by_id(login).click()#點擊立即登錄#time.sleep(5)

Elements=driver.find_elements_by_id('com.hiapk.marketpho:id/edt_text')#點擊立即登錄之后,獲取下一頁頁面的元素

WebDriverWait(driver,10,0.5).until(lambda driver:driver.find_element_by_xpath('//*[@text="手機/郵箱/通行證"]'))

Elements[0].set_text('17700000000') #因為賬號輸入和密碼輸入id相同,所以需要用到elements,之前有介紹過

Elements[1].set_text('123456')

driver.find_element_by_id('com.hiapk.marketpho:id/btn_login').click()#因為這個toast提示時間出來的有點晚,所以等待時間稍微加那么一丟丟#try:#Element = ("xpath", "//*[@text='網(wǎng)絡(luò)連接異常,請重試']")#WebDriverWait(driver,60, 0.5).until(EC.presence_of_element_located(Element))#print('獲取到toast提示:網(wǎng)絡(luò)連接異常,請重試')#except:#print('涼了,兄碟')

try:

Element= "//*[@text='網(wǎng)絡(luò)連接異常,請重試']"WebDriverWait(driver,60, 0.5).until(lambdadriver:driver.find_element_by_xpath(Element))print('獲取到toast提示:網(wǎng)絡(luò)連接異常,請重試')except:print('涼了,兄碟')

基本上原理都是大同小異....理解了之后,可以寫的花里胡哨的!!!!!

總結(jié)

以上是生活随笔為你收集整理的android 9.0 toast不显示,9.0 toast定位+WebDriverWait显示等待的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。