python使用yaml 管理selenium元素的示例

作者:做梦的人(小姐姐)
出处:https://www.cnblogs.com/chongyou/

1.所有元素都在PageElement下的.yaml,如图

login_page.yaml文件:

username:
  dec: 登录页
  type: xpath
  value: //input[@class='custom-text']
password:
  dec: 密码输入框
  type: xpath
  value: //input[@class='custom-text password']
 
loginbtn:
  dec: 登录按钮
  type: xpath
  value: //button[@type='submit']

解析yaml文本

def  parseyaml():
    #当前脚本路径的父类
    basepath=os.path.dirname(os.path.dirname(__file__))
    #yaml_path=basepath+"\\PageElement"
    yaml_path = basepath + "\\PageElement"
    pageElements = {}
    # 遍历读取yaml文件
 
    for fpath, dirname, fnames in os.walk(yaml_path):
 
        for name in fnames:
            # yaml文件绝对路径
            yaml_file_path = os.path.join(fpath, name)
            print(yaml_file_path)
            # 排除一些非.yaml的文件
            if ".yaml" in str(yaml_file_path):
                with open(yaml_file_path, 'r', encoding='utf-8') as f:
                    page = yaml.load(f)
                    pageElements.update(page)
    #返回字典内容
    #for i in pageElements[pagename]['locators']:
    #   print(i)
    return pageElements
 
 
if __name__ == "__main__":
    a = parseyaml()
    print(a)
    print("*******************")
    print(a["username"]["type"])
    print(a["username"]["value"])

解析结果

以上就是python使用yaml 管理selenium元素的示例的详细内容,更多关于python yaml 管理selenium元素的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python Selenium自动化获取页面信息的方法

    1.获取页面title title:获取当前页面的标题显示的字段 from selenium import webdriver import time browser = webdriver.Chrome() browser.get('https://www.baidu.com') #打印网页标题 print(browser.title) #输出内容:百度一下,你就知道 2.获取页面URL current_url:获取当前页面的URL from selenium import webdriver

  • python Yaml、Json、Dict之间的转化

    Json To Dict import json jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; print(jsonData) print(type(jsonData)) text = json.loads(jsonData) print(text) print(type(text)) ####################### {"a"

  • Selenium结合BeautifulSoup4编写简单的python爬虫

    在学会了抓包,接口请求(如requests库)和Selenium的一些操作方法后,基本上就可以编写爬虫,爬取绝大多数网站的内容. 在爬虫领域,Selenium永远是最后一道防线.从本质上来说,访问网页实际上就是一个接口请求.请求url后,返回的是网页的源代码. 我们只需要解析html或者通过正则匹配提取出我们需要的数据即可. 有些网站我们可以使用requests.get(url),得到的响应文本中获取到所有的数据.而有些网页数据是通过JS动态加载到页面中的.使用requests获取不到或者只能获

  • python 读取yaml文件的两种方法(在unittest中使用)

    作者:做梦的人(小姐姐) 出处:https://www.cnblogs.com/chongyou/ python读取yaml文件使用,有两种方式: 1.使用ddt读取 2,使用方法读取ddt的内容,在使用方法中进行调用 1.使用ddt读取 @ddt.ddt class loginTestPage(unittest.TestCase):     @ddt.file_data(path)     @ddt.unpack     def testlogin(self,**kwargs):       

  • python+appium+yaml移动端自动化测试框架实现详解

    结构介绍 之前分享过一篇安卓UI测试,但是没有实现数据与代码分离,后期维护成本较高,所以最近抽空优化了一下. 不想看文章得可以直接去Github,欢迎拍砖 大致结构如下: testyaml管理用例,实现数据与代码分离,一个模块一个文件夹 public 存放公共文件,如读取配置文件.启动appium服务.读取Yaml文件.定义日志格式等 page 存放最小测试用例集,一个模块一个文件夹 results 存放测试报告及失败截图 logs 存放日志 testcase 存放测试用例runtest.py

  • Python读取yaml文件的详细教程

    yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件,看了yaml后,发现这个更直观,更方便,有点类似于json格式.在自动化测试用的相当多所以需要小伙伴们要熟练掌握 2.yaml基本语法规则: 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 #表示注释,从这个字符

  • Python使用Selenium模拟浏览器自动操作功能

    概述 在进行网站爬取数据的时候,会发现很多网站都进行了反爬虫的处理,如JS加密,Ajax加密,反Debug等方法,通过请求获取数据和页面展示的内容完全不同,这时候就用到Selenium技术,来模拟浏览器的操作,然后获取数据.本文以一个简单的小例子,简述Python搭配Tkinter和Selenium进行浏览器的模拟操作,仅供学习分享使用,如有不足之处,还请指正. 什么是Selenium? Selenium是一个用于Web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在

  • python selenium xpath定位操作

    xpath是一种在xm文档中定位的语言,详细简介,请自行参照百度百科,本文主要总结一下xpath的使用方法,个人看法,如有不足和错误,敬请指出. 注意:xpath的定位 同一级别的多个标签 索引从1开始 而不是0 1. 绝对定位: 此方法最为简单,具体格式为 xxx.find_element_by_xpath("绝对路径") 具体例子: xxx.find_element_by_xpath("/html/body/div[x]/form/input") x 代表第x个

  • python读取yaml文件后修改写入本地实例

    首先安装pip install ruamel.yaml 用于修改yaml文件 #coding:utf-8 from ruamel import yaml def up_yml(ip_server): with open('./../docker-compose-demo.yml', encoding="utf-8") as f: content = yaml.load(f, Loader=yaml.RoundTripLoader) # 修改yml文件中的参数 content['serv

  • Python selenium实现断言3种方法解析

    1.if ...else ...判断进行断言 from time import * from selenium import webdriver def login(user="admin",pwd="123456"): driver = webdriver.Chrome() driver.implicitly_wait(10) driver.get("http://192.168.1.110:8080/cms") driver.maximize

随机推荐