为什么 Selenium Webdriver 没有 "scroll down/up" 功能?

Why is there no "scroll down/up" functionality with Selenium Webdriver?

我见过的每个滚动实现都需要执行 Javascript(例如 scrollTopscrollTo),而不是 Selenium Webdriver 中的可用方法来执行此操作。由于 Webdriver 旨在执行用户可能在浏览器中进行的相同交互,为什么在任何地方都找不到它?

我知道使用 Webdriver 与 DOM 中的元素交互可以避免滚动元素,但是像 ReactVirtualized 这样的一些库被设计为只渲染 visible行,使自动化变得更加困难。

您是使用 Capybara(如您的问题已标记)还是直接 selenium-webdriver?

如果使用 Capybara,那么您需要 scroll_to 方法 - https://www.rubydoc.info/gems/capybara/Capybara/Node/Element#scroll_to-instance_method - 这是最近添加的。

如果您直接使用 selenium-webdriver,那是因为很长一段时间以来,WebDriver 规范的一些作者坚持认为滚动不是必需的。这种坚持在上一次 WebDriver 规范会议上发生了变化,但是滚动应该如何工作的细节实际上还没有被添加到规范中。