本文主要是介绍Selenium+Python:元素管理之 yaml模块、Excel,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
方法一:使用 yaml 管理元素
1.yaml内容编写,格式如下
(ps:注意冒号后面不要少了空格)
go_business_settings_e:
dec: 业务设置元素
type: xpath
value: //*[@role="menu"]/li//*[text()="业务设置"]/..
2.解析yaml文件,如下
import os
import yaml
def parseyaml():
# 当前脚本路径的父类
basepath = os.path.dirname(os.path.dirname(__file__))
yaml_path = basepath + "\\CommonLib\\business_settings"
pageElements = {}
# 遍历读取yaml文件
for fpath, dirname, fnames in os.walk(yaml_path):
for name in fnames:
# yaml文件绝对路径
yaml_file_path = os.path.join(fpath, name)
# 排除一些非.yaml的文件
if ".yaml" in str(yaml_file_path):
with open(yaml_file_path, 'r', encoding='utf-8') as f:
# 将yaml数据转化为字典或列表
page = yaml.load(f)
# 将yaml的数据合并到 pageElements 字段中
pageElements.update(page)
# 返回字典内容
return pageElements
if __name__ == "__main__":
a = parseyaml()
print(a)
print("*******************")
print(a["go_business_settings_e"]["type"])
print(a["go_business_settings_e"]["value"])
返回结果,如下
{'go_business_settings_e': {'dec': '业务设置元素', 'type': 'xpath', 'value': '//*[@role="menu"]/li//*[text()="业务设置"]/..'}}
*******************
xpath
//*[@role="menu"]/li//*[text()="业务设置"]/..
代码说明:
os相关参考链接:https://www.runoob.com/python/os-walk.html
-
os.path.dirname(path) 返回文件路径
-
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
格式:os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
参数:
top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的文件夹的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件名字(不包括子目录)
topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
onerror -- 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
-
os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径
其他注意事项
- open路径中不能包含 内容为空的 .yaml文件,否则会报错:TypeError: 'NoneType' object is not iterable
方法二:使用 Excel 管理元素
待定...
这篇关于Selenium+Python:元素管理之 yaml模块、Excel的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!