如何在 python 中使用 selenium webdriver 滚动网页?

新手上路,请多包涵

我目前正在使用 selenium webdriver 来解析 facebook 用户朋友页面并从 AJAX 脚本中提取所有 id。但我需要向下滚动以获取所有朋友。如何在 Selenium 中向下滚动。我正在使用python。

原文由 user2523364 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 779
1 个回答

您可以使用

driver.execute_script("window.scrollTo(0, Y)")

其中 Y 是高度(在全高清显示器上是 1080)。 (感谢@lukeis)

您也可以使用

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

滚动到 页面底部。

如果你想 滚动到一个无限加载的页面,比如社交网络、facebook 等(感谢@Cuong Tran)

 SCROLL_PAUSE_TIME = 0.5

# Get scroll height
last_height = driver.execute_script("return document.body.scrollHeight")

while True:
    # Scroll down to bottom
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

    # Wait to load page
    time.sleep(SCROLL_PAUSE_TIME)

    # Calculate new scroll height and compare with last scroll height
    new_height = driver.execute_script("return document.body.scrollHeight")
    if new_height == last_height:
        break
    last_height = new_height

另一种方法(感谢 Juanse)是,选择一个对象并

label.sendKeys(Keys.PAGE_DOWN);

原文由 OWADVL 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题