How to Scroll web page to the target element using selenium

后端 未结 1 1629
渐次进展
渐次进展 2020-12-12 04:37

I want to scroll to an element in selenium, but I want it to be at the top of the page, not just visible on the page.

How can I make it so that the page scrolls suc

相关标签:
1条回答
  • 2020-12-12 05:09

    Here is example using this page we are on

    To scroll the web page by 1000 pixel vertical use execute_script("window.scrollBy(0,1000)")

    Example

    import time
    from selenium import webdriver
    
    chrome_browser = webdriver.Chrome()
    chrome_browser.get('https://stackoverflow.com/questions/61071131/'
                       'scroll-in-selenium-driver-to-make-element-at-top-of-the-page')
    time.sleep(4)
    ''' execute_script("window.scrollBy(x-pixels,y-pixels)")
        scroll down the page by  1000 pixel vertical
    '''
    chrome_browser.execute_script("window.scrollBy(0,1000)")
    

    execute_script("window.scrollBy(x-pixels,y-pixels)")

    x-pixels is the number at x-axis, it moves to the left if number is positive and it move to the right if number is negative .y-pixels is the number at y-axis, it moves to the down if number is positive and it move to the up if number is in negative .


    To scroll down the web page to the target element.

    execute_script("arguments[0].scrollIntoView();", element)

    "arguments[0]" means first index of page starting at 0.

    Code example

    import time
    from selenium import webdriver
    
    chrome_browser = webdriver.Chrome()
    chrome_browser.get('https://stackoverflow.com/questions/61071131/'
                       'scroll-in-selenium-driver-to-make-element-at-top-of-the-page')
    time.sleep(4)
    
    element = chrome_browser.find_element_by_css_selector(
        "#footer > div > nav > div:nth-child(1) > h5 > a")
    
    chrome_browser.execute_script("arguments[0].scrollIntoView();", element)
    

    0 讨论(0)
提交回复
热议问题