Web自动化之数据驱动(案例一、案例二)、JSON文件读与写、语法规则


今日内容

  • 数据驱动
    • 参数化
  • 日志模块
    • 基本应用
    • 高级应用

1. JSON 文件定义

  • JS 语言对象表示法. 是一种基于文本, 独立与语言, 轻量级的数据交换格式
    • Web 项目数据交换格式多为: JSON 或 XML
    • 移动端项目数据交换格式多为: JSON

2. JSON 文件语法规则

  • 最外层可以是对象{}或者是数组[]

  • 所有的数据必须是键值对(key-value)形式

    • 所有的 key 必须是字符串类型
    • 必须使用双引号
  • 多条数据由逗点隔开

  • 值的数据类型

    • 字符串
    • 数字类型
      • 整数
      • 浮点数
    • 布尔类型(全小写)
      • true
      • false
    • 空对象
      • null
  • 对象和数组可以相互嵌套

  • JSON演示

    {
         
      "name": "小明",
      "age": 18,
      "height": 1.85,
      "isMan": true,
      "school": null,
      "num": [1,2,3,4,5],
      "link": [
        {
         "BaiDu": "http://www.baidu.com"},
        {
         "黑马": "www.itheima.com"}
      ]
    }
    

3. JSON 文件的读写操作

无论是读取还是写入 JSON 文件, 都要使用 import json

  • 读取 JSON(重点)

    import json
    
    with open('./文件名.json', encoding='utf-8') as f:
        data = json.load(f)
        print('获取的 JSON 数据为:', data)
    
    • 读取的方法名: load()
    • with open() 方法, 默认为 r 模式, 可以省略
    • 读取的 JSON 文件内容会被自动转换为 Python 的字典数据(判断依据:布尔类型和空对象的语法格式)
  • 写入 JSON 文件

    import json
    
    dict_data = {
         "name": "小明", "isMan": False, "address": None}
    with open('./json_data.json', 'w', encoding='utf-8') as f:
      json.dump(dict_data, f)
    
    • 写入的方法名: dump()
    • 在写入 JSON 文件时, with open() 方法, 需要指定为 w 模式
    • 在写入 JSON 文件时, 中文会被自动转换为 unicode 编码(\u5c0f\u660e), 并不是乱码, 需要注意

4. 数据驱动案例一实现步骤

  • PO 对页面元素进行封装

    • 代码演示1–公共方法类
    """
    公共方法类
    """
    import time
    
    from selenium import webdriver
    
    
    class DriverUtil(object):
        """浏览器驱动工具类"""
        driver = None  # 初始化状态
    
        @classmethod
        def get_driver(cls):
            """获取驱动方法"""
            # 判断浏览器对象不存在时, 创建对象
            if cls.driver is None:
                cls.driver = webdriver.Chrome()  # 直接使用时需要修改此项(浏览器类型)
                cls.driver.get('http://cal.apple886.com/')  # 直接使用时需要修改此项(项目地址)
                cls.driver.maximize_window()
                cls.driver.implicitly_wait(10)
            return cls.driver
    
        @classmethod
        def quit_driver(cls):
            """退出驱动方法"""
            # 判断浏览器对象存在时, 再执行退出
            if cls.driver:
                cls.driver.quit()
                cls.driver = None
    
    
    if __name__ == '__main__':
        DriverUtil.get_driver()
        time.sleep(2)
        DriverUtil.quit_driver()
    
    • 代码演示2–计算器页面
    """
    计算器页面
    """
    from selenium.webdriver.common.by import By
    
    from utils import DriverUtil
    
    
    class CalcPage(object):
        """计算器-对象库层"""
    
        def __init__(self):
            self.driver = DriverUtil.get_driver()  # 获取浏览器驱动对象
    
            # self.num_btn = (By.ID, 'simple0')  # 数字键
            self.num_btn = (By.ID, 'simple{}')  # 数字键
            self.add_btn = (By.ID, 'simpleAdd')  # 加号键
            self.equal_btn = (By.ID, 'simpleEqual')  # 等号键
            self.result = (By.ID, 'resultIpt')  # 计算结果
    
        def find_num_btn(self, num):
            """数字键定位方法"""
            # Python 规范要求: 单行字符数量不超过 79 个(提高代码的可阅读性)
            # location = (self.num_btn[0], self.num_btn[1].format(num))
            # return self.driver.find_element(location[0], location[1])
            return self.driver.find_element(self.num_btn[0], self.num_btn[1].format(num))
    
        def 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值