Selenium - 滚动条操作

移动到底部/顶部#

复制代码
import time

from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(time_to_wait=10)

driver.get("https://www.cnblogs.com/a438842265")

# 获取当前的窗口对象
element = driver.find_element_by_tag_name("body")
time.sleep(3)

# 从顶部下拉到底部

driver.execute_script("arguments[0].scrollIntoView(false);",element)  # 默认为true
time.sleep(3)
# driver.execute_script("window.scrollTo(0,document.body.scollHeight)")  # 使用window对象

# 从底部拉到顶部
driver.execute_script("arguments[0].scrollIntoView(true);",element)

time.sleep(3)
driver.quit()
复制代码

  

相对移动#

复制代码
# import time
#
# from selenium import webdriver
#
# driver = webdriver.Chrome()
# driver.implicitly_wait(time_to_wait=10)
#
# driver.get("https://www.cnblogs.com/a438842265")
#
# # 获取当前的窗口对象
# element = driver.find_element_by_tag_name("body")
# time.sleep(3)
#
# # 从顶部下拉到底部
#
# driver.execute_script("arguments[0].scrollIntoView(false);",element)  # 默认为true
# time.sleep(3)
# # driver.execute_script("window.scrollTo(0,document.body.scollHeight)")  # 使用window对象
#
# # 从底部拉到顶部
# driver.execute_script("arguments[0].scrollIntoView(true);",element)
#
# time.sleep(3)
# driver.quit()

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(time_to_wait=10)

driver.get("https://www.cnblogs.com/a438842265")

time.sleep(3)
driver.execute_script("window.scrollBy(0, 700)")  # 相对移动,从当前位置移动700像素
time.sleep(3)
driver.execute_script("window.scrollBy(0, 700)")  # 相对移动,从当前位置移动700像素,即 上次移动的700 + 本次的700 = 1400像素

time.sleep(3)
driver.quit()
复制代码

绝对移动#

复制代码
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(time_to_wait=10)

driver.get("https://www.cnblogs.com/a438842265")


time.sleep(3)
driver.execute_script("window.scrollTo(0, 2200)")  # 绝对移动,直接移动到2200像素位置
time.sleep(3)
driver.execute_script("window.scrollTo(0, 200)")  # 绝对移动,从上次的2200像素移动到200像素位置

time.sleep(3)
driver.quit()
复制代码

 

  

posted @   流年中渲染了微笑  阅读(122)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2020-01-18 vue 操作列的自定义
点击右上角即可分享
微信分享提示
CONTENTS