感谢[我去热饭*饭哥]的开发及无私分享,这里我将实践的情况以及踩的坑记录整理一下。

步骤1:安装必备的包

#此处注意:python版本3.5可以,python3.7出现问题
pip install  python-Levenshtein  -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install  selenium  -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install  wqrfnium  -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install  xlrd  -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install  xlwt  -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install xlutils  -i https://pypi.tuna.tsinghua.edu.cn/simple/

#安装Visual C++ 14.0。

步骤2:执行代码

from selenium import webdriver
from wqrfnium.wqrfnium import *
begin_wqrf(r'MyElements.xls')
driver = webdriver.Chrome()
driver.get("http://www.baidu.com/")
time.sleep(5)
#注意:我这里写的是search。作者写的是seach。
getelement(driver, "search_input").send_keys('我是热饭')
time.sleep(5)

看到没,报错了,怎么办?

代码执行之后,我们的demo学习文件夹里会有一个ini文件,打开它,配置一下路径即可。

前端ui频繁变动导致selenium定位失败的方法【实践篇】_单元测试

再运行一下代码:

前端ui频繁变动导致selenium定位失败的方法【实践篇】_软件测试_02

步骤3:填充Excel文件

手动进入elements.xls,把要定位的页面元素手动输入定位方式和定位值,粘贴到excel表中,每行一个元素

第一列:元素的标识,用于之后代码中直接调用该元素,如示范代码中的“seachinput”

第二列:元素的默认定位方式,如id

第三列:元素的默认定位值,如 kw

第四列:元素的下标,一般都写0,算法获取元素是获取符合要求的所有元素

第五列:元素的html源码标签,无需注意,由系统自动生成。

前端ui频繁变动导致selenium定位失败的方法【实践篇】_测试工程师_03

步骤4:再次执行一次代码

前端ui频繁变动导致selenium定位失败的方法【实践篇】_Python自动化测试_04

前端ui频繁变动导致selenium定位失败的方法【实践篇】_Python自动化测试_05

下面我们试着剖析一下源码的原理:

脚本第1次运行。

执行成功,毕竟是你自己写的代码。

前端ui频繁变动导致selenium定位失败的方法【实践篇】_测试工程师_06

脚本第2次运行(假设此时前端的UI已经更改了一些属性,你在excel里面的id,kw已经找不到了)。

那么就会走下面的代码。

前端ui频繁变动导致selenium定位失败的方法【实践篇】_测试工程师_07

前端ui频繁变动导致selenium定位失败的方法【实践篇】_软件测试_08

关键部分:search_new。这段我没怎么看懂。

前端ui频繁变动导致selenium定位失败的方法【实践篇】_接口测试_09