一尘不染

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

selenium

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

第一:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();", Element);

第二:

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

第三:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");

第四:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

阅读 297

收藏
2020-06-26

共1个答案

一尘不染

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 是要滚动的垂直像素值。
    • options是一ScrollToOptions本字典。
    • 您的用例:

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


Window.scrollTo()

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

  • 句法:

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

    • x-coord 是要在左上方显示的文档水平轴上的像素。

    • y-coord 是要在左上方显示的文档垂直轴上的像素。
    • options是一ScrollToOptions本字典。
    • 您的用例:

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

2020-06-26