瀏覽器滾動條控制

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)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章