selenium模擬頁面向下滾動載入全部頁面

2022-09-02 09:15:08 字數 1772 閱讀 7452

一些**在訪問時不會一次載入所有元素,需要下拉至底部後等待重新整理更多元素出來,利用selenium執行js**滾動頁面,每次重新獲取頁面高度,直到頁面高度不再變化。

js='

return document.body.scrollheight;

'height=0

while

true:

new_height =driver.execute_script(js)

if new_height >height:

driver.execute_script(

'window.scrollto(0, document.body.scrollheight)')

height =new_height

time.sleep(5

)

else

:print("

滾動條已經處於頁面最下方!")

driver.execute_script(

'window.scrollto(0, 0)

')#頁面滾動到頂部

break

這是通用的做法,對於具體的**可以做一些針對性變化,比如,某**頁面初始載入比較慢,利用某個元素判斷是否已載入完成

判斷元素是否已載入

while total == ''

: time.sleep(1)

total=browser.find_element_by_id('

total

').text

然後開始迴圈下拉載入所有元素,利用元素屬性判斷是否已載入,

當全部載入完畢後,頁面底部會有提示,利用這個元素判斷是否已載入完畢

is_done=browser.find_element_by_id('

loading

').text

while is_done == ''

: browser.execute_script(

'window.scrollto(0, document.body.scrollheight)

')#一擼到底

is_ready=browser.find_element_by_id('

loading

').get_attribute('

class')

while is_ready == '

tc mt-10

':#判斷下拉頁面是否重新整理

time.sleep(1)

is_ready=browser.find_element_by_id('

loading

').get_attribute('

class')

is_done=browser.find_element_by_id('

loading

').text#當頁面底部提示出現,表示已經載入全部元素

if is_done != ''

:

break

print("

滾動條已經處於頁面最下方!

")

selenium模擬滑鼠滾動

target driver.find element by id id keypair driver.execute script arguments 0 scrollintoview target 拖動到可見的元素去 這個方法可以模擬滑鼠滾動到需要顯示的元素位置,使用場景 瀏覽器視窗小,頁面過大內...

Selenium 滾動頁面至元素可見

在自動化操作中,如果web頁面過長,而我們需要的元素並不在當前可視頁面中,那麼selenium就無法對其進行操作 此時,我們就需要像平時操作瀏覽器一樣來滾動頁面,使我們需要操作的物件可見!滾動頁面的方法 使用方式 示例 from selenium import webdriver import ti...

js 手機頁面向上以及向下滾屏

前言 開發手機頁面缺少不了就是滾動分頁,如果判斷距離大小去觸發 onscroll事件呢?下面用到3個js 函式 scrolltop clientheight scrollheight 準備 先利用這3個函式寫成自定義函式 取視窗滾動條高度 function getscrolltop else if ...