为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

陪伴而非守候 2019-12-06 15:30:22

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


第一:

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)");


查看完整描述

2 回答

?
慕桂英546537

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页面。


查看完整回答
反对 回复 2019-12-06
?
汪汪一只猫

我将在每个示例下面放置相关文档,以便您自己引用它,并给出我一些拙见:


.scrollIntoView()和.scrollIntoView(true)


https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollIntoView


不应有任何区别,因为文档指出默认情况下,.scrollIntoView()实际上其默认值为true。


.scrollBy()


https://www.w3schools.com/jsref/met_win_scrollby.asp


将文档滚动指定的像素。意思是如果您的左上视口位于(10,10),则执行某操作.scrollby(5,6)意味着该视口在移动后将位于的像素坐标处(15,16)。


.scrollToView()


https://developer.mozilla.org/zh-CN/docs/Web/API/Window/scrollTo


按照建议进行操作-即滚动到您提供的坐标。这是为了滚动不同的(即,上述的例子)。这意味着.scrollTo(1,1)将滚动文档,以使您的左上视口现在处于像素坐标(1,1),而不管以前是什么。


关于总滚动选项是什么的单独问题-好的,还有window.scroll(),但是根据下面的SO文章,以下内容应该没有什么区别scrollTo():


JavaScript window.scroll与window.scrollTo?


查看完整回答
反对 回复 2019-12-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信