一、滾動條
1、首先找到元素,找元素就不寫了,通過定位方式找就好了
2、js自動滾動
先滾動到可視區域后
參數一、 javacript 腳本, 參數二、傳給 js 腳本的參數
arguments 是列表, 只傳遞了一個值【0】
js 腳本用 arguments 接受外部的參數
js 腳本中用 scrollIntoView() 自動滾動到可視區域
driver.execute_script("arguments[0].scrollIntoView()", ele)
scrollIntoView() 默認與頁面頂部對齊
scrollIntoView(false) 頁面底部對齊
1、直接滾動到頁面底部
driver.execute_script("window.scrollTO(0, document.body.scrollHeight)")
2、直接滾動到頁面頂部
driver.execute_script("window.scrollTo(document.body.scrollHeight, 0)")
3、移動到元素element對象的“底端”與當前窗口的“底部”對齊
driver.execute_script("arguments[0].scrolllntoView(false);", element)
4、移動到元素element對象的“頂端”與當前窗口的“頂部”對齊
driver.execute_script("arguments[0].scrolllntoView();", element)
這個是找百度客服電話,不適合電商之類的,
from selenium import webdriver import time from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By """ 滾動的目的:將你要操作的元素,滾動到可視區域后,再操作 由js實現, """ # 鍵盤操作 from selenium.webdriver.common.keys import Keys option = webdriver.ChromeOptions() option.add_argument('disable-infobars') driver = webdriver.Chrome(chrome_options=option) driver.get("https://www.baidu.com/") driver.maximize_window() # 最大化瀏覽器 # Keys.ENTER 模擬回車 driver.find_element_by_id('kw').send_keys("百度", Keys.ENTER) # 等待搜索結果出現 loc = (By.XPATH, '//a[text()="客服電話"]') WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc)) # 找到要滾動的元素 ele = driver.find_element(*loc) # 先滾動到可是區域后, # 參數1、JavaScript腳本 參數2、傳給JS腳本 # JS腳本中,用 arguments 來接收外部的參數 # js腳本中,用 scrollIntoView() 自動滾動到可視區域 # arguments 是列表,外部傳遞的列表, 只傳遞了一個值【0】 driver.execute_script('arguments[0].scrollIntoView();', ele) # scrollIntoView() 默認與頁面頂部對齊 # scrollIntoView(false) 頁面底部對齊 # 再去點擊 time.sleep(2) driver.find_element(*loc).click() """ 直接滾動到頁面底部 driver.execute_script("window.scrollTO(0, document.body.scrollHeight)") 直接滾動到頁面頂部 driver.execute_script("window.scrollTo(document.body.scrollHeight, 0)") """ driver.quit()
二、鍵盤操作
導入鍵盤操作庫:Keya ,里面有各種鍵盤的操作,可以看一下它的源碼
from selenium import webdriver import time# 鍵盤操作 from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get("https://www.baidu.com/") driver.maximize_window() # 最大化瀏覽器 # Keys.ENTER 模擬回車 driver.find_element_by_id('kw').send_keys("百度", Keys.ENTER) # Keys.CONTROL, 'c' 模擬 Ctrl+c 操作 driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'c')