我想滚动到selenium元素,但我希望它位于页面顶部,而不仅仅是在页面上可见。
我如何才能使页面滚动,从而使滚动到的元素位于浏览器的顶部?
target = browser.find_element_by_css_selector(".answers-wrap") actions = ActionChains(browser) actions.move_to_element(target) actions.perform()
这是我们使用此页面的示例
垂直滚动网页使用1000像素 execute_script("window.scrollBy(0,1000)")
execute_script("window.scrollBy(0,1000)")
例
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是x轴上的数字,如果number为正数则向左移动,如果number为负数则向右移动.y-pixels是y- axis的数字,如果number为y则向下移动。正数,如果数字为负数,则向上移动。
execute_script("window.scrollBy(x-pixels,y-pixels)")
x-pixels是x轴上的数字,如果number为正数则向左移动,如果number为负数则向右移动.y-pixels是y- axis的数字,如果number为y则向下移动。正数,如果数字为负数,则向上移动。
向下滚动网页到目标元素。
execute_script("arguments[0].scrollIntoView();", element) “ arguments [0]”表示页面的第一个索引从0开始。
execute_script("arguments[0].scrollIntoView();", element)
“ arguments [0]”表示页面的第一个索引从0开始。
代码示例
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)