selenium自動化中,有時候會遇到需要模擬鼠標操作才能進行的情況,比如單擊、雙擊、點擊鼠標右鍵、拖拽等等。而selenium給我們提供了一個類來處理這類事件——ActionChains。
ActionChains類鼠標操作的常用方法:
- context_click() 右擊
- double_click() 雙擊
- drag_and_drop() 拖動
- move_to_element() 鼠標懸浮在一個元素上
- click_and_hold() 按下鼠標左鍵在一個元素上不松開
在使用ActionChains類下面的方法之前,需要先引入ActionChains類
from selenium.webdriver.common.action_chains import ActionChains
這里需要注意的是:ActionChains(driver),
driver:webdriver實例執行用戶操作。
ActionChains用於生產用戶的行為,所有的行為都存儲在actionchains對象上,再通過perform()執行所有ActionChains中存儲的行為。
perform()同樣也是ActionChains類提供的方法,通常與ActionChains()配合使用。
鼠標右擊context_click()操作
#定位到要右擊的元素 right =driver.find_element_by_xpath("xx") #對定位到的元素執行鼠標右鍵操作 ActionChains(driver).context_click(right).perform()
鼠標雙擊double_click()操作
#定位到要雙擊的元素 double =driver.find_element_by_xpath("xxx") #對定位到的元素執行鼠標雙擊操作 ActionChains(driver).double_click(double).perform()
鼠標拖放drag_and_drop()操作
#定位元素的原位置 element = driver.find_element_by_name("xxx") #定位元素要移動到的目標位置 target = driver.find_element_by_name("xxx") #執行元素的移動操作 ActionChains(driver).drag_and_drop(element, target).perform()
鼠標懸浮在一個元素上move_to_element()
#定位鼠標需要懸浮的元素 ele= driver.find_element_by_id('i1') #執行鼠標操作 ActionChains(driver).move_to_element(ele).perform()