昨天在程式碼中默默的出現 ActionChains
的使用。
原先想要使用 element.send_keys("Selenium Python")
,輸入文本並觸發事件,想要輸入"Selenium Python",並執行鍵盤輸入操作,將字符串 "Selenium Python" 輸入到該元素中。
已開始以為又是時間太快,但我下時間後,還是沒有效果出來。
所以嘗試找尋其他方式來達成同樣效果。
💥 特別補!後來發現好像是時間下錯位置 time.sleep(3) ,下面就示範原來的以及同步介紹 ActionChains
原來的成功了
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.keys import Keys
# 初始化Chrome WebDriver
driver = webdriver.Chrome()
#打開網頁:使用get方法打開你要爬取的網頁。
driver.get("https://www.google.com/")
#進行操作:
#定位搜尋框
element = driver.find_element(By.NAME, "q")
#傳入字串
element.send_keys("Selenium Python")
time.sleep(3)
element.send_keys(Keys.RETURN)
# element.send_keys("Selenium Python")
time.sleep(3)
#清理和關閉:在完成操作後,確保關閉Chrome瀏覽器,以釋放資源。
driver.quit()
其中 模擬鍵盤輸入的 send_keys
from selenium.webdriver.common.keys import Keys
一種在網頁自動化測試中用於執行一系列互動動作的工具。
這些動作可以包括點擊、滑鼠懸停、拖曳、鍵盤操作、雙擊、滾動等等。
ActionChains 允許你模擬用戶在瀏覽網頁時的各種互動行為,以便測試網站功能、自動化瀏覽器任務,或執行其他需要模擬用戶操作的任務。
也可以完成多種動作,如下(也就是我改寫的成果,還有新增其他動作)
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.google.com/")
#進行操作:#定位搜尋框
element = driver.find_element(By.CLASS_NAME, "SDkEP")
# 傳入字串
action = ActionChains(driver)
action.send_keys_to_element(element, "Selenium Python")
# action.send_keys("Selenium Python")(上下兩行都可以)
action.send_keys(Keys.RETURN)
action.perform()
time.sleep(2)
driver.quit()
一些常見的 ActionChains
動作示例:
context_click(element):模擬右鍵單擊指定元素,通常用於觸發上下文菜單。
double_click(element):模擬雙擊指定元素,就像用戶兩次單擊一樣。
drag_and_drop(source, target):模擬拖拽操作,將源元素拖拽到目標元素上。
key_down(key) 和 key_up(key):模擬按下和釋放指定的鍵,可以用於執行特殊的鍵盤操作。
move_by_offset(x, y):將鼠標移到當前位置的相對偏移位置 (x, y)。
pause(seconds):暫停一段時間,通常用於等待元素加載或動畫完成。
release():釋放滑鼠左鍵,通常用於模擬拖拽操作的放置動作。
send_keys(*keys):模擬按下和釋放指定的一系列鍵,可用於執行複雜的鍵盤操作。
move_to_element(element):將鼠標移到指定元素的中心點。
click_and_hold(element):模擬按住鼠標左鍵,通常與 move_to_element 一起使用,實現拖拽操作。
好多動作再來玩看看,又是廉價(連假)期間產出的文,好水