seleniumide录制二次开发
Posted sysu_lluozh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了seleniumide录制二次开发相关的知识,希望对你有一定的参考价值。
UI平台计划引入录制功能模块,准备在开源项目中进行二次开发,经过需求和实现的比对,app录制在airtest的基础上二次开发,web录制在selenium ide的基础上二次开发
接下来主要说明selenium ide的二次开发方案
功能
首先看看selenium ide当前能够提供的功能模块
- 录制
点击、滚动、输入等事件均可以录制
- 编辑
对元素定位和操作及描述进行二次编辑
- 断言
- 调试
支持回放和单点调试等
从功能模块上基本满足UI自动化平台web录制功能
导出脚本
在预研录制方案时,发现selenium ide 其实提供了到处脚本的功能
- 导出
- 代码文件
导出实现
代码导出以模块化方式构建,每种语言和测试框架都有自己的包含要导出代码的包。每个代码段都映射到Selenium IDE中的命令 github源码
代码导出的核心功能是生成特定于语言的字符串,其中最关键的是操作和元素定位策略
- 操作
- 操作执行
- 定位元素
- 定位元素策略
操作属性映射
开发方案
由于按照上面的方案进行开发,虽然可以实施但是工作量较大,研究selenium ide录制时现成的内部通信机制
- selenium 打开任何页面都会注入content-script/ record.js的文件,用于监听整个浏览器的事件,由于生成录制的数据
- record.js向页面中注入inject-script /gen-step.js
- record.js 被加载后 则会与chrome插件的background建立一个长连接
- 用户在录制操作后,record.js会将相应的数据发送给到backgroud.js
那么只需要:
- 维护一个ui自动化平台页面的发起链接的连接对象列表
- 当收到发送的录制数据后,将其转发给到ui自动化平台,平台只需要操作对应的redux数据即可
以上是关于seleniumide录制二次开发的主要内容,如果未能解决你的问题,请参考以下文章
SeleniumIDE从0到1 (Selenium IDE 录制)