#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
对yaml格式的配置文件的操作
""" import yaml
import env
from vendor.config.config_handle import ConfigHandle class YamlHandle(ConfigHandle):
def __init__(self, dir_name, file_name): # 知识点
"""
@param dir_name: 文件夹名字,从env.py文件导入,eg:env.ELEMENTINI_PATH
@param file_name: 文件名字
"""
print(file_name)
try:
self.f = open(super().get_file_full_path_name(dir_name, file_name), 'r', encoding='utf-8')
self.cfg = self.f.read()
except:
print("配置文件不存在") """
获取yaml文件中的字典value值,可获取字典值任意一层
ele_dict = {
'password_input':
{
'dec': '登录按钮',
'type': 'XPATH',
'value': '//button'
},
'account_number_input':
{
'dec': '账号输入框',
'type': 'CLASS_NAME',
'value': 'ivu-input',
'index': 0
},
}
"""
def get_value(self, *keys):
"""
@param keys:yaml文件中的key值,可多层,['password_input','dec']或者['password_input']
@return: 返回字典中value值
"""
try:
ele_dict = yaml.load(self.cfg, Loader=yaml.FullLoader) # 用load方法转字典
print(ele_dict)
if not keys:
return ele_dict
else:
for key in keys:
tmp = ele_dict.get(key)
if tmp is not None:
ele_dict = tmp
return ele_dict
except:
print("值不存在") def __del__(self):
try:
self.f.close()
except:
print("文件操作符关闭失败") if __name__ == '__main__':
yh = YamlHandle(env.ELEMENTINI_PATH, 'admin_login.yaml')
print(yh.get_value('login_button'))

yaml读取封装的更多相关文章

  1. python接口自动化读取json,yaml配置文件+封装requests+unittest+HTMLRunner实现全自动化

    # coding=utf-8 import json import requests class TestApi(object): """ /* @param: @ses ...

  2. SpringBoot源码学习系列之@PropertySource不支持yaml读取原因

    然后,为什么@PropertySource注解默认不支持?可以简单跟一下源码 @PropertySource源码: 根据注释,默认使用DefaultPropertySourceFactory类作为资源 ...

  3. ADO.NET数据读取封装

    public class sqlserver { //private string sqlstr = System.ConfigurationManager.ConnectionStrings[&qu ...

  4. bladex从blade-dev.yaml 读取配置信息

    blade-dev.yaml配置======nacos文件配置 #sap配置 sap: api: read: url: http://read.xxxxxxxx.com.cn port: 80 use ...

  5. execl文件读取封装

    前言:做自动化常用的公共方法 注:第一次使用记得先 pip install xlrd 模块import xlrd class ReadExecl(): def __init__(self,filena ...

  6. SpringBoot系列之@PropertySource读取yaml文件

    SpringBoot系列之@PropertySource支持yaml文件读取 最近在做实验,想通过@PropertySource注解读取配置文件的属性,进行映射,习惯上用properties都是测试没 ...

  7. python之读取yaml数据

    一.yaml简介 yaml:一种标记语言,专门用来写配置文件. 二.yaml基础语法 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元素 ...

  8. 一篇文章告诉你Python接口自动化测试中读取Text,Excel,Yaml文件的方法

    前言 不管是做Ui自动化和接口自动,代码和数据要分离,会用到Text,Excel,Yaml.今天讲讲如何读取文件数据 Python也可以读取ini文件,传送门 记住一点:测试的数据是不能写死在代码里面 ...

  9. python接口自动化测试二十九:yaml配置文件的写和读

    # 先安装ruamel.yaml模块 写入配置文件: import os# 先安装ruamel.yaml模块from ruamel import yaml # 将字典写入到yamldict = { ' ...

随机推荐

  1. format函数格式化显示的方法

    数字 格式 输出 描述 3.1415926 {:.2f} 3.14 保留小数点后两位 3.1415926 {:+.2f} +3.14 带符号保留小数点后两位 -1 {:+.2f} -1.00 带符号保 ...

  2. 用开源软件TrinityCore在Debian 10上搭建魔兽世界8.3.0.34220的服务器

    用开源软件TrinityCore在Debian 10上搭建魔兽世界8.3.0.34220的服务器 TrinityCore是魔兽世界(World of Warcraft)的开源的服务端.目前支持魔兽的3 ...

  3. 【JavaScript数据结构系列】04-优先队列PriorityQueue

    [JavaScript数据结构系列]04-优先队列PriorityQueue 码路工人 CoderMonkey 转载请注明作者与出处 ## 1. 认识优先级队列 经典的案例场景: 登机时经济舱的普通队 ...

  4. mysql排序,同样的语句 查询结果不一样的问题

    一个项目,某段数据顺序出现异常导致运行异常.早期没有问题,用开发版本也没有问题,同样的查询排序语句在mysql客户端执行也没有问题. 这个排序不一致问题,这里记录下. 如下查询语句,根据‘order’ ...

  5. 关于thisState的那些事

    1.state的定义 状态(state) 和 属性(props) 类似,都是一个组件所需要的一些数据集合,但是它是私有的,并且由组件本身完全控制,可以认为它是组件的“私有属性(或者是局部属性)”. 2 ...

  6. ES6-for...of与for...in

    1.includes 数组是否包含某个东西 <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  7. Rocket - regmapper - RegisterCrossing

    https://mp.weixin.qq.com/s/82iLT-fmDg9Comp2p9bxKg 简单介绍RegisterCrossing的实现. 1. BusyRegisterCrossing 简 ...

  8. Linux (八)服务

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.服务的概念 操作系统中在后台持续运行的程序,本身并没有操作界面,需要通过端口号访问和操作.CentO ...

  9. Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)

    试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输 ...

  10. Java实现 蓝桥杯算法提高 求最大值

    算法提高 求最大值 时间限制:1.0s 内存限制:256.0MB 问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大.并且要求你选定的数对的ai之和非负 ...