完美解決因前端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
然後用這句引用即可
from wqrfnium.wqrfnium import *

它的原理?

它基於selenium和page-object模式:
一開始會默認用元素存放的默認定位方式去定位元素並返回,如果發現定位失敗,則啓動維護算法,維護算法會找到經過改變的該元素並返回,並且把該元素/控件 的新定位方式存儲起來,以便之後直接使用。

它的性能?

正常使用默認定位方式定位需要:0.022秒。
定位失敗-啓動維護算法-重寫定位-儲存新定位方式需要:0.82秒。
下次定位會使用新的默認定位方式:0.022秒。

它的升級?

它目前尚未引入ai計算各屬性權重分數,這個作者會在之後引入,大家也可以先用默認的,成功率已經達到99%。或者自己微調。
第一版只支持excel表中存放元素數據,後續會支持其他各種類型。
因爲原理和appium相通,所以後續會支持appium。

它的作者?

就是博主:我去熱飯,大家有什麼問題僅可在此貼留言哈,博主拼命的修改中。

它的使用方法?

可以在這個鏈接先看一下readme:
https://github.com/Woqurefan/wqrf_selenium/blob/master/README.md

大致就是:
下載後,先運行下,讓它生成element.xls的表,然後在裏面錄入/維護各種元素。
裏面有個初始化語句:begin_wqrf(’./MyElements2.xls’)
是自定義excel表位置的代碼,若不加則會在默認位置生成表。
首次運行因爲是剛生成存放元素的表elemensts.xls,所以第一次接下來會因表是空的而停止腳本。
然後只需要把平時經常變化的元素存放進去,然後在腳本中引入wqrfnium.wqrfnium 的 getelement方法,裏面需要傳driver和元素的標識。即可讓wqrfnium自動維護該元素。
。爲啥要傳driver,因爲很多同學會同時在一個會話中啓動多個driver,所以wqrfnium也需要區分下用哪個driver去定位哪個元素

它的優點?

1.使用簡單,只需要變化定位語句即可。
2.源碼簡單,方便進行二次開發。
3.其中的所有分數權重參數可自行根據公司項目風格更改,來達到99%以上的成功率。
4.博主更新快,框架優化和前景非常nice。
5.同時支持py2,py3

它的依賴模塊?

1.selenium
2.python-Levenshtein
3.python2/3
4.xlrd
5.xlutils
6.configparser

異常問題?

若安裝python-Levenshtein 時發生錯誤,大概率是因爲c++的問題:
可按此鏈接安裝:
error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: https://visualstudio.microsoft.com/downloads/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章