鼠标操作练习 · 滚动

滚动 scroll_to_element — ActionChains.scroll_to_element() 让目标进入视口

练习 · 滚动 scroll_to_element()

左击 右击 双击 移动 按住 释放 拖拽 滚动

练习 8 · 滚动 scroll()

📋 练习要求 · 滚动 scroll()
概念滚动将元素滚到可视区域内,Selenium 4.2+ 提供原生 ActionChains 滚动 API
Selenium APIActionChains(driver).scroll_to_element(el).perform() 或 JS 注入
练习要点
  • scroll_to_element 自动将元素滚到视口顶部对齐
  • 旧版本 Selenium 用 driver.execute_script("el.scrollIntoView()") 兜底
  • 滚动后用 element.is_displayed() 确认元素可见
# 快速参考
from selenium.webdriver.common.action_chains import ActionChains
target = driver.find_element(By.ID, "p8_target")
# 方式 A:Selenium 4.2+ 原生
ActionChains(driver).scroll_to_element(target).perform()
# 方式 B:兼容所有版本
driver.execute_script("arguments[0].scrollIntoView()", target)
📋 本节练习清单
  • ✅ 练习目标:滚到 p8_target 元素可见,断言结果区更新
8 练习目标:滚到列表内目标元素,验证可见

操作步骤:
① 定位长列表内的目标元素 p8_target;
② 调用 ActionChains(driver).scroll_to_element(target).perform() 滚动,或用 execute_script("el.scrollIntoView()");
③ 断言 p8_result 包含「滚到目标」或 target.is_displayed() 为 True。

滚动交互演示区
📜 长列表(共 15 条,目标隐藏在中间)
条目 1
条目 2
条目 3
条目 4
条目 5
条目 6
条目 7
🎯 目标元素
条目 9
条目 10
条目 11
条目 12
条目 13
条目 14
条目 15
等待滚动操作...
💬 操作日志(滚动实时记录)
// 点击左侧「滚到目标」按钮...

💡 提示:scroll_to_element(target) 让目标元素滚动到视口“底部可见”位置;scroll_by_amount(dx, dy) 则按指定偏移滚动。

查看参考答案(Python Selenium)
# 练习 8 参考答案 · 滚动
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
import time

driver.get("https://autotest-505.pages.dev/mouse_op_practice.html")
target = driver.find_element(By.ID, "p8_target")
actions = ActionChains(driver)

# 方式 A:Selenium 4.2+ 原生 API
actions.scroll_to_element(target).perform()

# 方式 B:JS 注入(所有版本通用)
driver.execute_script("arguments[0].scrollIntoView()", target)

assert "滚到目标" in driver.find_element(By.ID, "p8_result").text

关于我们

Python 自动化测试学习平台是一个面向软件测试工程师、开发人员及在校学生的交互式在线学习平台,专注于 Selenium WebDriver 与 Python unittest 自动化测试技能的教学与实践。

我们以"理论 + 实战 + 可交互演示"为核心特色,将八种常规元素定位和Javascript定位、元素操作、自动化测试工具、单元测试、测试模型等知识体系拆分为模块化课程,每个模块都配有可点击、可输入、可运行的模拟练习页面。

平台致力于降低自动化测试的入门门槛,让学习者从"看懂代码"到"动手实操",逐步掌握企业级自动化测试框架的设计与落地能力。

联系方式

📧邮箱:lq@selenium-auto-test.com

📞电话:0755-12345678

📍地址:深圳

💬微信公众号:Selenium自动化测试

🐙GitHub:github.com/selenium-auto-test

免责声明

1. 本平台所有示例代码、演示页面及教程内容均仅供学习交流使用,不构成任何商业推广或技术服务承诺。

2. 平台中的 Selenium API 描述、Python 语法说明均以官方文档为准,如有版本差异请以对应官方文档为准。

3. 学习者在实际项目中应用平台所学内容时,应结合自身项目环境进行充分测试,本平台不对因直接使用示例代码而产生的任何直接或间接损失承担责任。

4. 本平台所引用的第三方库(Selenium、ChromeDriver、unittest 等)版权归其各自作者及维护者所有。

5. 如涉及版权问题或内容建议,请及时通过联系方式与我们沟通,我们将第一时间处理。