不同的滚动选项之间有什么区别?

shl*_*omi 8 javascript selenium js-scrollintoview js-scrollby js-scrollto

我尝试了几种向表格添加滚动的方法,但只有一种方法可以正常工作。它们之间有什么不同?

第一的:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();", Element);
Run Code Online (Sandbox Code Playgroud)

第二:

WebElement element1 = driver.findElement(By.id("scrolled_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element1);
Run Code Online (Sandbox Code Playgroud)

第三:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");
Run Code Online (Sandbox Code Playgroud)

第四:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
Run Code Online (Sandbox Code Playgroud)

Deb*_*anB 10

Element.scrollIntoView()

Element.scrollIntoView()方法将调用它的元素滚动到浏览器窗口的视口中

  • 句法:

    • element.scrollIntoView()
    • element.scrollIntoView(alignToTop) // 布尔参数
    • element.scrollIntoView(scrollIntoViewOptions) // 对象参数
  • 您的用例:

    • executeScript("arguments[0].scrollIntoView();", Element):这行代码会将元素滚动到浏览器窗口的可见区域。
    • executeScript("arguments[0].scrollIntoView(true);", element1):这行代码将滚动元素对齐到可滚动祖先的视口顶部。此选项对应于scrollIntoViewOptions: {block: "start", inline: "nearest"}. 基本上,这是默认值。
    • executeScript("arguments[0].scrollIntoView(false)", element1);:这行代码将滚动元素对齐到可滚动祖先的视口底部。此选项对应于scrollIntoViewOptions: {block: "end", inline: "nearest"}.

Window.scrollBy()

window.scrollBy()方法按给定量滚动当前窗口中的文档。

  • 句法:

    • window.scrollBy(x-coord, y-coord)
    • window.scrollBy(options)
  • 参数:

    • x-coord 是您要滚动的水平像素值。
    • y-coord 是您要滚动的垂直像素值。
    • optionsScrollToOptions字典。
  • 您的用例:

    • executeScript("window.scrollBy(0,1000)"):这行代码将滚动窗口文档下降0水平像素和1000您希望通过滚动垂直像素。

Window.scrollTo()

Window.scrollTo()方法滚动到文档中的一组特定坐标。

  • 句法:

    • window.scrollTo(x-coord, y-coord)
    • window.scrollTo(options)
  • 参数:

    • x-coord 是要在左上角显示的文档水平轴上的像素。
    • y-coord 是要在左上角显示的文档垂直轴上的像素。
    • optionsScrollToOptions字典。
  • 您的用例:

    • executeScript("window.scrollTo(0, document.body.scrollHeight)"):这行代码将滚动窗口的文件下来bottom页面。