91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么實現元素等待代碼

發布時間:2021-04-06 10:11:43 來源:億速云 閱讀:174 作者:小新 欄目:開發技術

這篇文章主要介紹Python怎么實現元素等待代碼,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一、為什么要元素等待?

在UI自動化過程中,元素的出現受網絡環境、設備性能等多種元素影響。因此,元素加載和腳本運行到該元素的時間不一致,會報錯:元素無法定位。

簡單舉下例子:實際UI自動化測試中,點擊一個登錄控件需要啟動一個新activity界面,或需要加載彈框,或請求網絡加載數據成功后刷新頁面,此時需要等待一段時間,新界面出現了才能繼續執行UI操作,否則數據還在加載ing,腳本已開始執行新界面操作的代碼,腳本就會報錯。

二、元素等待的作用

  • 設置元素等待,增強腳本的健壯性,提高執行效率;

  • 本質是為了解決時序不匹配:腳本執行時,腳本的執行速度和頁面元素的加載速度未必一致

三、元素等待類型

  • 強制等待:死等待,設置固定的等待時間 -- sleep(2) # 強制等待5s,要導入時間包(import time)

  • 隱性等待:針對全度元素設置的等待時間 -- driver.implicitly_wait(5)

  • 顯性等待:針對某個元素來設置的等待時間 -- WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exception=None),要導入包(from selenium.webdriver.support.ui import WebDriverWait)

四、怎么設置元素等待

1.強制等待的應用實例:

from appium import webdriver
import time
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['packageName'] = 'com.cnblogs.android'
desired_caps['packagActivity'] = 'com.cnblogs.android.SplashActivity'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
driver = webdriver.Remote('http://127.0.0.1:8888/wd/hub',desired_caps)
# 強制等待5s,不管等待的元素是否出現,都要等5s
time.sleep(5)
driver.find_element_by_id('com.cnblogs.android:id/TabSearch').click()
time.sleep(2)
driver.find_element_by_id('com.cnblogs.android:id/txtSearch').send_keys('方緣')
driver.find_element_by_id('com.cnblogs.android:id/search_btn').click()
driver.quit()

2.隱性等待:

from appium import webdriver
import time
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['packageName'] = 'com.cnblogs.android'
desired_caps['packagActivity'] = 'com.cnblogs.android.SplashActivity'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
driver = webdriver.Remote('http://127.0.0.1:8888/wd/hub',desired_caps)
# 隱性等待(等待所有元素),最長3s
driver.implicitly_wait(3)
driver.find_element_by_id('com.cnblogs.android:id/TabSearch').click()
time.sleep(2)
driver.find_element_by_id('com.cnblogs.android:id/txtSearch').send_keys('方緣')
driver.find_element_by_id('com.cnblogs.android:id/search_btn').click()
driver.quit()

3.顯性等待:

from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1.1'
desired_caps['deviceName'] = '127.0.0.1:62001'
desired_caps['packageName'] = 'com.cnblogs.android'
desired_caps['packagActivity'] = 'com.cnblogs.android.SplashActivity'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
driver = webdriver.Remote('http://127.0.0.1:8888/wd/hub',desired_caps)
# 顯性等待(等待特定元素出現)
# lambda 提供了一個運行時動態創建函數的方法。
WebDriverWait(driver,3).until(lambda x: x.find_element_by_id('com.cnblogs.android:id/TabSearch')).click()
driver.find_element_by_id('com.cnblogs.android:id/TabSearch').click()
time.sleep(2)
driver.find_element_by_id('com.cnblogs.android:id/txtSearch').send_keys('方緣')
driver.find_element_by_id('com.cnblogs.android:id/search_btn').click()
driver.quit()

以上是“Python怎么實現元素等待代碼”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武川县| 南溪县| 江都市| 永州市| 新和县| 华亭县| 金堂县| 图木舒克市| 喀喇沁旗| 安国市| 囊谦县| 平安县| 溆浦县| 长岭县| 林口县| 保亭| 灵宝市| 赞皇县| 中山市| 东城区| 高雄市| 庆元县| 聂拉木县| 辽阳市| 米林县| 班戈县| 西乌珠穆沁旗| 西丰县| 如东县| 泰顺县| 波密县| 靖远县| 桦南县| 高阳县| 申扎县| 大英县| 昌乐县| 旺苍县| 新绛县| 贡山| 平邑县|