16

How to scroll the webpage to the top of the page.

I know scrolling the page to the bottom is:

window.scrollTo(0,document.body.scrollHeight)

just like that is it possible to scroll the page to the top

alecxe
  • 441,113
  • 110
  • 1,021
  • 1,148
Pala Bhaskar
  • 291
  • 1
  • 2
  • 9

6 Answers6

27

To scroll to the top of the page, just scroll to the 0, 0:

window.scrollTo(0, 0);

Or, as an alternative option, you can scroll into view of the header element (or some other element on top):

WebElement element = driver.findElement(By.tagName("header"));

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].scrollIntoView();", element); 
Shivam Mishra
  • 1,613
  • 2
  • 10
  • 26
alecxe
  • 441,113
  • 110
  • 1,021
  • 1,148
  • 2
    where did you get the window instance? and for the second approach I'm getting: Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"header"} – White_King Feb 02 '21 at 09:32
5

Use action class, as some UI frameworks don't work well with JavaScript scrollTO

actions.sendKeys(keys.Home).build().perform();
actions.sendKeys(keys.END).build().perform();
David Buck
  • 3,594
  • 33
  • 29
  • 34
Frozen
  • 51
  • 1
  • 1
3

This solution also works correctly, I've checked it:

((JavascriptExecutor) driver)
    .executeScript("window.scrollTo(0, -document.body.scrollHeight)");
sɐunıɔןɐqɐp
  • 2,877
  • 15
  • 33
  • 38
outlaw1988
  • 41
  • 6
1

yes you can try as below

Way one - Scrolling to bottom of a page

driver.navigate().to(URL);
((JavascriptExecutor) driver)
.executeScript("window.scrollTo(0, document.body.scrollHeight)");

Way two - Scrolling to an element on a page

driver.navigate().to(URL);
WebElement element = driver.findElement(By.id("id"));
        ((JavascriptExecutor) driver).executeScript(
                "arguments[0].scrollIntoView();", element);

Way 3 -Scrolling by coordinates

 driver.navigate().to(URL);
    ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,500)");
eduliant
  • 2,690
  • 4
  • 22
  • 36
  • 2
    But I want to scroll the page to the top. Here just like (Way one - Scrolling to bottom of a page), I want to scroll the page to the up – Pala Bhaskar Apr 15 '16 at 14:23
1

To scroll to the top of the page

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

To scroll to the end of the page

((JavascriptExecutor) driver).executeScript("window.scrollTo(0,document.body.scrollHeight)");
alkakaushal
  • 104
  • 1
  • 5
1

simple way for the top :webDriver.FindElement(By.TagName("body")).SendKeys(Keys.Home); and for the bottom: webDriver.FindElement(By.TagName("body")).SendKeys(Keys.End);

sda2584541
  • 381
  • 5
  • 19