2

I am trying to use the scroll bar in IE to scroll down the page. I am using

self.driver.execute_script("window.scrollTo(0, 10000);")

When i run my test and it gets to the page it does not scroll. No error is shown, the page just does not scroll. I can scroll the scroll bar page manually. My Selenium Python script will not scroll it.

My code snippet to scroll is:

def scroll_up_and_down_using_the_scrollbar(self): # Using the scrollbar on the Data Previews view page scroll up and down the page
    #self.driver.execute_script("window.scrollTo(0, 10)")
    # scroll down the page iteratively with a delay
    for _ in xrange(0, 10 + 1):
        self.driver.execute_script("window.scrollTo(0, 10000);")
        time.sleep(2)

If i use Firefox and inspect the scroll bar I can see some HTML for it. Do i need to get the element for the scroll bar before I can use the scroll bar?

The HTML is:

<div style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px;">
<div style="position: absolute; z-index: -32767; top: -20ex; width: 10em; height: 10ex; visibility: hidden;" aria-hidden="true"/>
<div style="position: absolute; overflow: hidden; top: 16px; right: 0px; bottom: 16px; width: 16px;">
    <div class="GJPPK2LBI" tabindex="0" style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px;">
        <input type="text" tabindex="-1" role="presentation" style="opacity: 0; height: 1px; width: 1px; z-index: -1; overflow: hidden; position: absolute;"/>
            <img class="GJPPK2LBH" border="0" style="width: 16px; height: 11px; background: transparent url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAABNklEQVR42o3SvU/CQBjHcf4N/klXXTRu4mIiTjroxgh9iSaUggP2JTHVFgYbaBls2rJIWjoh1J/PXUqFBIKXfPIkl963TXqVSrFOr25xXKsfxJ67uGugsrlOLm9QrYI2gVazyQmCUBAhiCJEIkkSkSHLMh6k3l/k6KzGDzPttsIpioJOp1NQoaoqut21LlrP5u5Av9/nNE3jdJ3ROdMwYJgGTNPE44u1O2BZFqw3C7b9Dtux4ThOaTAYcEOyFTiv35cB98OF67oYjcYYE29c8Dziw/fJZLIduG5IZeAzCBCQKAwRRiGiKCIxn/F0imlMaO4NzGYz8oUkSZCSJGUzRZqmmM/nJEOWZfsDi8WC+14uudWK8LlCnjM58p8cT9pGgP3T9T347+q9DrcvE9tgn3UIe/Pm4V+cw+BxAioP1AAAAABJRU5ErkJggg==") no-repeat scroll 0px 0px; top: 0px;" src="http://justin-pc.infoshare.local:8080/clearcore501/ClearCore/clear.cache.gif" onload="this.__gwtLastUnhandledEvent="load";"/>
    </div>
</div>

My TestCase to call the scroll bar method:

class DataPreviewsPage_TestCase(BaseTestCase):

def test_a3_view_preview_crminvalid_odbc_and_test_scrollbar_up_and_down(self):
    print "*** Test view_preview_crminvalid_odbc_and_test_scrollbar_up_and_down ***"
    tool_bar = ToolbarPage(self.driver)
    time.sleep(1)
    data_previews_page = tool_bar.clickDataPreviews()
    time.sleep(2)
    data_previews_view_page = data_previews_page.click_view_link(Globals.datapreview_crminvalid_odbc_name)
    time.sleep(10)
    data_previews_view_page.scroll_up_and_down_using_the_scrollbar()

How can i click the scroll bar to scroll down the page in Selenium Python?

Thanks, Riaz

1 Answer 1

1

Not exactly answering why scrollTo() is not working in your case, but sharing what helped me to scroll up and down in different browsers.

To scroll down, locate the footer element (or some element at the bottom of the page), and scroll into it's view using scrollIntoView():

footer = driver.find_element_by_tag_name("footer")
driver.execute_script("arguments[0].scrollIntoView()", footer);
Sign up to request clarification or add additional context in comments.

2 Comments

I have spoken with the dev, she said the scroll bar is custom code they have made. That is why window.scrollTo won't work. It is not the scroll bar provided by the browser. She said I can use your answer for the Reports page of our software.
Thank you for your provided answer, I can use this for the reports page of our application.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.