selenium 頁面載入慢,超時的解決方案

2022-07-19 20:39:17 字數 2100 閱讀 5340

from selenium import webdriver

driver=webdriver.chrome()

driver.set_page_load_timeout(5)

driver.set_script_timeout(5)#這兩種設定都進行才有效

try:

d.get(s)

except:

d.execute_script('window.stop()')#這句話好像沒什麼軟用

可以在頁面停止載入後繼續操作了

driver.set_page_load_timeout(5)這玩意一設定,沒問題,5秒後網頁確實停止了,但是driver也死了,不管執行什麼都是timeout,還說try一下,driver是死透了,只能重新來

不知道是selenium更新了還是他自己沒測試還是chrome更新了,現在這麼設定就是找死的

注意:使用set_page_load_timeout時候,當頁面未載入出任何東西的時候(往往是html原始碼未載入),因為超時而停止,會導致driver失效,

後面的driver都不能操作,所以超時設定應該至少保證頁面內容載入出來一部分,設定超時不宜過短,如下圖在頁面此種狀態下停止載入後driver失效。

不錯,是有人也說了,不能設定太短,會失效,但是我可以說,你設定5分鐘照樣失效,只要超時一次,driver就完蛋,直接翻車

接下來是另乙個方法
# coding = utf-8

from selenium import webdriver

from selenium.webdriver.support.wait import webdriverwait

import time

driver = webdriver.chrome()

class button():

def __call__(self, driver):

if driver.find_element_by_id('js_love_url'):

return true

else:

return false

driver.implicitly_wait(60)

time_start = time.time()

driver.get('')

# driver.find_element_by_id('js_love_url').click()

webdriverwait(driver,2,0.5).until(button())

time_end = time.time()

print('access time is : ', time_end - time_start)

time.sleep(2)

driver.quit()

用webdriverwait進行操作,不過我測試下來,driver.get()不執行完,下面的**根本就不會執行,所以還是不行

找了各種方法,各種操作,都失敗了,總算今天找到了正確的方法

原理非常簡單:driver.get()這個操作,改成不阻塞的就行了,這樣開啟網頁就操作完成了,不需要等他載入

下面我可以直接等待需要的元素出現即可進行操作

配置也是很簡單

from selenium import webdriver

from selenium.webdriver.common.desired_capabilities import desiredcapabilities

#get直接返回,不再等待介面載入完成

desired_capabilities = desiredcapabilities.chrome

desired_capabilities["pageloadstrategy"] = "none"driver = webdriver.chrome(executable_path='chromedriver.exe')

配置乙個引數,就是頁面載入策略,系統預設是等待,就是等他載入完,直接設定成none,就是不等待,這樣就是get操作完後直接就是結束了

不影響下面的操作,這樣就可以愉快的玩耍了

selenium 頁面載入慢,超時的解決方案

開發環境 win10 64 python2.7.16 chrome77 from selenium import webdriver driver webdriver.chrome executable path chromedriver.exe driver.get http 全部載入完成超級慢的...

頁面載入慢的原因

1.後端的原因,伺服器不好,請求耗時長 2.前端傳送請求太多 解決 減少傳送請求 3.網路問題 4.過大 前端解決方法 減少http請求,使用精靈圖,把公共部分存再sessionstorage中,請求過就不在請求 sessionstorage localstorage cookie的區別 cooki...

IE之頁面載入慢

場景是大屏頁面一張深色背景,裡面一些文字元素以及圖表展示.結果在ie下發現載入異常緩慢,還有部分人員反饋頁面卡死.預設處理邏輯是,imageio讀取原圖,轉成byte,base64編碼後,放到dom裡.這樣越大,後台轉的byte陣列越大也越卡,那麼改進思路自然是壓縮,以及去除imageio讀取.使用...