selenium自動化JS滾動條操作及鍵盤操作


一、滾動條

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')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM