APP自动化--关于Excel的封装思路

Posted 琉璃星眸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP自动化--关于Excel的封装思路相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2023/5/23 16:43
# @File    : 关于Excel的封装思路.py
# @Software: PyCharm
"""
一般结合着,你需要拿它来做什么
"""
>pip install xlrd==1.2.0 #安装读取EXCEL文件的插件,因为1.2.0之后的版本不支持WPS的excel文件,所以要用1.2.0

import xlrd  # 导入包 # 创建一个类读取excel文件 class ExcelReader:   def __init__(self, filename,sheet_name=None,sheet_index=None):  # 构造函数中设置EXCEL文件名、sheet名或者sheet下标 self.workbook = xlrd.open_workbook(filename) # 获取文件对象,xlrd.open_workbook(filename) if not sheet_name and not sheet_index:  # 如果sheet名和下标不存在 self.sheet = self.workbook.sheet_by_index(0)  # 指定为第一个sheet elif sheet_name:                     # 如果sheet名已给出 self.sheet = self.workbook.sheet_by_name(sheet_name) elif sheet_index:                      # 如果下标已给出 self.sheet = self.workbook.sheet_by_index(sheet_index) self.current_row = 0 #表示当前行号 def get_values(self): if self.current_row >= self.sheet.nrows: # self.sheet.nrows:得到的是一个总行数 return None                  # 如果超过总行数,返回NONE row_data = self.sheet.row_values(self.current_row) self.current_row += 1 return row_data def reset(self): self.current_row = 0 if __name__ == \'__main__\': file_object = ExcelReader("C:/Users/a/PycharmProjects/pythonProject1/test2.xlsx") print(file_object.get_values()) print(file_object.get_values()) print(file_object.get_values()) file_object.current_row = 99 print(file_object.get_values()) # 前面设置99行后返回NONE file_object.reset() # 设置归0 print(file_object.get_values()) #从0开始

 

关于JQ分页插件的封装

一、简介

  剧情需要,找遍网络没找到合适的,由此想自己封装一个,主要是思路问题,理清思路很重要,这里我的思路采用了一个稍微简单的。

二、代码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>分页插件</title>
</head>
<style type="text/css">
    .box
        display: flex;
        align-items: center;
        justify-content: space-around;
        width: 60%;
        margin: 0 auto;
    
    .box span
        display: flex;
        padding: 5px 10px;
        align-items: center;
        justify-content: center;
        border: 1px solid #000;
        cursor: pointer;
    
    .pageBox
        display: flex;
        flex-direction: row;
        justify-content: space-around;
    
    .pageBox .active
        background: #000;
        color: #fff;
    
</style>
<body>
    <div class="box" id="pagebox">
        <span class="prev">上一页</span>
        <div class="pageBox">
            <span class="active">1</span>
            <span>2</span>
            <span>3</span>
            <span>4</span>
            <span>5</span>
        </div>
        <span class="next">下一页</span>
    </div>
</body>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
    (function($)
        $.Init = function(params)
            var defaults = 
                //根元素
                el:#page,
                // 当前页
                current:5,
                // 按钮显示个数====设置为单数
                btnSize:5,
                // 每页列表个数
                listSize:10,
                //数据总记录数
                dataSize:300,
                // 回调函数
                callBack:callBack
            ;
            var params = params ? params : ;
            var config = $.extend(defaults,params);
            var pageSize = (config.dataSize%config.listSize ==0) ? (config.dataSize/config.listSize) : parseInt(config.dataSize/config.listSize)+1;
            var nodeList;
            Page(config.current)
            //dom渲染
            function Render(start,end,current)
                var prev = ‘‘,
                    next = ‘‘,
                    str = ‘‘,
                    pageStr = ‘‘;

                prev = "<span class=‘prev‘>上一页</span>";
                next = "<span class=‘next‘>下一页</span>";
                for(var i = start; i<=end; i++)
                    if(i==current)
                        pageStr+="<span class=‘active‘ attr-index=‘"+i+"‘>"+i+"</span>"
                    else
                        pageStr+="<span attr-index=‘"+i+"‘>"+i+"</span>"
                    
                
                pageStr= "<div class=‘pageBox‘>"+pageStr+"</div>";
                str+= prev+pageStr+next;
                $(config.el).empty().append(str)
                clickFun()
            
            //判断逻辑
            function Page(current)
                if(current<=0 || current > pageSize)
                    var current = 1
                else
                    var current = current
                    if(current <= 2 && current>0)
                        Render(1,5,current)
                    else if(current>pageSize-2 && current<=pageSize)
                        Render(pageSize-4,pageSize,current)
                    else
                        Render(current-2,current+2,current)
                    
                
            
            //绑定click事件
            function clickFun()
                nodeList = $(".pageBox span");
                $.each(nodeList,function(i,v)
                    $(v).on(click,function()
                        var current = parseInt($(this).attr(attr-index))
                        Page(current)
                    )
                )

                //prev
                $(.prev).click(function()
                    var current = parseInt($(.active).attr(attr-index))-1;
                    if(current < 1)
                        $(this).css(cursor,not-allowed)
                        return false
                    else
                        Page(current)
                    
                )
                //next
                $(.next).click(function()
                    var current = parseInt($(.active).attr(attr-index))+1;
                    if(current > pageSize)
                        $(this).css(cursor,not-allowed)
                        return false
                    else
                        Page(current)
                    
                )
            
        
    )(jQuery);
    $.Init(
        el:"#pagebox",
        current:3,
    )
</script>
</html>

 

以上是关于APP自动化--关于Excel的封装思路的主要内容,如果未能解决你的问题,请参考以下文章

有关于appium自动化测试的问题

API接口自动化测试框架搭建-公共方法-封装写入excel用例数据方法write_excel.py

API接口自动化测试框架搭建-公共方法-封装读取excel用例数据方法read_excel.py

API接口自动化测试框架搭建(十六)-封装case_excel.xlsx用例表头字段方法get_excel_data.py

Java 接口自动化系列--实体类之entity封装

binbinyang博客----关于Android数据库导出到Excel