我尝试了几种向表添加滚动的方法,但是只有其中一种可以正常工作。它们之间有什么区别?
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)");
Element.scrollIntoView()方法将调用该元素的元素滚动到浏览器窗口的视口中。
句法:
element.scrollIntoView()
element.scrollIntoView(alignToTop)
element.scrollIntoView(scrollIntoViewOptions)
您的用例:
executeScript("arguments[0].scrollIntoView();", Element):这行代码会将元素滚动到浏览器窗口的可见区域。
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(x-coord, y-coord)
window.scrollBy(options)
参数:
x-coord 是要滚动的水平像素值。
x-coord
y-coord
options
ScrollToOptions
executeScript("window.scrollBy(0,1000)"):这行代码将滚动窗口文档 下降 的 0 水平像素和 1000 您希望通过滚动垂直像素。
executeScript("window.scrollBy(0,1000)")
0
1000
Window.scrollTo()方法滚动到文档中的一组特定坐标。
window.scrollTo(x-coord, y-coord)
window.scrollTo(options)
x-coord 是要在左上方显示的文档水平轴上的像素。
executeScript("window.scrollTo(0, document.body.scrollHeight)"):这行代码将滚动窗口的文件 下来 的 bottom 页面。
executeScript("window.scrollTo(0, document.body.scrollHeight)")
bottom