ActionChains 類模擬鼠標(biāo)操作的常用方法勋眯。
使用click() 方法可以模擬鼠標(biāo)單擊操作,但是鼠標(biāo)操作還包括:右擊、雙擊客蹋、懸停塞蹭、鼠標(biāo)拖動(dòng)等功能。
所以讶坯,ActionChains 類提供了鼠標(biāo)操作的常用方法:
- perform():執(zhí)行所有 ActionChains 中存儲(chǔ)的行為番电。
- context_click():右擊。
- double_click():雙擊辆琅。
- drag_and_drop():拖動(dòng)漱办。
- move_to_element():鼠標(biāo)懸停。
注意:
1)首先需要引入 ActionChains 類涎跨。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
- ActionChains 類提供的鼠標(biāo)方法與 click() 方法的用法有所不同洼冻。具體用法如下。
鼠標(biāo)方法的使用:
1隅很、鼠標(biāo)右擊
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains # 引入 ActionChains 類
driver = webdriver.Firefox()
driver.get("http://yunpan.#")
#.......此處省略1W代碼撞牢,哈哈哈
# 定位到要右擊的元素
right_click = driver.find_element_by_id("xx")
# 對(duì)定位到的元素執(zhí)行鼠標(biāo)右鍵操作
ActionChains(driver).context_click(right_click).perform()
#.......(省略其他代碼)
其中:
1)ActionChains(driver)
調(diào)用 ActionChains() 類,將瀏覽器驅(qū)動(dòng) driver 作為參數(shù)傳入叔营。
2)c(right_click)
context_click() 方法用于模擬鼠標(biāo)右擊操作屋彪,在調(diào)用時(shí)需要指定元素定位。
3)perform()
執(zhí)行所有 ActionChains 中存儲(chǔ)的行為绒尊,可以理解為是對(duì)整個(gè)操作的提交動(dòng)作畜挥。
2、鼠標(biāo)懸停
move_to_element() 方法可以模擬鼠標(biāo)懸停的動(dòng)作婴谱,用法與 context_click() 相同蟹但。
# ......
# 定位到要懸停的元素
above = driver.find_element_by_id("xx")
# 對(duì)定位到的元素執(zhí)行懸停操作
ActionChains(driver).move_to_element(above).perform()
# ......
3、鼠標(biāo)雙擊
# ......
# 定位到要雙擊的元素
double_click = driver.find_element_by_id("xx")
# 對(duì)定位到的元素執(zhí)行懸停操作
ActionChains(driver).double_click(double_click).perform()
# ......
4谭羔、鼠標(biāo)拖放
dtag_and_drop(source,target) 在源元素上按住鼠標(biāo)左鍵华糖,然后移動(dòng)到目標(biāo)元素上釋放。
兩個(gè)參數(shù):
- source:鼠標(biāo)拖動(dòng)的源元素瘟裸。
- target:鼠標(biāo)釋放的目標(biāo)元素客叉。
# ......
# 定位到元素的原位置
element = driver.find_element_by_id("xx")
# 定位到元素要移動(dòng)到的目標(biāo)位置
target = driver.find_element_by_id("xx")
# 執(zhí)行元素的拖放操作
ActionChains(driver).drag_and_drop(element,target).perform()
# ......