Unable to scroll down the web page using the Robot Framework

35,561

Solution 1

Your scrolling code looks ok. However, I don't think scrolling is your problem. Element visibility is ok even if it is scrolled away from screen. Try this code for example. At least on Chrome page scrolls back up at Input Text keyword

*** Settings ***
Library         Selenium2Library

*** Test Cases ***
Scroll
    Open Browser   http://www.stackoverflow.com/    Chrome
    Execute JavaScript    window.scrollTo(0, document.body.scrollHeight)
    Input Text    //*[@id="search"]/input    robot framework
    Sleep    3
    Close All Browsers

I think you may have an incorrect locator for your edit box.

Solution 2

I fixed the issue with Execute JavaScript ${element}.scrollby(0,200). It will not work in every case. If the element is not in a viewport it will not scroll.

There's an efficient way to scroll the page to get the element to a view port.

If we are using Execute JavaScript Window.scroll(x,y), we need to specify a horizontal and vertical position, x,y, which is difficult to find and may not be accurate.

Instead we can use the following line of code, Execute JavaScript window.document.evaluate("//xpathlocation", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.scrollIntoView(true);

The above code will scroll the window and get the element specified in /xpathlocation to the view port.

Share:
35,561
Jagadeesh M
Author by

Jagadeesh M

Updated on July 05, 2022

Comments

  • Jagadeesh M
    Jagadeesh M almost 2 years

    I am using Selenium 2 and Robot Framework to automate our application. I have used the below JavaScript code to scroll down the page but am not able to scroll.

    I want to enter text inside the text box after scrolling down, but I am receiving the exception:

    Element not visible

    The text box is partially visible on the screen by default, if we manually scroll down than its completely visible, But selenium robot framework unable to scroll down.

    I have tried:

    Execute JavaScript    window.scrollTo(0,200)
    
    Execute JavaScript    window.scrollBy(0,200)
    
    Execute JavaScript    window.scrollTo(0, document.body.scrollHeight)
    

    How can I fix this?