鼠标事件
在实际的web 产品测试中发现,有关鼠标的操作,不单单只有单击click(),有时候还要用到右击,双击,拖动等操作,这些操作包含在ActionChains 类中。ActionChains类提供的鼠标事件常用方法(perform()执行所有ActionChains中存储的行为):
ActionChains 类鼠标操作的常用方法:
l context_click() 右击
l double_click() 双击
l drag_and_drop() 拖动
l move_to_element() 鼠标悬停在一个元素上
click_and_hold() 按下鼠标左键在一个元素上
鼠标事件操作步骤
1.引入包ActionChains()
from selenium.webdriver.common.action_chains import ActionChains
2.定位需要鼠标操作的元素
3.执行鼠标事件
语法:ActionChains(driver).鼠标事件方法.perform()
context_click() 右击
语法:ActionChains(driver).context_click(ele).perform()
#选择需要鼠标右击的目标元素
right = driver.find_element_by_css_selector('a[title="自动化相关"]')
#执行鼠标右击操作
ActionChains(driver).context_click(right).perform()
double_click() 双击
语法:ActionChains(driver).double_click(ele).perform()
# 定位到要双击的元素
double_click = driver.find_element_by_id("kw")
# 双击操作
ActionChains(driver).double_click(double_click).perform()
drag_and_drop(source源元素, target目标元素) 鼠标拖动
语法:ActionChains(driver).drag_and_drop(原始元素,目标元素).perform()
div1 = driver.find_element_by_id('div1')#定位源元素
div2 = driver.find_element_by_id('div2')#定位目标元素
ActionChains(driver).drag_and_drop(div1,div2).perform()# 把元素从一个位置,拖动到另外一个元素的位置
drag_and_drop_by_offset(起始元素,x坐标,y坐标) 指定坐标点的位置进行拖动
语法:ActionChains(driver).drag_and_drop_by_offset(目标元素, x轴坐标, y轴坐标).perform()
div1 = driver.find_element_by_id('div1')#定位源元素
ActionChains(driver).drag_and_drop_by_offset(div1, 800, 200).perform()# 把元素拖动到指定的像素位置