1.常用方法
# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.163.com')
# 使用JavaScript控制窗口滾動到指定位置
# 滾動條往右滾動100,往下滾動400,第一個參數是水平滾動,第二個參數是錘子滾動
driver.execute_script("window.scrollTo(100, 400);")
# 滾動條滾動到底部
driver.execute_script("window.scrollTo(0, 10000);")
# driver.execute_script("var q=document.documentElement.scrollTop=10000") # 只垂直滾動
# 滾動條置頂
driver.execute_script("window.scrollTo(0,0);")
2.滾動至頂部對其方法:
# coding:utf-8
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('python')
time.sleep(3)
a = driver.find_element_by_partial_link_text('查看更多>>')
# 移動到元素的頂部與當前窗口的頂部對齊
driver.execute_script("arguments[0].scrollIntoView();", a)
# driver.execute_script("arguments[0].scrollIntoView(true);", a)
a.click()
time.sleep(0.5)
"arguments[0].scrollIntoView();" 和 "arguments[0].scrollIntoView(true);" 會把元素頂部與瀏覽器窗口的頂部對齊,可能會出現滾動後恰好被遮擋,無法操作。
元素剛好被擋住,此時click(),報錯如下:
selenium.common.exceptions.WebDriverException: Message: unknown error: Element <a target="_blank" href="http://www.baidu.com/link?url=p_iwAc1CMvrFuA-mbD556x1kpL7qiw2orT6fWrTey-ojsR6DpwWKxIeq0k5ZBplU">...</a> is not clickable at point (877, 7). Other element would receive the click: <div class="s_form">...</div>
2.滾動至底部對其方法:
# 移動到元素的底部與當前窗口的底部對齊
driver.execute_script("arguments[0].scrollIntoView(false);", a)