我尝试了几种向表添加滚动的方法,但是只有其中一种可以正常工作。它们之间有什么区别?
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()
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)")
Window.scrollTo()
Window.scrollTo()方法滚动到文档中的一组特定坐标。
window.scrollTo(x-coord, y-coord)
window.scrollTo(options)
executeScript("window.scrollTo(0, document.body.scrollHeight)")