最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)元素等待代碼實(shí)例

 更新時(shí)間:2019年11月11日 15:38:38   作者:方緣  
這篇文章主要介紹了python實(shí)現(xiàn)元素等待代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了python實(shí)現(xiàn)元素等待代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、為什么要元素等待?

在UI自動(dòng)化過(guò)程中,元素的出現(xiàn)受網(wǎng)絡(luò)環(huán)境、設(shè)備性能等多種元素影響。因此,元素加載和腳本運(yùn)行到該元素的時(shí)間不一致,會(huì)報(bào)錯(cuò):元素?zé)o法定位。

簡(jiǎn)單舉下例子:實(shí)際UI自動(dòng)化測(cè)試中,點(diǎn)擊一個(gè)登錄控件需要啟動(dòng)一個(gè)新activity界面,或需要加載彈框,或請(qǐng)求網(wǎng)絡(luò)加載數(shù)據(jù)成功后刷新頁(yè)面,此時(shí)需要等待一段時(shí)間,新界面出現(xiàn)了才能繼續(xù)執(zhí)行UI操作,否則數(shù)據(jù)還在加載ing,腳本已開(kāi)始執(zhí)行新界面操作的代碼,腳本就會(huì)報(bào)錯(cuò)。

二、元素等待的作用

  • 設(shè)置元素等待,增強(qiáng)腳本的健壯性,提高執(zhí)行效率;
  • 本質(zhì)是為了解決時(shí)序不匹配:腳本執(zhí)行時(shí),腳本的執(zhí)行速度和頁(yè)面元素的加載速度未必一致

三、元素等待類(lèi)型

  • 強(qiáng)制等待:死等待,設(shè)置固定的等待時(shí)間 -- sleep(2) # 強(qiáng)制等待5s,要導(dǎo)入時(shí)間包(import time)
  • 隱性等待:針對(duì)全度元素設(shè)置的等待時(shí)間 -- driver.implicitly_wait(5)
  • 顯性等待:針對(duì)某個(gè)元素來(lái)設(shè)置的等待時(shí)間 -- WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exception=None),要導(dǎo)入包(from selenium.webdriver.support.ui import WebDriverWait)

四、怎么設(shè)置元素等待

1.強(qiáng)制等待的應(yīng)用實(shí)例:

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)
# 強(qiáng)制等待5s,不管等待的元素是否出現(xiàn),都要等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)
# 隱性等待(等待所有元素),最長(zhǎng)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)
# 顯性等待(等待特定元素出現(xiàn))
# lambda 提供了一個(gè)運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建函數(shù)的方法。
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()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python編程實(shí)現(xiàn)下載器自動(dòng)爬取采集B站彈幕示例

    Python編程實(shí)現(xiàn)下載器自動(dòng)爬取采集B站彈幕示例

    這篇文章主要介紹了使用Python編程來(lái)實(shí)現(xiàn)一個(gè)下載器可以自動(dòng)爬取采集B站彈幕的示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-10-10
  • Django 解決distinct無(wú)法去除重復(fù)數(shù)據(jù)的問(wèn)題

    Django 解決distinct無(wú)法去除重復(fù)數(shù)據(jù)的問(wèn)題

    這篇文章主要介紹了Django 解決distinct無(wú)法去除重復(fù)數(shù)據(jù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 利用Python自動(dòng)生成PPT的示例詳解

    利用Python自動(dòng)生成PPT的示例詳解

    在日常工作中,PPT制作是常見(jiàn)的工作。這篇文章主要為大家詳細(xì)介紹了如何利用Python自動(dòng)生成PPT,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • Python OpenCV利用筆記本攝像頭實(shí)現(xiàn)人臉檢測(cè)

    Python OpenCV利用筆記本攝像頭實(shí)現(xiàn)人臉檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了Python OpenCV利用筆記本攝像頭實(shí)現(xiàn)人臉檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python Django安裝配置模板系統(tǒng)及使用實(shí)戰(zhàn)全面詳解

    Python Django安裝配置模板系統(tǒng)及使用實(shí)戰(zhàn)全面詳解

    本文首先介紹了Django模板系統(tǒng)的基礎(chǔ)知識(shí),接著探討了如何安裝和配置Django模板系統(tǒng),然后深入解析了Django模板的基本結(jié)構(gòu)、標(biāo)簽和過(guò)濾器的用法,闡述了如何在模板中展示模型數(shù)據(jù),最后使用一個(gè)實(shí)際項(xiàng)目的例子來(lái)演示如何在實(shí)際開(kāi)發(fā)中使用Django模板系統(tǒng)
    2023-09-09
  • py3nvml實(shí)現(xiàn)GPU相關(guān)信息讀取的案例分析

    py3nvml實(shí)現(xiàn)GPU相關(guān)信息讀取的案例分析

    這篇文章主要介紹了py3nvml實(shí)現(xiàn)GPU相關(guān)信息讀取,此時(shí)就可以考慮使用py3nvml這樣的工具,針對(duì)于GPU任務(wù)執(zhí)行的過(guò)程進(jìn)行細(xì)化的分析,有助于提升GPU的利用率和程序執(zhí)行的性能,需要的朋友可以參考下
    2022-01-01
  • python數(shù)據(jù)預(yù)處理 :數(shù)據(jù)抽樣解析

    python數(shù)據(jù)預(yù)處理 :數(shù)據(jù)抽樣解析

    這篇文章主要介紹了python數(shù)據(jù)預(yù)處理 :數(shù)據(jù)抽樣解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python圖形繪制奧運(yùn)五環(huán)實(shí)例講解

    python圖形繪制奧運(yùn)五環(huán)實(shí)例講解

    在本文里我們給大家整理了一篇關(guān)于python圖形繪制奧運(yùn)五環(huán)的實(shí)例內(nèi)容,大家可以跟著學(xué)習(xí)下。
    2019-09-09
  • 如何使用python中的networkx來(lái)生成一個(gè)圖

    如何使用python中的networkx來(lái)生成一個(gè)圖

    這篇文章主要介紹了如何使用python中的networkx來(lái)生成一個(gè)圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Jupyter中markdown的操作方法

    Jupyter中markdown的操作方法

    Jupyter Notebook是基于網(wǎng)頁(yè)的用于交互計(jì)算的應(yīng)用程序,Jupyter notebook,作為Python廣受歡迎的一款I(lǐng)DLE,其直觀性、簡(jiǎn)易性、易于閱讀等優(yōu)點(diǎn)廣受許多Python用戶(hù)所推薦,這篇文章介紹Jupyter中markdown的操作,感興趣的朋友一起看看吧
    2024-01-01

最新評(píng)論

疏勒县| 永德县| 阿合奇县| 四子王旗| 浮梁县| 获嘉县| 花垣县| 定陶县| 桑植县| 新绛县| 云阳县| 嘉兴市| 营口市| 江北区| 汉中市| 顺义区| 澄迈县| 客服| 宜昌市| 安徽省| 云南省| 临邑县| 曲靖市| 宜州市| 册亨县| 城市| 乐都县| 辽宁省| 大港区| 昭觉县| 资阳市| 天峻县| 和田县| 色达县| 望城县| 德昌县| 合川市| 乌兰察布市| 广宗县| 合作市| 南丰县|