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

selenium查找網(wǎng)頁出現(xiàn)加載卡頓或失敗的解決方法

 更新時間:2023年10月05日 08:01:43   作者:虛壞叔叔  
這篇文章主要為大家詳細(xì)介紹了selenium查找網(wǎng)頁時如何處理網(wǎng)站資源一直加載非??D或者失敗的情況,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

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)文章

最新評論