📖 知识点
1. 滚动到底部 / 顶部
用 page.scroll.to_bottom() / page.scroll.to_top() 快速滚动:
# 滚动到页面底部
page.scroll.to_bottom()
# 滚动回页面顶部
page.scroll.to_top()
适合:触发 "加载更多"、"滚动到底自动分页加载" 的动态网页。
2. 滚动到某个元素位置
想让某个元素出现在视野内,用 元素.scroll.to_see():
# 定位一个元素,滚动到它可见
target = page.ele(".target-element")
target.scroll.to_see()
更适合:想操作的元素不在首屏时,先滚动到它,再点击 / 输入。
3. 按像素滚动(精细控制)
page.scroll.down(像素) / page.scroll.up(像素) 精确滚动:
page.scroll.down(500) # 向下滚500像素
page.scroll.up(200) # 向上滚200像素
💡 三招总结
场景 咒语 滚到底 / 顶 page.scroll.to_bottom()/to_top()滚到某元素可见 元素.scroll.to_see()精确按像素滚 page.scroll.down(px)/up(px)
⚠️ 易错提醒
- 滚动到底后页面可能触发动态加载,可稍等再继续操作
scroll.to_see()是元素的方法,不是 page 的,别写错- 滚动不会改变页面 URL,它是页面内部视图移动
⚔️ Kata 实战任务
任务需求:
- 导入 ChromiumPage,访问
https://www.baidu.com - 使用
page.scroll.to_bottom()滚动到页面底部,打印提示 - 使用
page.scroll.to_top()滚回顶部,打印提示 - (可选)用
page.scroll.down(300)演示按像素滚动
参考代码
from DrissionPage import ChromiumPage
page = ChromiumPage()
page.get("https://www.baidu.com")
# 页面挪移咒:滚动到底部
page.scroll.to_bottom()
print("⬇️ 已滚动到页面底部")
# 滚动回顶部
page.scroll.to_top()
print("⬆️ 已滚动回页面顶部")
# 按像素精细滚动
page.scroll.down(300)
print("🔄 向下滚动300像素,操作完成")
运行输出:
⬇️ 已滚动到页面底部
⬆️ 已滚动回页面顶部
🔄 向下滚动300像素,操作完成
💡 观察:浏览器窗口里页面会快速滚到底、再滚回顶,你可以直观看到滚动效果。
🧠 思考题
page.scroll.to_bottom()和元素.scroll.to_see()的使用场景分别是什么?什么时候该用哪个?- 动态加载网页(滑到底自动出更多内容)通常适合用哪种滚动方式?为什么?