#!/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. 【1-n】区间覆盖 TOJ4168+BZOJ1192

    Xiao Ming is very interesting for array. He given a sorted positive integer array and an integer n. ...

  2. Redis学习笔记(十五)Sentinel(哨兵)(中)

    上一篇 我们模拟了单机器下哨兵模式的搭建,那么接下来我们看下哨兵模式的实现与工作. 为什么又分成两篇呢?因为篇幅太长(偷懒),再一个这篇主要说的是Sentinel的初始化以及信息交换,下一篇着重说下状 ...

  3. uniapp轻轻松松开发各种类型的小程序

    1.前言 现在移动端用户使用量占据了市场大部分的比例,今天 给大家说说怎么去开发一个小程序,今天使用的是uniapp 2.什么是uniapp uni-app 是一个使用 Vue.js 开发所有前端应用 ...

  4. Java的基本数据类型及其封装类

    Java的基本数据类型及其封装类 一.8种基本数据类型 二.基本数据类型的包装类及大小 三.基本数据类型和封装类的区别 定义不同.封装类是对象,基本数据类型不是: 使用方式不同.封装类需要先new初始 ...

  5. Jenkins在Pod中实现Docker in Docker并用kubectl进行部署

    Jenkins在Pod中实现Docker in Docker并用kubectl进行部署 准备工作 安装Jenkins Jenkins的kubernetes-plugin使用方法 说明 Jenkins的 ...

  6. 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理

    在我们一般开发的系统界面里面,列表页面是一个非常重要的综合展示界面,包括有条件查询.列表展示和分页处理,以及对每项列表内容可能进行的转义处理,本篇随笔介绍基于Vue +Element基础上实现表格列表 ...

  7. Rocket - tilelink - SRAM

    https://mp.weixin.qq.com/s/-z9n6SHyAiK2OE7mOSvC2Q   简单介绍SRAM的实现.   ​​   1. 基本介绍   实现一个支持读写的静态存储器.存取的 ...

  8. css定位和css3的基本

    定位方式:position需要搭配left|right |top |bottom 1.相对定位:相对于自身的位置进行偏移position: relative; 2.绝对定位:相对于有position属 ...

  9. Java实现 LeetCode 732 我的日程安排表 III(暴力 || 二叉树)

    732. 我的日程安排表 III 实现一个 MyCalendar 类来存放你的日程安排,你可以一直添加新的日程安排. MyCalendar 有一个 book(int start, int end)方法 ...

  10. StringBuilder的线程为什么不安全

    StringBuffer和StringBuilder的区别在哪里? StringBuffer是线程安全的,StringBuilder是线程不安全的. 那么StringBuilder不安全在哪里?在想这 ...