国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python自動(dòng)化測(cè)試selenium核心技術(shù)三種等待方式詳解

python自動(dòng)化測(cè)試selenium核心技術(shù)三種等待方式詳解

2022-03-01 00:11aovenus Python

這篇文章主要為大家介紹了python自動(dòng)化測(cè)試selenium的核心技術(shù)三種等待方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

UI自動(dòng)化測(cè)試過程中,可能會(huì)出現(xiàn)因測(cè)試環(huán)境不穩(wěn)定、網(wǎng)絡(luò)慢等情況,如果不做任何處理的話,會(huì)出現(xiàn)無法定位到特定元素而報(bào)錯(cuò),導(dǎo)致自動(dòng)化測(cè)試無法順利執(zhí)行。

selenium官網(wǎng)手冊(cè):Waits | Selenium

slenium自動(dòng)化測(cè)試中,主要涉及三種等待方式

 

1 使用python自帶模塊time的sleep方式

缺點(diǎn):即使網(wǎng)絡(luò)條件較好時(shí),依舊按照預(yù)定固定時(shí)間等待,一般不建議使用,腳本調(diào)試可使用。

示例腳本:

from selenium import  webdriver
from time import sleep
class TestWait(object):
  driver = webdriver.Chrome()
  driver.get(http://www.baidu.com) 
  def test_sleep(self):
      self.driver.find_element_by_id("kw").send_keys("sleep test")
      # sleep(2) #等待固定時(shí)間
      self.driver.implicitly_wait(2)  # 隱式等待
      self.driver.find_element_by_id("su").click()
      self.driver.quit()
if __name__ == '__main__':
  wait=TestWait()
  wait.test_sleep()

 

2 隱式等待(implicitly_wait)

隱式等待設(shè)置的時(shí)間是最長(zhǎng)的時(shí)間,如果在規(guī)定時(shí)間內(nèi)網(wǎng)頁加載完成,則執(zhí)行下一步,否則一直等到時(shí)間結(jié)束,然后執(zhí)行下一步。

注意:隱式等待對(duì)driver整個(gè)周期都起作用,一般在最開始設(shè)置一次就可以了。不要當(dāng)做固定等待,哪里都設(shè)置隱式等待。

示例腳本:

from selenium import  webdriver
from time import sleep 
class TestWait(object):
  driver = webdriver.Chrome()
  driver.get(http://www.baidu.com) 
  def test_sleep(self):
      self.driver.find_element_by_id("kw").send_keys("sleep test")
      self.driver.implicitly_wait(2)  # 隱式等待
      self.driver.find_element_by_id("su").click()
      self.driver.quit()
if __name__ == '__main__':
  wait=TestWait()
  wait.test_sleep()

 

3 顯示等待(WebDriverWait)

顯式等待允許等待條件的發(fā)生,所以非常適合在瀏覽器及其DOM和WebDriver腳本之間同步狀態(tài)。

需要引入包:from selenium.webdriver.support.wait import WebDriverWait

WebDriverWait參數(shù)說明:

WebDriverWait(driver, timeout=3).until(some_condition)

python自動(dòng)化測(cè)試selenium核心技術(shù)三種等待方式詳解

兩種方法:until和util_not

python自動(dòng)化測(cè)試selenium核心技術(shù)三種等待方式詳解

場(chǎng)景:

打開百度首頁,等待頁面標(biāo)題出現(xiàn):百度一下,你就知道,再執(zhí)行輸入搜索關(guān)鍵詞,點(diǎn)擊“百度一下”按鈕。

示例腳本:

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
class TestWait(object):
  def setup(self):
      self.driver = webdriver.Chrome()
      self.driver.get(http://www.baidu.com) 
  def test_webdreiverwait(self):
      webdreiverwaits =WebDriverWait(self.driver,2)
      webdreiverwaits.until(ec.title_is("百度一下,你就知道"))
      self.driver.find_element_by_id("kw").send_keys("test_webdreiverwait test")
      self.driver.find_element_by_id("su").click() 
  def teardown(self):
      self.driver.quit() 
if __name__ == '__main__':
  wait=TestWait()
  wait.test_webdreiverwait()

三種等待完整示例腳本:

from selenium import webdriver
from time import sleep
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
class TestWait(object):
  def setup(self):
      self.driver = webdriver.Chrome()
      self.driver.get("http://www.baidu.com")
   def test_sleep(self):
      self.driver.find_element_by_id("kw").send_keys("sleep test")
      sleep(2) #等待固定時(shí)間
   self.driver.find_element_by_id("su").click()  
  def test_implicitly(self):
      self.driver.find_element_by_id("kw").send_keys("implicitly test")
      self.driver.implicitly_wait(2)  # 隱式等待
   self.driver.find_element_by_id("su").click() 
  def test_webdreiverwait(self):
      webdreiverwaits =WebDriverWait(self.driver,2)
      webdreiverwaits.until(ec.title_is("百度一下,你就知道"))
      self.driver.find_element_by_id("kw").send_keys("test_webdreiverwait test")
      self.driver.find_element_by_id("su").click() 
  def teardown(self):
      self.driver.quit() 
if __name__ == '__main__':
  wait=TestWait()
  # wait.test_sleep()
  # wait.test_implicitly()
  wait.test_webdreiverwait()

【常見問題】:運(yùn)行腳本報(bào)empty suite:

from selenium import  webdriver
from time import sleep
class TestWait(object):
  def __init__(self):
  	self.driver = webdriver.Chrome()
  	self.driver.get('http://www.baidu.com') 
  def test_sleep(self):
      self.driver.find_element_by_id("kw").send_keys("sleep test")
      # sleep(2) #等待固定時(shí)間
      self.driver.implicitly_wait(2)  # 隱式等待
      self.driver.find_element_by_id("su").click()
      self.driver.quit()
if __name__ == '__main__':
  wait=TestWait()
  wait.test_sleep()

python自動(dòng)化測(cè)試selenium核心技術(shù)三種等待方式詳解

【解決方法】:腳本修改

from selenium import webdriver
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait 
class TestCase(object): 
  def setup(self):
      self.driver = webdriver.Chrome()
      self.driver.get('http://www.baidu.com')
      # sleep(2) 
  def test_sleep(self):
      self.driver.find_element_by_id('kw').send_keys('selenium')
      # sleep(2) # 線程阻塞 blocking wait
      self.driver.find_element_by_id('su').click()
      # sleep(3)  
  def test_implicitly(self):
      self.driver.implicitly_wait(10)
      self.driver.find_element_by_id('kw').send_keys('selenium')
      # sleep(2) # 線程阻塞 blocking wait
      self.driver.find_element_by_id('su').click()
      # sleep(3) 
   def test_wait(self):
      wait = WebDriverWait(self.driver,2)
      wait.until(EC.title_is('百度一下,你就知道'))
      self.driver.find_element_by_id('kw').send_keys('selenium')
      # sleep(2) # 線程阻塞 blocking wait
      self.driver.find_element_by_id('su').click()
      # sleep(3)
  def teardown(self):
      self.driver.quit() 
if __name__ == '__main__':
  case = TestCase()
  # case.test_sleep()
  # case.test_implicitly()
  case.test_wait()

以上:極客時(shí)間課程:selenium自動(dòng)化測(cè)試學(xué)習(xí)總結(jié)!

以上就是python自動(dòng)化測(cè)試selenium核心技術(shù)三種等待方式詳解的詳細(xì)內(nèi)容,更多關(guān)于selenium三種等待方式的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!

原文鏈接:https://blog.csdn.net/aovenus/article/details/121192001

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 黄色一级片免费 | 激情久久久久 | 国产乱码精品一区二区三区中文 | 色综合天天综合网国产成人网 | 精品欧美乱码久久久久久1区2区 | 91av导航| 91激情在线 | 亚洲国产精品久久久 | 黑森林av凹凸导航 | 国产精品一区二区无线 | 亚洲国产精品99久久久久久久久 | 一区二区视频在线观看 | 日本成片视频 | 涩涩999 | 久久九精品 | 欧美日韩在线一区 | 国产精品原创巨作av | 亚洲在线中文字幕 | 91亚洲国产成人久久精品网站 | 精品综合久久 | 久久精品91 | 午夜在线小视频 | 日韩在线视频观看 | 欧洲一区二区三区 | 亚洲在线观看免费视频 | 夜久久 | 久久久久久综合 | 欧美一级片在线 | 久久久久久亚洲精品视频 | 亚洲人免费视频 | 成人a级片在线观看 | 成av人片在线观看www | 午夜精品影院 | 九九综合| 综合久久久久 | 看免费5xxaaa毛片 | 午夜精品一区二区三区在线视频 | 欧美精品一区二区三区四区 | 国产在线一二三区 | 日韩影音| 自由成熟xxxx色视频 |