北海教網(wǎng)站建設(shè)全網(wǎng)營(yíng)銷整合營(yíng)銷
selenium支持幾種操作滾動(dòng)條的方法,主要介紹如下:
使用ActionChains 類模擬鼠標(biāo)滾輪操作
使用函數(shù)ActionChains.send_keys發(fā)送按鍵Keys.PAGE_DOWN往下滑動(dòng)頁面,發(fā)送按鍵Keys.PAGE_UP往上滑動(dòng)頁面。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
driver = webdriver.Safari()
# 打開一個(gè)網(wǎng)頁
driver.get("https://www.toutiao.com/")
driver.maximize_window()
sleep(6)
actions = webdriver.ActionChains(driver)
# 向下翻頁
actions.send_keys(Keys.PAGE_DOWN).perform()
# 向上翻頁
actions.send_keys(Keys.PAGE_UP).perform()
使用函數(shù)execute_script執(zhí)行js腳本滾動(dòng)頁面
可以使用如下三種方式
1)使用window.scrollBy(x, y)
driver.execute_script('window.scrollBy(0, 1000)')
參數(shù)解釋:
x:正數(shù)表示向右滑動(dòng)的像素值,負(fù)數(shù)表示向左滑動(dòng)的像素值
y:正數(shù)表示向下滑動(dòng)的像素值,負(fù)數(shù)表示向上滑動(dòng)的像素值
2)使用window.scrollTo(x, y)
driver.execute_script('window.scrollTo(0, 1000)')
參數(shù)解釋:
x:正數(shù)表示向右滑動(dòng)到某個(gè)像素值,負(fù)數(shù)表示向左滑動(dòng)到某個(gè)像素值
y:正數(shù)表示向下滑動(dòng)到某個(gè)像素值,負(fù)數(shù)表示向上滑動(dòng)到某個(gè)像素值
3)使用document.documentElement.scrollTop設(shè)置滾動(dòng)條高度
設(shè)置滾動(dòng)高度為某個(gè)像素值:
driver.execute_script("document.documentElement.scrollTop=1000")
測(cè)試代碼:使用上面3個(gè)?方式向下滾動(dòng),然后再向上滾動(dòng)(中間通過sleep等待幾秒方便觀察效果).
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
# 打開一個(gè)網(wǎng)頁
#driver.get("http://www.sahitest.com/demo/framesTest.htm")
driver.get("https://www.toutiao.com/")
driver.maximize_window()
sleep(6)
#向下滾動(dòng)
driver.execute_script('window.scrollBy(0, 100)')
sleep(1)
driver.execute_script('window.scrollTo(0, 200)')
sleep(1)
driver.execute_script("document.documentElement.scrollTop=300")
sleep(1)
#向上滾動(dòng)
driver.execute_script('window.scrollBy(0, -100)')
sleep(1)
driver.execute_script('window.scrollTo(0, -200)')
sleep(1)
driver.execute_script("document.documentElement.scrollTop=-300")
sleep(1)
使用函數(shù)execute_script執(zhí)行js腳本滾動(dòng)到特定元素
我們可以直接找到需要滾動(dòng)到的元素位置,并使用scrollIntoView方法滾到該位置。
示例代碼:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
driver.get("https://www.toutiao.com/")
driver.maximize_window()
sleep(6)
# 找到某個(gè)目標(biāo)元素
element = driver.find_element(By.XPATH,'//*[@id="root"]/div/div[5]/div[2]/div[6]/a[15]')
# 滾動(dòng)到目標(biāo)元素
driver.execute_script("arguments[0].scrollIntoView();", element)
共勉: 東漢·班固《漢書·枚乘傳》:“泰山之管穿石,單極之綆斷干。水非石之鉆,索非木之鋸,漸靡使之然也。”
-----指水滴不斷地滴,可以滴穿石頭;
-----比喻堅(jiān)持不懈,集細(xì)微的力量也能成就難能的功勞。
----感謝讀者的閱讀和學(xué)習(xí),謝謝大家。