一些**在訪問時不會一次載入所有元素,需要下拉至底部後等待重新整理更多元素出來,利用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 ...