[Web自动化] Selenium处理滚动条 📅 发布时间:2026/7/7 22:33:14 👁️ 浏览次数: 10.8 Selenium处理滚动条在Selenium中直接调整滚动条无论是横向还是纵向并不是直接支持的功能因为Selenium主要关注于网页的DOM元素交互而不是浏览器的具体UI元素如滚动条。但是你可以通过几种间接的方法来模拟滚动条的行为。在 Selenium 中处理滚动条无论是横向还是纵向都需要使用一些特定的方法来实现。以下是一些处理滚动条的常用方法纵向滚动条适用于整个页面只有一个纵向滚动条的情况。滚动到页面底部driver.execute_script(window.scrollTo(0,document.body.scrollHeight);)滚动到页面顶部driver.execute_script(window.scrollTo(0, 0);)滚动到页面的特定位置# 滚动到距离顶部 500px 的位置driver.execute_script(window.scrollTo(0, 500);)平滑滚动到页面底部需要使用window.scrollBy和setIntervaldriver.execute_script( window.scrollBy(0, document.body.scrollHeight); setInterval(function(){ window.scrollBy(0, window.innerHeight); }, 100); )滚动到页面中间scroll_heightdriver.execute_script(return document.body.scrollHeight;)driver.execute_script(fwindow.scrollTo(0,{scroll_height//2});)滚动到某个元素elementdriver.find_element_by_id(your-element-id)driver.execute_script(arguments[0].scrollIntoView();,element)# 或者平滑滚动driver.execute_script(arguments[0].scrollIntoView({ behavior: smooth });,element)横向滚动条适用于整个页面只有一个纵向滚动条的情况。滚动到页面最右侧driver.execute_script(window.scrollTo(document.body.scrollWidth, 0);)滚动到页面最左侧driver.execute_script(window.scrollTo(0, 0);)横向滚动到特定位置# 横向滚动到距离左侧 500px 的位置driver.execute_script(window.scrollTo(500, 0);)滚动到某个元素的右侧如果元素本身是可滚动的scrollable_elementdriver.find_element_by_id(your-scrollable-element-id)# 这通常需要知道元素内部可滚动区域的宽度# 假设你知道这个宽度或者你可以通过其他方式计算它scroll_width...# 这里需要获取或计算可滚动元素的宽度driver.execute_script(farguments[0].scrollLeft {scroll_width};,scrollable_element)处理页面上多个滚动条如果页面上存在多个滚动条例如在一个 iframe 或者一个具有 overflow 属性的 div 中你需要先切换到对应的 iframe 或滚动区域然后再执行滚动操作。切换到 iframedriver.switch_to.frame(iframe_id_or_name)# 执行滚动操作driver.switch_to.default_content()# 切换回主文档滚动到特定的位置# 方法一driver.execute_script(arguments[0].scrollTop arguments[1];,element,scroll_amount)# 方法二driver.execute_script(farguments[0].scrollTop croll_amount;,scrollable_container_1)其中element是具有滚动条的元素amount是你想要滚动到的位置。单位像素。3.滚动到顶部和底部# 定位到第一个可滚动容器scrollable_container_1driver.find_element_by_css_selector(.scrollable-container-class-1)# 计算底部距离max_scroll_heightdriver.execute_script(return arguments[0].scrollHeight;,scrollable_container_1)# 保存现在的滚动位置current_scroll_topdriver.execute_script(return arguments[0].scrollTop;,scrollable_container_1)# 滚动到底部driver.execute_script(farguments[0].scrollTop {max_scroll_height};,scrollable_container_1)# 滚动到顶部driver.execute_script(farguments[0].scrollTop 0;,scrollable_container_1)使用 Selenium 的 ActionChains 进行滚动fromselenium.webdriver.common.action_chainsimportActionChains actionsActionChains(driver)actions.move_by_offset(x_offset,y_offset).perform()# x_offset 和 y_offset 分别是横向和纵向的偏移量注意事项确保在尝试滚动之前可滚动容器已经完全加载并可用。你可能需要等待某个条件如元素的可视性、加载状态等来确保容器已准备好被滚动。滚动操作可能会触发页面上的JavaScript事件如滚动事件监听器这可能会影响你的测试结果或爬虫行为。确保你的测试或爬虫能够处理这些潜在的事件。如果容器内部的内容是动态加载的如无限滚动列表你可能需要在滚动到底部后等待新内容加载然后再继续滚动。这通常涉及到检查容器的高度是否发生了变化或者检查是否有新的元素被添加到容器中。
Excel批量处理身份证信息太麻烦?这个免费工具让我效率翻倍 作为一名HR,每次整理员工档案都让我头疼不已。上周公司新入职了80多人,领导要求我从身份证号中提取出生日期、性别、年龄等信息,建立完整的员工信息表。 看着Excel里密密麻麻的身份证号,我陷入了沉思… 传统方法有多折磨人? 以前处理这类需求,我通常有两种选择: 方法一:手动输… 2026/7/8 5:12:05
Transformer 深入浅出全解析 Transformer奠定了几乎所有现代大语言模型(Large Language Models, LLMs)的架构基础。以 BERT 为代表的双向编码器模型,仅使用 Transformer 的编码器部分,通过掩码语言建模(Masked Language Modeling)预训练… 2026/7/7 20:20:09
2026年全球 TOP20 编程语言全景解析:框架、难度、商业场景一网打尽 编程语言的流行度与行业需求紧密绑定,TIOBE 榜单作为全球权威的编程语言排名参考,其前 20 排名精准反映了当前技术生态的主流趋势。这份榜单中既有深耕多年的 “常青树”,也有借技术浪潮崛起的 “新势力”,且多数语言已成为商业开… 2026/7/7 15:46:08
大前端图表引擎拆解:TradingView 20+ 种图表渲染与 110+ 种形态绘图全栈工具链 💡 导读在量化投研前端开发或进行高阶时序数据分析时,图表库的几何渲染能力与交互效率直接决定了特征提取的精度。很多开发者和分析师在评估客户端选型时,最关心的是 TradingView(TV)究竟提供了哪些免费的图表类型和图… 2026/7/8 5:12:37
程序员量化交易实战 39:把失败检查转换成处理动作 第 37 篇已经能把失败检查项保存在 DailyRunResult.failed_checks 里。第 39 篇继续把失败变成动作。系统不应该只说“失败了”,还应该告诉操作者下一步该等、该补数据,还是该看健康报告。失败动作不是自动修复这里的动作不是直接帮你修复生产问题。第一… 2026/7/8 5:12:37
我家的佳能ts3380突然报错P07,电脑驱动提示5b00,到维修店维修,说要收180块,太贵没有维修,最终网友推荐了佳能V6.200原版清零软件,3分钟不到我自己修好了,直接省了180块,哈哈 蓝凑云:点这里下载 密码:00 百度云:点这里下载 备用:https://wwaxr.lanzouw.com/b0xxejeaj 密码:00 常见型号如下: G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G… 2026/7/8 5:12:37
通用图像恢复(AiOIR)综述:从 PromptIR 到 DiffUIR 的 5 种核心范式解析 通用图像恢复(AiOIR)前沿技术全景:从PromptIR到DiffUIR的五大范式演进与实践指南引言:从单任务专精到通用智能的范式跃迁当我们在手机相册中翻到一张因光线不足而噪点密布的老照片,或是行车记录仪捕捉到因车速过快变得… 2026/7/8 5:08:37
专业开源抖音TikTok下载工具:DouK-Downloader完整指南 专业开源抖音TikTok下载工具:DouK-Downloader完整指南 【免费下载链接】TikTokDownloader TikTok 发布/喜欢/合辑/直播/视频/图集/音乐;抖音发布/喜欢/收藏/收藏夹/视频/图集/实况/直播/音乐/合集/评论/账号/搜索/热榜数据采集工具/下载工具 项目地址:… 2026/7/8 5:04:36
多院区集团化云PACS系统源码,原生兼容国产软硬件环境 成熟稳定商用级云PACS完整源码,开箱即可部署上线,适配多院区集团化统一运营管理。整体采用纯Java技术栈搭建,原生兼容国产软硬件环境,提供全套完整源码,可直接交付落地,也支持深度定制二次开发。技术架构前… 2026/7/8 5:04:36
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58