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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python—web页面操作之3种等待方式

發(fā)布時間:2025/3/21 python 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python—web页面操作之3种等待方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、強制等待

在web自動化測試中,有時候為了提高效率,要避免使用強制等待
使用場合:1、調(diào)試代碼的時候;2、文件上傳(系統(tǒng)的上傳界面)
time.sleep(6)

import timefrom selenium import webdriver driver=webdriver.Chrome() driver谷歌瀏覽器對象driver.get('http://www.sogou.com') 打開搜狗瀏覽器#定位到輸入框,輸入nba driver.find_element_by_xpath('//input[@maxlength="100"]').send_keys('nba')#定位到搜狗搜索按鈕,點擊搜狗搜索 driver.find_element_by_xpath('//input[@value="搜狗搜索"]').click()#需要休眠一下 time.sleep(2) driver.find_element_by_xpath('//p[@class="title-summary "]').click()

為什么找不見元素?
因為確實沒有這個元素,點擊搜狗搜索后,頁面處于加載中,而代碼執(zhí)行完點擊搜索后,會立即執(zhí)行下一行代碼,所以元素沒有找到
需要休眠一下
time.sleep(2)

二、隱形等待

1、只需要在打開瀏覽器的時候,設置隱形等待的超時時間,之后就不需要設置第二次,全局生效
2、如果隱形等待時間設置為10,driver.implicitly_wait(10):每次查找元素的時候,都有10s的時間去等待某個元素出現(xiàn)
3、打開瀏覽器馬上加上隱形等待,養(yǎng)成習慣
4、局限性:對某些個元素的狀態(tài)無法判斷

from selenium import webdriverdriver=webdriver.Chrome() driver谷歌瀏覽器對象#設置隱形等待時間 driver.implicitly_wait(10)#打開搜狗搜索 driver.get('http://www.sogou.com')#定位到輸入框,輸入nba driver.find_element_by_xpath('//input[@name="query"]').send_keys('NBA')#定位到搜狗搜索按鈕,點擊butten driver.find_element_by_xpath('//input[@type="submit"]').click()#定位title,點擊title driver.find_element_by_xpath('//p[@class="title-summary "]').click()#打印當前頁面 print(driver.current_url)

設置隱形等待時間,時間是全局生效的,每個元素都需要等待10s
driver.implicitly_wait(10)
為什么不設置成6000s,因為當元素不存在的時候,會真的會等待6000s

三、顯性等待

等待元素出現(xiàn)
等待元素可以被點擊
等待元素可見(已經(jīng)加載出來,但是不可見)
用法
wait
wait.until()
locator

from selenium import webdriver#顯性等待路徑 from selenium.webdriver.support.wait import WebDriverWait #內(nèi)置條件放在那 from selenium.webdriver.support import expected_conditions driver=webdriver.Chrome() driver谷歌瀏覽器對象 driver.implicitly_wait(10)#打開搜狗搜索 driver.get('http://www.sogou.com') #定位到輸入框,輸入nba driver.find_element_by_xpath('//input[@type="text"]').send_keys('nba')#定位到搜狗搜索butten,點擊 driver.find_element_by_xpath('//input[@value="搜狗搜索"]').click()wait=WebDriverWait(driver,10,poll_frequency=0.2) locator=('xpath','//p[@class="title-summary "]') el=wait.until(expected_conditions.presence_of_element_located(locator)) el.click()print('hello world') print(driver.current_url)

四、顯性等待具體操作

顯性等待路徑
from selenium.webdriver.support.wait import WebDriverWait

內(nèi)置條件放在那?
from selenium.webdriver.support import expected_conditions
1、初始化一個等待器,需要傳3個參數(shù)
driver
timeout
poll_frequency
wait=WebDriverWait(driver,10,poll_frequency=0.2)
2、等待某個條件的發(fā)生,返回ture、false
導入條件可以自己定義,通常可以選用內(nèi)置條件
3、準備元素的定位表達式
locator=(‘xpath’,’//p[@class="title-summary "]’)
el=wait.until(expected_conditions.presence_of_element_located(locator))
el.click(
)

總結(jié)

以上是生活随笔為你收集整理的python—web页面操作之3种等待方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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