本帖最后由 huningli38 于 2023-7-10 12:09 编辑
队长模块_谷歌web自动化测试框架6.0,简洁、稳定、开源
精易6.0首发 原理:
基于谷歌开放协议(CDP),借助HP_socket和谷歌浏览器远程调试服务端进行通信,利用json格式数据进行数据交互,实现了谷歌WEB自动化测试。通CDP,开发者可以构建自己的工具或库,实现自动化测试、性能分析、页面抓取、调试等功能。它为开发者提供了更高级的控制和访问权限,使得开发者能够更好地理解和优化他们的网页或应用程序。 本模块是基于谷歌开发者协议编写的仿谷歌F12工具的易语言模块!
模块架构:
1.一个调试端口对应一个浏览器,N个调试端口对应N个浏览器(对应到模块的浏览器类) 2.一个调试端口+标签ID对应一个浏览器的一个标签页,一个调试端口+N个标签ID对应一个浏览器的N个标签页(对应到模块的标签页类) 3.一个标签页下面有1到N框架,定位网页元素框架,对元素操作
简化队长chrome类介绍:
队长chrome类本来是简化队长浏览器类和队长标签页类,实现单类的简便使用,尤其是方便新手使用,但是随着越来越多人使用,最近反馈无法满足多个标签页同时操作,比如操作谷歌浏览器插件,插件页面会动态开启和关闭,于是升级了部分命令功能,要是想控制多个标签页,还嫌弃队长浏览器类和队长标签页类组合麻烦,可以尝试使用队长浏览_*子程序命令和队长标签页类组合, 目前3种控制浏览器自动化测试的3种组合方式, 1.队长浏览器类和队长标签页类组合(总有一种方式适合你的), 2.队长浏览器_*子程序命令和队长标签页类组合, 3.队长chome类
模块简介(复制粘贴):
· 免费、简洁、稳定、开源 · 模块需要配合谷歌浏览器,支持最新版114版,但win10已经有谷歌内核的edge浏览器了 · 支持多线程多进程,实现web自动化测试,独立ck,独立缓存 · * 不重启浏览器实时换呆梨(插件实现) ,而且http和https支持密码认证。S4和S5只支持无密码 · 脚本断点与条件断点 · 拦截并修改请求数据 · 无感选择文件,不会弹出选择文件的窗口。接管选择接口 · 支持多框架网页,不用考虑跨域,也支持特殊框架(某些外部填表无法枚举出来的网页) · ws网络请求事件拦截 · http网络请求事件拦截 · 浏览器消息框拦截并操作 · 手工级的键盘和鼠标,并非系统命令而是谷歌命令,稳,支持多线程多进程同时操作 ·下载文件拦截,可从浏览器接管下载 · ck操作,增删改查 · 模拟触摸,滑动速度可调,可抛拽 · 页面截图,可指定位置与大小 · 两种网页判断就绪命令,精准 · 各种伪装:UA、地理位置、移动模式、屏幕大小、设备方向、cpu节流、触摸支持 · 资源提取,js、图片、音频等 · 执行js脚本,同步执行带返回值 · 无感添加文件到input元素,这个是直接添加不是上面的拦截选择文件 · 可加载自定义指纹插件或注入自定义指纹js,实现js层伪装指纹 · 三种谷歌级模拟输入文本模式,总有一个适合你。完美输入 · 元素命令支持Selector选择器与XPath选择器 · 元素命令提取网页图片验正码 · 脚本注入,注入的脚本优先于网页js · 轻松加载自己的浏览器插件,自己写的或者商店下载的都可以。 · console事件,巧妙应用可实现易语言和网页进行交互,比如让你软件响应网页按钮等。 · *队长浏览器类.清除缓存(插件实现) 。完美的清除缓存功能,等同于手动在浏览器设置页里的清除缓存 · ws对象操作,直接操作网页js里的ws对象。ws对象相关操作,可以发送、拦截修改、拦截后阻止、或者拦截后用自定义函数来处理数据等操作,就是说真的可以为所欲为。 · *动态加载队长插件(谷歌插件),命令快捷加载。队长插件功能:完美的浏览器全局js注入、完美的清除缓存 · *动态加载油猴插件,增强对浏览器或者网页的操控。 · 更多功能,敬请期待...
更新细节如下:
2023/7/10 | 6.0 | ' 队长模块_谷歌web自动化测试框架6.0
' 1.修复元素_添加子节点,xpath选择器模式下的错误,队长标签页类.元素_添加子节点(),队长chrome类.元素_添加子节点()同步更新
' 2.优化元素_取可视状态,增加加强判断参数,可以判断父元素隐藏子元素隐藏的状态,队长标签页类.元素_取可视状态(),队长chrome类.元素_取可视状态()同步更新
' 3.优化队长chrome类.初始化(),去掉内部队长浏览器_连接浏览器()命令,减少初始化对队长标签页类的申请和释放,减少对队长长标签页类的以赖,去掉标签页_手动绑定()改为队长浏览器_取标签页ID列表(),直接获取激活标签页ID,初始化参数
' 4.修复元素_取img图片(),元素_取坐标(),在多线程中同时操作同一个标签页类或队长chrome类时,有一定概率崩溃,队长标签页类.元素_取img图片(),队长标签页类.元素_取坐标(),队长chrome类.元素_取img图片(),队长chrome类.元素_取坐标()
' 5.优化注入_脚本(),注入_删除(),注入清空(),ws_覆写对象(),ws_还原对象(),在多线程中同时操作同一个标签页类或队长chrome类时,有一定概率崩溃,
' 6.删除队长标签类和队长chrome类部分成员变量,更好的适应多线程
' 7.增加队长chrome类.浏览器_关闭标签页() 用来关闭指定标签页
' 8.队长chrome类.标签页_切换到指定网页()增加参数用来返回队长chrome类,可以用另外的队长chrome类控制指定标签页,实现多标签控制,尤其是控制一些自动打开关闭的插件
' 9.队长chrome类.标签页_新建标签页()增加参数用来返回队长chrome类,可以用另外的队长chrome类控制新建标签页,不影响原标签页,实现多个队长chrome类控制多个标签页
' 10.队长chrome类本来是简化队长浏览器类和队长标签页类,实现简便使用,但是随着使用,无法满足多个标签页同时操作,于是升级了部分命令功能,要是想控制多个标签页,还嫌弃标签页多,可以尝试使用队长浏览_*子程序命令和队长标签页类组合,目前3种组合方式,1.队长浏览器类和队长标签页类组合,2.队长浏览器_*子程序命令和队长标签页类组合,3.队长chome类,
' 11.增加鼠标_拖动,方便研究鼠标拖动一段距离放开,队长标签页类.鼠标_拖动(),队长chrome类.鼠标_拖动()同步更新
' 12.优化触摸_滑动,方便研究触摸滑动一段距离放开,队长标签页类.触摸_滑动(),队长chrome类.触摸_滑动()同步更新
' 13.优化队长标签页类和队长chrome类的一些内部参数
| 2023/5/30 | 5.9 | ' 队长模块_谷歌web自动化测试框架5.9
' 1.优化队长_启动浏览器,增加启动模式,根据不同系统可以自己选择启动方式,默认为易语言的【运行()】兼容型最好,修改参数【接收_浏览器进程id】获取方式为队长_端口取进程id_,默认取到的是主进程的id
,失败返回0 | 2023/5/18 | 5.8 | ' 队长模块_谷歌web自动化测试框架5.8
' 1.修复类_连接标识失效问题,请使用5.7版的朋友升级,5.6及以下版本不受影响
' 2.鼠标_移动增加参数按键,可以控制鼠标移动的时候是鼠标的那个键
' 3.增加队长标签页类.元素_取子元素数量,队长chrome类.元素_取子元素数量,
' 4.优化队长标签页类.模拟_输入文本,增加是否手打模式参数,默认改为普通输入,增强为手打模式,根据实际情况使用
| 2023/5/11 | 5.7 | ' 队长模块_谷歌web自动化测试框架5.7
' 1.去掉队长_启动浏览器,队长命令行.首页留空时修改为空白页,采用谷歌浏览器默认欢迎页,当队长_启动浏览器再次用相同缓存目录启动时,产生窗口标签页
' 2.优化类_连接,提高类连接速度,更加合理的分配缓存包. |
附件源码回复可见: |