湖南衡阳市建设工程造价网站,wordpress ping大全,找一个企业邮箱,直播网站建设目的我们在实现UI自动化过程中#xff0c;有时会遇到鼠标模拟操作#xff0c;如鼠标悬停后#xff0c;菜单划出#xff1b;鼠标按下后#xff0c;下拉展开#xff1b;单击、双击、拖动等等#xff1b;但我们常常对鼠标的单击和双击比较了解#xff08;click和doubleclick有时会遇到鼠标模拟操作如鼠标悬停后菜单划出鼠标按下后下拉展开单击、双击、拖动等等但我们常常对鼠标的单击和双击比较了解click和doubleclick但是其他的如何使用呢且看下面分解:
1、selenium提供了一个类来专门处理鼠标的动作-selenium.webdriver.common.action_chains.ActionChains(driver)它基本能满足所有我们对鼠标的操作
2、ActionChains是怎么工作的呢其实当我们调用它时他并不会立即执行而是如一个管道我们只是将要操作的一系列动作塞入管道中当打开开关时调用perform方法就会按照我们塞入的顺序依次执行
3、写法1链式写法
# 鼠标悬停到指定元素
def moveMouse2(self, locate, locateTypeBy.XPATH):WebDriverWait(self.driver, 10, 0.5).until(EC.presence_of_element_located((locateType, locate)))DH self.driver.find_element(locateType, locate) # 得到要操作的对象元素ActionsChains(self.driver).move_to_element(DH).click(DH).perform()
4、写法2分步骤写法
# 鼠标悬停到指定元素
def moveMouse2(self, locate, locateTypeBy.XPATH):WebDriverWait(self.driver, 10, 0.5).until(EC.presence_of_element_located((locateType, locate)))DH self.driver.find_element(locateType, locate) # 得到要操作的对象元素actions ActionChains(self.driver) #创建actionChains对象actions.move_to_element(DH) #塞入鼠标悬停事件并绑定要操作的元素DHactions.click(DH) #塞入点击鼠标事件并绑定要操作的元素DHactions.perform() # 打开开关触发执行# 特别注意上面步骤中是可以绑定不同元素的
5、ActionChains对象的其他方法列表
click(on_elementNone) ——单击鼠标左键
click_and_hold(on_elementNone) ——点击鼠标左键不松开
context_click(on_elementNone) ——点击鼠标右键
double_click(on_elementNone) ——双击鼠标左键
drag_and_drop(source, target) ——拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开
key_down(value, elementNone) ——按下某个键盘上的键
key_up(value, elementNone) ——松开某个键
move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
move_to_element(to_element) ——鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素左上角坐标多少距离的位置
perform() ——执行链中的所有动作
release(on_elementNone) ——在某个元素位置松开鼠标左键
send_keys(*keys_to_send) ——发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素