亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python實現元素等待代碼實例

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

這篇文章主要介紹了python實現元素等待代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、為什么要元素等待?

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

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

二、元素等待的作用

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

三、元素等待類型

  • 強制等待:死等待,設置固定的等待時間 -- 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 提供了一個運行時動態(tài)創(chuàng)建函數的方法。
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中Lambda函數的用法

    深入了解Python中Lambda函數的用法

    lambda函數是Python中常用的內置函數,又稱為匿名函數。和普通函數相比,它只有函數體,省略了def和return,使得結構看起來更精簡。本文將詳細說說Lambda函數的用法,需要的可以參考一下
    2022-09-09
  • python數據結構之棧、隊列及雙端隊列

    python數據結構之棧、隊列及雙端隊列

    在上一章的學習中,我們主要學習了怎么去衡量一個算法的好壞,比較常見的方式是使用大O記法,就是所謂的時間復雜度,這一章節(jié)我來學習基本的數據結構,如棧、隊列和雙端隊列等等。感興趣的小伙伴可以參考一下
    2021-12-12
  • 解決pytorch 損失函數中輸入輸出不匹配的問題

    解決pytorch 損失函數中輸入輸出不匹配的問題

    這篇文章主要介紹了解決pytorch 損失函數中輸入輸出不匹配的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • python 提取key 為中文的json 串方法

    python 提取key 為中文的json 串方法

    今天小編就為大家分享一篇python 提取key 為中文的json 串方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python函數中的全局變量詳解

    Python函數中的全局變量詳解

    大家好,本篇文章主要講的是Python函數中的全局變量詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Python3日期與時間戳轉換的幾種方法詳解

    Python3日期與時間戳轉換的幾種方法詳解

    我們可以利用內置模塊 datetime 獲取當前時間,然后將其轉換為對應的時間戳。這篇文章主要介紹了Python3日期與時間戳轉換的幾種方法,需要的朋友可以參考下
    2019-06-06
  • 實現Python3數組旋轉的3種算法實例

    實現Python3數組旋轉的3種算法實例

    在本篇文章里小編給大家整理的是一篇關于實現Python3數組旋轉的3種算法實例內容,需要的朋友們可以學習參考下。
    2020-09-09
  • Python中%是什么意思?python中百分號如何使用?

    Python中%是什么意思?python中百分號如何使用?

    最近在學習python過程中,發(fā)現了%的一些情況,這里就簡單介紹一下,,需要的朋友可以參考下
    2018-03-03
  • NumPy.npy與pandas DataFrame的實例講解

    NumPy.npy與pandas DataFrame的實例講解

    今天小編就為大家分享一篇NumPy.npy與pandas DataFrame的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python搭建Spark分布式集群環(huán)境

    Python搭建Spark分布式集群環(huán)境

    這篇文章主要介紹了Spark分布式集群環(huán)境搭建基于Python版,Apache Spark 是一個新興的大數據處理通用引擎,提供了分布式的內存抽象。100 倍本文而是使用三臺電腦來搭建一個小型分布式集群環(huán)境安裝,需要的朋友可以參考下
    2019-07-07

最新評論