selenium 对滚动条的各种操作
1. 滚动至底部
将页面滚动到底部,通常用于加载更多内容的页面。或者使底部的下一页可点击
driver.execute_script("document.documentElement.scrollTop=10000")
2. 滚动至顶部
将页面滚动到顶部,通常用于返回页面初始位置。
driver.execute_script("document.documentElement.scrollTop=0")
3. 滚动指定距离
滚动指定的距离,例如滚动 100 像素。
driver.execute_script(f"window.scrollBy(0, 100);")
4. 滚动到目标元素可见
将页面滚动到目标元素的位置,使其可见。
# 目标元素
next_page = driver.find_element(By.XPATH, "//a[@class='btn soupager__btn']")
# 滚动到目标元素可见位置
driver.execute_script("arguments[0].scrollIntoView(true);", next_page)
5. 滚动到页面的特定位置
有时你可能需要将页面滚动到特定的坐标位置。
# 滚动到 (x, y) 位置
driver.execute_script("window.scrollTo(0, 500);")
6. 平滑滚动
使用平滑滚动效果,使滚动更加自然。
# 平滑滚动到页面底部
driver.execute_script("window.scrollTo({ top: 10000, behavior: 'smooth' });")
# 平滑滚动到指定位置
driver.execute_script("window.scrollTo({ top: 500, behavior: 'smooth' });")
# 平滑滚动到目标元素
driver.execute_script("arguments[0].scrollIntoView({ behavior: 'smooth' });", next_page)
7. 获取当前滚动位置
有时你需要知道当前页面的滚动位置。
# 获取当前滚动位置
current_scroll_position = driver.execute_script("return window.pageYOffset;")
print(f"当前滚动位置: {current_scroll_position}")
8. 滚动到页面的某个百分比
有时你可能需要将页面滚动到某个百分比的位置。
# 滚动到页面的 50% 位置
driver.execute_script("window.scrollTo(0, document.body.scrollHeight * 0.5);")
示例
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def scroll_operations():
driver = webdriver.Chrome()
driver.get('https://example.com') # 替换为你需要的 URL
# 滚动到页面底部
driver.execute_script("document.documentElement.scrollTop=10000")
# 滚动到页面顶部
driver.execute_script("document.documentElement.scrollTop=0")
# 滚动 100 像素
driver.execute_script("window.scrollBy(0, 100);")
# 滚动到目标元素可见
next_page = driver.find_element(By.XPATH, "//a[@class='btn soupager__btn']")
driver.execute_script("arguments[0].scrollIntoView(true);", next_page)
# 平滑滚动到页面底部
driver.execute_script("window.scrollTo({ top: 10000, behavior: 'smooth' });")
# 获取当前滚动位置
current_scroll_position = driver.execute_script("return window.pageYOffset;")
print(f"当前滚动位置: {current_scroll_position}")
# 滚动到页面的 50% 位置
driver.execute_script("window.scrollTo(0, document.body.scrollHeight * 0.5);")
driver.quit()
# 调用函数
scroll_operations()
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 行迹小栈
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果