在实际的自动化测试中往往需要模拟一些鼠标的操作来辅助完成页面上一些特殊的操作,例如,有的需要鼠标拖拽页面元素、挪动页面元素,鼠标悬停在页面元素上等,因此封装一些工具类以便于在写测试代码中直接调用。
#encoding=utf-8
from selenium.webdriver.common.action_chains import ActionChains
class Simulate_Mouse:
def __init__(self,driver):
self.driver = driver
self.actions = ActionChains(self.driver)
# 按一下鼠标左键
def left_click(self,element):
self.actions.click(element).perform()
# 按两下鼠标左键
def double_click(self,element):
self.actions.double_click(element).perform()
# 按一下鼠标右键
def right_click(self,element):
self.actions.context_click(element).perform()
# 移动鼠标到element
def move_mouse(self,element):
self.actions.move_to_element(element).perform()
# 按住并且不放
def click_hold(self,element):
self.actions.click_and_hold(element)
# 从source拖拽移动鼠标到target
def move_mouse_source_target(self,source,target):
self.actions.drag_and_drop(source,target).perform()
# 从source点击鼠标左键不松开,在target处释放,同上句效果一样
def move_mouse_target(self,source,target):
self.actions.click_and_hold(source).release(target).perform()
# 拖拽元素到坐标(x,y)
def drag_element(self,element,x,y):
self.actions.click_and_hold(element).move_by_offset(x,y).release().perform()