滾動條操作:當待操作的元素在頁面可是區域外時,要將待操作的元素滾動到可視區域當中
步驟:
1.先找要將要操作的元素
element = driver.find_element_by_xxxx("XXXX")
2.再將元素滑動到可視區域;通過執行javaScript語句實現
driver.execute_script("arguments[0].scrollIntoView();",element)
#另外一種方式,scrollIntoViewIfneeded
3.再操作元素
element.XXX()
以下是移動的四種方式
1.移動到元素element對象的“底端”與當前窗口的“底部”對齊 driver.execute_script("arguments[0].scrollIntoView(false);",element) |
2.移動到元素element對象的“頂端”與當前窗口的“頂部”對齊 driver.execute_script("arguments[0].scrollIntoView();",element) |
3.移動到頁面底部 driver.execute_script("window.scrollTo(0,document.body.scrollHeight)") |
4.移動到頁面頂部 driver.execute_script("window.scrollTo(0,document.body.scrollHeight,0)") |
代碼:百度首頁輸入內容,跳轉頁面;滑動到該頁面底部,點擊【下一頁】
from selenium.webdriver.common.keys import Keys from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By import time # 百度首頁輸入內容檢索,跳轉檢索后頁面,划動到該頁面最下面的‘下一頁’ driver = webdriver.Chrome() driver.get('https://www.baidu.com/') WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//input[@id="kw"]'))) driver.find_element_by_xpath('//input[@id="kw"]').send_keys('許嵩',Keys.ENTER) #輸入文本並回車操作 time.sleep(2) # 定位元素‘下一頁’ ele = driver.find_element_by_xpath('//a[@class="n"]') #根據‘下一頁元素’,划動到頁面最下面 driver.execute_script("arguments[0].scrollIntoView();",ele) time.sleep(2) # 點擊【下一頁】 ele.click()