webdriver中,將鼠標的操作封裝在ActionChains類中,常用方法如下:
- 右擊:context_click()
- 雙擊:double_click()
- 懸停:move_to_element()
- 拖動:drag_and_drop()
- 執行:perform() 執行所有ActionChains 中存儲的行為,可理解為對整個操作的提交動作
ps:對元素的click()方法,可模擬鼠標左鍵單擊事件
1. 鼠標右擊
模擬鼠標右鍵點擊百度首頁的新聞按鈕
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains # 導入鼠標操作的ActionChains類 import time driver = webdriver.Chrome() driver.get('http://www.baidu.com') right_click_element = driver.find_element_by_name('tj_trnews') ActionChains(driver).context_click(right_click_element).perform() # 將driver和需右擊的元素傳入,並提交動作 time.sleep(2) driver.close()
右擊效果如下:
2. 鼠標雙擊
找到元素並雙擊
double_click_element = driver.find_element_by_name('tj_trnews') ActionChains(driver).double_click(double_click_element).perform() # 鼠標雙擊
3. 鼠標懸停
above = driver.find_element_by_link_text('更多產品') ActionChains(driver).move_to_element(above).perform()
懸停效果如下:
4. 鼠標拖放
source = driver.find_element_by_link_text('新聞') target = driver.find_element_by_xpath('//*[@id="form"]/span[1]/span') ActionChains(driver).drag_and_drop(source, target).perform() #將source元素拖動到target元素位置