在selenium中,有些操作是需要靠鼠標來實現的,如鼠標的左鍵單、雙擊,右鍵單、雙擊、鼠標的懸停、拖拽等等。
在python中,若想實現鼠標操作,需要導入action_chanins模塊:from selenium.webdriver.common import action_chains
導入action_chains模塊后,需要示例話一個ActionChains對象,並將瀏覽器驅動實例出任:action = ActionChains(driver)
鼠標操作最后都需要調用perform()來執行動作。
一、鼠標左鍵單擊和右鍵單擊
1、鼠標的左鍵單擊:ActionChains對象調用click(),然后調用執行方法perform()
示例:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common import action_chains driver = webdriver.Firefox() # 打開百度首頁 driver.get("https://www.baidu.com") # 定位首頁的地圖按鈕 ele_map = driver.find_element(By.XPATH, "//a[text()='地圖']") # 實例化ActionChains對象,並傳入driver action = action_chains.ActionChains(driver) # 鼠標左鍵點擊地圖元素屬性並執行 action.click(ele_map).perform()
從示例中,我們先定位地圖按鈕元素、然后實例化ActionChains對象並傳入driver,然后執行左鍵單擊動作(click())並執行。最終結果為打開了百度的地圖頁
2、鼠標的右鍵單擊:和左鍵單擊的思路一樣,ActionChains對象調用context_click(),然后調用執行方法perform()
二、鼠標雙擊
ActionChains對象調用double_click(),然后調用perform()執行操作
示例:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common import action_chains driver = webdriver.Firefox() # 打開百度首頁 driver.get("https://www.baidu.com") # 定位首頁的地圖按鈕 ele_map = driver.find_element(By.XPATH, "//a[text()='地圖']") # 實例化ActionChains對象,並傳入driver action = action_chains.ActionChains(driver) # 鼠標雙擊地圖元素 action.double_click(ele_map).perform
示例中,通過雙擊地圖元素,最后打開兩個地圖頁