自动维护元素定位--wqrdnium
作者:互联网
依赖包:
1.selenium
2.python-Levenshtein 安装此包需要使用 python_Levenshtein-0.12.0-cp36-cp36m-win_amd64.whl 安装
3.python2/3
4.xlrd
5.xlutils
6.configparser
7.requests
wqrfnium会自动生成一个excel表,并打印表位置,您需要把您selenium脚本中经常容易因前端变化导致定位失败的元素放入此表中
每行一个元素,列含义:
元素标识-icon:用户自行输入(如:seach_input/my_username),之后脚本中getelement方法中需要传入driver和icon
默认定位方式-tmp_find_method:用户需自行输入初始(如id/name等),之后脚本会自行维护无需再度关心
默认定位值-tmp_find_value:用户需自行输入初始(如username/password/kw/login等),之后脚本会自行维护无需再度关心
下标-index:用户自行输入初始(如0/1/2/3....),之后脚本会自行维护无需再度关心
原始html标签内容-html_element-:系统自动生成,无需关心
原理:
selenium定位时默认先利用excel表中的默认定位方式和默认值定位,若定位失败,则启动自动定位算法,找到最符合要求的元素返回,并把新元素的tagname定位方式和内容写入excel表中以便下次调用。
使用方法-exlce:
1.示范代码:
from selenium import webdriver
from wqrfnium.wqrfnium import *
begin_wqrf('./MyElements.xls')
driver = webdriver.Chrome()
driver.get("http://www.baidu.com/")
time.sleep(2)
getelement(driver,"seachinput").send_keys('xiaozhu')
2.首次运行一下,会自动生成存放elements.xls文件,会打印出此文件地址(begin_wqrf()为初始化语句,可传入自定义的excel表路径,若不写则会在默认位置生成)
3.手动进入elements.xls,把要定位的页面元素手动输入定位方式和定位值,粘贴到excel表中,每行一个元素
第一列:元素的标识,用于之后代码中直接调用该元素,如示范代码中的“seachinput”
第二列:元素的默认定位方式,如id
第三列:元素的默认定位值,如 kw
第四列:元素的下标,一般都写0,算法获取元素是获取符合要求的所有元素
第五列:元素的html源码标签,无需注意,由系统自动生成。
4.在代码中调用getelement方法,传入driver和元素标识即可,后续前端页面的各种更改,这个定位代码都会成功找到
elements.xls 中可以添加首行标识每一列的定义
标签:定位,元素,--,driver,wqrdnium,excel,默认,自行 来源: https://www.cnblogs.com/lexus168/p/13976335.html