selenium學(xué)習(xí)筆記11——driver.get(url) 頁面加載時(shí)間太長

在執(zhí)行自動(dòng)化測試用例過程中,發(fā)現(xiàn)因?yàn)榫W(wǎng)絡(luò)慢或其他原因?qū)е耫river.get(url) 時(shí),頁面一直在加載,頁面沒有加載完成就不會(huì)去繼續(xù)執(zhí)行下面的動(dòng)作,但是實(shí)際上需要操作的元素已經(jīng)加載出來了。

解決方法

第一步:使用 set_script_timeout() 設(shè)置等待最大時(shí)間。

第二步:到了最大等待時(shí)間后頁面如果仍然沒有加載完成,執(zhí)行js代碼, driver.execute_script("window.stop()") 停止頁面加載,執(zhí)行下面的自動(dòng)化測試步驟。
代碼如下:

        driver = self.driver
        # 設(shè)置頁面最大加載時(shí)間
        driver.set_page_load_timeout(10)
        try:
            driver.get(self.base_url)
        except TimeoutException:
            print '?。。。。。ime out after 10 seconds when loading page?。。。。?!'
            # 當(dāng)頁面加載時(shí)間超過設(shè)定時(shí)間,通過js來stop,即可執(zhí)行后續(xù)動(dòng)作
            driver.execute_script("window.stop()")
  1. 設(shè)置了最大等待時(shí)間為10秒。
  2. 如果10秒沒有加載完成,打印“time out after 10 seconds when loading page!”,然后停止加載,直接執(zhí)行下面的測試步驟。

代碼封裝

# -*- coding: utf-8 -*-
# @Time    : 2018/8/6 11:12
# @Author  : 銀河以北
# @Email   : smilegks@163.com
# @Introduction   : XXX

def page_loading_timeout(driver, url, time):
    '''
    :param driver: 參數(shù)1,傳入瀏覽器對(duì)象
    :param url: 參數(shù)2,傳入url
    :param time: 參數(shù)3,設(shè)置超時(shí)時(shí)間,單位是秒
    :return:
    '''
    driver.set_page_load_timeout(time)
    try:
        driver.get(url)
    except:
        print "!?。。。?!time out after %s seconds when loading page?。。。。?!" % time
        # 當(dāng)頁面加載時(shí)間超過設(shè)定時(shí)間,通過js來stop,即可執(zhí)行后續(xù)動(dòng)作
        driver.execute_script("window.stop()")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容