UI自动化:鼠标键盘操作

自动化测试过程中无时无刻不涉及鼠标和键盘操作,除了元素定位以外,其他都是由键盘和鼠标操作来完成的。比如一个简单的搜索动作,首先通过键盘向搜索框键入内容(send_keys),然后通过鼠标点击搜索按钮(click)完成搜索。

 

在selenium中,所有的键盘鼠标动作都来自于一个类ActionChains,先来导入它,

from selenium.webdriver.common.action_chains import ActionChains

我们来看看它的包含了哪些方法;

通过ActionChains类的结构可以看出,它提供的操作是多种多样的,不过并非所有方法都会经常用到,掌握几种比较常见的即可,

鼠标操作:

  • 左键单击:click
  • 右键单击:context_click
  • 左键双击:double_click
  • 悬浮:move_to_element
  • 拖拽:drag_and_drop

键盘操作:

键盘最常用的方法就是send_keys(),但它可操作的按键却非常多,

那selenium有哪些已经封装好的按键呢?还是先导入一个类Keys

from selenium.webdriver.common.keys import Keys

来看看它封装了哪些按键,这里只截取了部分:

 

上面认识了大部分常用方法,那如何通过动作链使用它们呢?首先,

# 实例化动作链对象
action = ActionChains(driver) #参数为浏览器驱动对象

如果要执行鼠标的拖拽动作,

action.drag_and_drop().perform()

注意:perform之前的动作只是声明,并没有真正的执行,只有加上perform后,前面的所有动作还会执行。

另外,要连续执行一系列动作也是可以的,如下,

action.move_to_element().drag_and_drop().send_keys().perform()

试着点击键盘上Enter键,

action.send_keys(Keys.ENTER).perform()

当然,连续按键和组合按键的用法类似,如下,

action.send_keys(Keys.CONTROL, Keys.NUMBER1).perform()

 

总的来说,这些知识点的难度都不大,多加练习很容易掌握。

posted @ 2020-03-21 21:45  suanmiao  阅读(870)  评论(0)    收藏  举报