完美解决因前端ui频繁变动导致selenium的方法

wqrfnium完美解决selenium定位不到元素问题,前端频繁变化导致元素的各种属性变化导致的问题。

你是否曾遇到以下情况:
好不容易写个selenium自动化脚本,然后没几天,一运行,报错了。用例失败了。然后去查发现是因为元素的属性前端更改了导致定位失败。后期维护起来的成本太大了。
很多领导考虑到公司实际情况,就直接扼杀了你的selenium自动化方案。
曾几何时,面试题中问:ui自动化的使用场景是什么?答:前端不频繁变动。

不过现在上面的问题不用再纠结了。因为一个专门抑制,抵抗,自动维护 因前端频繁变化导致元素定位失败的工具 出现了。

这个工具就是:

wqrfnium

它是什么?

它可以让你的selenium脚本一套用到死。
它可以让原本不能做的自动化项目开启自动化。
它可以瞬间扩充自动化人员的工作机会。
它可以前端妹子把元素改到人都不认识,但是它依然认识。

它怎么下载?

嫌麻烦可以直接 pip install wqrfnium
也可以访问pypi官网:https://pypi.org/project/wqrfnium/
想研究源码的可以去github:https://github.com/Woqurefan/wqrf_selenium

它的原理?

它基于selenium和page-object模式:
一开始会默认用元素存放的定位方式去定位元素并返回,如果发现定位失败,则启动维护算法,维护算法会找到经过改变的该元素并返回,并且把该元素/控件 的新定位方式存储起来,以便之后直接使用。

它的性能?

正常使用默认定位方式定位需要:0.022秒。
定位失败-启动维护算法-重写定位-储存新定位方式需要:0.82秒。
下次定位会使用新的默认定位方式:0.022秒。

它的升级?

它目前尚未引入ai计算各属性权重分数,这个作者会在之后引入,大家也可以先用默认的,成功率已经达到99%。或者自己微调。
第一版只支持excel表中存放元素数据,后续会支持其他各种类型。
因为原理和appium想通,所以后续会支持appium。

它的作者?

就是博主:我去热饭,大家有什么问题仅可在此贴留言哈,博主拼命的修改中。

它的使用方法?

可以在这个链接先看一下:
https://github.com/Woqurefan/wqrf_selenium/blob/master/README.md

大致就是:
下载后,先运行下,让它生成element.xls的表,然后在里面录入/维护各种元素。
之后脚本中引入wqrfnium.wqrfnium 的 getelement方法,里面需要传driver和元素的标识
。为啥要传driver,因为很多同学会同时在一个会话中启动多个driver,所以wqrfnium也需要区分下用哪个driver去定位哪个元素

它的优点?

1.使用简单,只需要变化定位语句即可。
2.源码简单,方便进行二次开发。
3.其中的所有分数权重参数可自行根据公司项目风格更改,来达到99%以上的成功率。
4.博主更新快,框架优化和前景非常nice。

它的依赖模块?

1.selenium
2.Levenshtein
3.python2
4.xlrd
5.xlutils

原文链接:https://blog.csdn.net/qq_22795513/article/details/102402169

posted @   小强找BUG  阅读(930)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示