——————·今天距2020年77天·——————python
这是ITester软件测试小栈第59次推文web

在上一篇:Selenium自动化测试-脚本录制神器Katalon Recorder,咱们认识了一个实用的脚本录制神器。到此为止,已经学完了8种定位方式以及利用Firefox插件协助定位,学会定位,Selenium自动化就成功了一半。面试
But,咱们好像只是知道定位,定位后的操做并很少,今天就来系统的了解下鼠标键盘操做。浏览器
首先,回顾下咱们以前的简单操做:微信
1.click() 点击;
app2.clear() 清除;编辑器
3.send_keys() 输入;测试
鼠标操做flex
以前定位的时候,用到了click点击元素,selenium除了click模拟鼠标单击操做外,还提供了双击、右击、悬停、拖动等操做,使用这些要导入ActionChains类:url
from selenium.webdriver.common.action_chains import ActionChains
ActionChains提供的操做以下:
perform() 执行全部 ActionChains 中存储的行为;
context_click() 右击;
double_click() 双击;
drag_and_drop() 拖拽到某个元素;
move_to_element() 鼠标悬停;
drag_and_drop_by_offset()拖拽到某个坐标;

1、move_to_element()
以百度页面的设置为例,看看鼠标悬停怎么操做。
鼠标移至设置,会出现下拉菜单,显示4个选项,代码以下:
整个流程是:定位到元素后,调用ActionChains()方法,将driver做为参数传入,鼠标悬停到元素上,perform()执行全部ActionChains中储存的行为。

2、double_click() 双击
以百度一下按钮为例,双击百度一下,代码以下:
能够看出,双击百度一下按钮和以前click()单击效果同样,都能实现刷新页面的做用。

3、context_click() 右击
右击典型的例子是云盘,咱们以百度云盘为例:
选择某个素材,而后右击,代码以下:
注意,上面的代码并不能运行成功,只是演示右击是怎么操做的。经过link_text定位到须要右击的元素上,而后执行右击操做。

4、drag_and_drop()
drag_and_drop(source, target):将对象拖拽到目标地点;
source:源对象,须要移动的元素;
target:目标对象,将源对象拖放至的位置;
实现代码以下:
上面的代码只是讲解drag_and_drop()的运行原理,具体的元素定位根据本身实战须要进行修改。

5、drag_and_drop_by_offset()
drag_and_drop_by_offset(source, xoffset, yoffset),其中:
source:须要移动的元素;
xoffset: 将元素拖动到另外一个位置的x坐标;
yoffset: 将元素拖动到另外一个位置的y坐标;
咱们以滑块为例,咱们须要将滑块移到最右的位置来解锁:
怎么实现呢,咱们经过定位元素,发现整个滑块的长度为298px。
那么咱们只要往右滑动的距离超过298px,就能够实现解锁滑块了,等不及了,用代码来实现吧。
运行以后,自动解锁滑块成功:
键盘操做
selenium提供了一整套的模拟键盘操做,以前了解的send_keys()方法能够模拟键盘输入,模拟键盘操做需导入键盘模块 :
from selenium.webdriver.common.keys import Keys
Keys()类提供了键盘几乎全部按键的方法,常见的键盘操做:
以上常见的键盘操做基本知足咱们平常的操做,接下来咱们写代码看下键盘操做的效果:
经过上面的例子,你能够掌握基本的键盘操做,更多的操做能够本身多练习、实践。
下一篇将分享获取元素属性,敬请期待~
最后是今天的分享:App自动化(基于appium+python)

ITester软件测试小栈今日分享
分享内容
APP自动化(基于appium+Python)
领取方式
微信公众号后台回复:Appium
有图有真相
快来星标 置顶 关注我

想要获取相关资料和软件 ?
Q群:701841415
本文分享自微信公众号 - ITester软件测试小栈(ITestingA)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。