selenium查找網(wǎng)頁出現(xiàn)加載卡頓或失敗的解決方法
selenium獲取一個網(wǎng)頁,某個網(wǎng)頁的資源卡了很久還沒有加載成功,如何放棄這個卡的數(shù)據(jù),繼續(xù)往下走
有2鐘方式。通常可以采用下面的方式一來處理這種情況
方式一、WebDriverWait
這種方式對于資源比較多比較復(fù)雜的網(wǎng)頁比較合適,比如有些圖片在國外,一直加載不出來。mail.com就是這樣
當(dāng)網(wǎng)頁15秒還沒有加載完成,此時代碼不管有沒有找到元素都會繼續(xù)往下走,:
- 如果沒有找到元素就會拋異常。
- 如果找到元素,就會點擊
這個時候,如果拋異常??梢远鄧L試即便,直到不拋異常即可繼續(xù)往下走
def ClickElementByXpath(self, brower, xPath): try: brower.implicitly_wait(5) self.insert_text_to_last_line(self.log_pass_file, xPath) result = WebDriverWait(brower, 15).until(EC.presence_of_element_located((By.XPATH, xPath))) result.click() return True except Exception as e: print('exception timeout!!!') return False
方式二、find_element
這種方式適合資源能快速加載完成的網(wǎng)站。
find_element會等到網(wǎng)站所有的資源全部加載完成后,再繼續(xù)往下執(zhí)行,這樣的話更穩(wěn)定,但對于有些網(wǎng)站資源本身很卡,就會一直卡住了,導(dǎo)致卡非常久,最后腳本運行失敗。
def ClickElementByXpath(self, brower, xPath): try: brower.implicitly_wait(55) self.insert_text_to_last_line(self.log_pass_file, xPath) #element_input = brower.find_element_by_xpath(xPath) element_input = brower.find_element(By.XPATH, xPath) element_input.click() return True except Exception as e: print('exception timeout!!!') return False
是否可以設(shè)置超時時間 當(dāng)元素的點擊后 ,不等頁面加載完成,接著往下走
在Selenium中,可以使用WebDriver的set_page_load_timeout方法來設(shè)置頁面加載的超時時間,但是這個設(shè)置通常是應(yīng)用于整個頁面的加載,而不是單個元素的點擊操作。如果你希望在點擊元素后不等待頁面加載完成,而是繼續(xù)執(zhí)行后續(xù)操作,可以采取以下方法:
使用set_page_load_timeout:你可以設(shè)置一個較短的頁面加載超時時間,以便在點擊元素后等待較短的時間。然后,可以在捕獲超時異常后,繼續(xù)執(zhí)行后續(xù)操作。
from selenium import webdriver from selenium.common.exceptions import TimeoutException # 創(chuàng)建 WebDriver 實例 driver = webdriver.Chrome() # 設(shè)置頁面加載超時時間為5秒 driver.set_page_load_timeout(5) try: # 打開網(wǎng)頁 driver.get("https://example.com") # 找到要點擊的元素 element = driver.find_element_by_id("my_element_id") # 點擊元素 element.click() except TimeoutException: print("頁面加載超時") # 在這里可以繼續(xù)執(zhí)行后續(xù)操作,而不用等待頁面加載完成 # 關(guān)閉 WebDriver driver.quit()
以上就是selenium查找網(wǎng)頁出現(xiàn)加載卡頓或失敗的解決方法的詳細(xì)內(nèi)容,更多關(guān)于selenium查找網(wǎng)頁的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Pyinstaller打包.py生成.exe的方法和報錯總結(jié)
今天小編就為大家分享一篇關(guān)于Pyinstaller打包.py生成.exe的方法和報錯總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04python cv2讀取rtsp實時碼流按時生成連續(xù)視頻文件方式
今天小編就為大家分享一篇python cv2讀取rtsp實時碼流按時生成連續(xù)視頻文件方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12pycharm 2021.3最新激活碼有效期至2100年(親測可用)
這篇文章主要介紹了pycharm 2021.3最新激活碼有效期至2100年(親測可用)2021-02-02matplotlib圖例legend語法及設(shè)置的方法
這篇文章主要介紹了matplotlib圖例legend語法及設(shè)置的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07pandas.dataframe中根據(jù)條件獲取元素所在的位置方法(索引)
今天小編就為大家分享一篇pandas.dataframe中根據(jù)條件獲取元素所在的位置方法(索引),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python使用mysqldb連接數(shù)據(jù)庫操作方法示例詳解
這篇文章主要介紹了python mysqldb使用方法,大家參考使用2013-12-12