python+selenium 滚动条/内嵌滚动条循环下滑,判断是否滑到最底部

1.浏览器自带外边的滚动条:思路就是用scrollBy一直下拉滚动条,然后scrollTop会一直变化,当scrollTop不变时,说明就到底了。跳出循环即可。

代码:

import time
from selenium import webdriver
 
driver =webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com') 
driver.find_element_by_id('kw').send_keys('python滚动条的高度')
time.sleep(1)
driver.find_element_by_id('su').click()
time.sleep(2)
#定义一个初始值
temp_height=0
 
while True:
    #循环将滚动条下拉
    driver.execute_script("window.scrollBy(0,300)")
    #sleep一下让滚动条反应一下
    time.sleep(2)
    #获取当前滚动条距离顶部的距离
    check_height = driver.execute_script("return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
    #如果两者相等说明到底了
    if check_height==temp_height:
        break
    temp_height=check_height
    print(check_height)
driver.quit()

运行结果:

300
600
900
1199

在这里插入图片描述
2.内嵌滚动条,循环下滑到最底部
代码:
内嵌滚动条的demo.html的代码在https://blog.csdn.net/zhaoweiya/article/details/107162825

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('file:///C:/Users/18210/Desktop/demo.html')
# 定义一个初始值
temp_height = 0
x=20
y=20
while True:
    js1 = "var q=document.getElementsByClassName('scroll')[0].scrollTop={}".format(x)
    driver.execute_script(js1)
    time.sleep(2)
    x+=y
    check_height = driver.execute_script(
        "return document.getElementsByClassName('scroll')[0].scrollTop;")
    if check_height == temp_height:
        break
    temp_height = check_height
    print(check_height)
driver.quit()

运行结果:

20
40
60
80
85

猜你喜欢

转载自blog.csdn.net/zhaoweiya/article/details/108996126