继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

一些手记

wvguugvvc
关注TA
已关注
手记 4
粉丝 3
获赞 4

#写入数据


import xlrd

import xlwt

from xlutils.copy import copy


dir = os.path.abspath('.').split('src')[0]

'''主要逻辑实现'''

oldWb = xlrd.open_workbook(dir+"/data/考勤系统/考勤系统.xlsx");#先打开已存在的表

newWb = copy(oldWb)#复制

newWs = newWb.get_sheet(2);#取sheet表

newWs.write(2, 4, "pass");#写入 2行4列写入pass

newWb.save(dir+"/result/考勤系统.xls"); #保存至result路径


不copy直接写入原文件的话,会把原来的数据清空。所以要先复制原来的数据下来。

读取数据

 for curr_row in range(num_rows):

                row = worksheet1.row_values(curr_row)

                row = str(row).strip().lstrip('[').rstrip(']')

                print (row)

                row2 = row.split(sep=",")

                print (row2)

    #             获取第一列的数据

                address = row2[0].strip().lstrip('\'').rstrip(' \'')

                print("row%s address is %s" % (curr_row, address))

                num1 = curr_row + 1


写入当前时间

now_time = datetime.datetime.now()

                # 写入当前时间

                currenttime = now_time.strftime('%Y-%m-%d %H:%M:%S')

                newWs.write(curr_row, 12, currenttime)

xlutils 2.0.0和Python3.4有些语法不适配




print ()


xrange 改为range


unicode 改为 str




+++++++++++++++++++

对比页面元素是否包含截图

from devicetest.log.variables import VAR

file_path = os.path.join(os.path.abspath(VAR.ResourcePath), "hwBrowser\\image\\dedao.png")

HwBrowser.checkIfImageByViewNode(self.DUT, file1_path=file_path, myCondition='id/file_name', myPath=[-1, 0], FillImageBg=True)(自动填充背景,需要选上,否则对比不出来)


对比图片:


def checkIfImageExist(ad, file1_path, similar=0.9):


    # 构造对比图片的绝对路径

    myTemplate = os.path.join(os.path.abspath(VAR.ResourcePath), file1_path)

    ad.log.error(myTemplate)

    # 对当前屏幕进行截图,并保存到report目录

    img_path = getScreenHot(ad)

    # 开始进行图片对比

    result = find_template(ad, img_file=img_path , template_file=myTemplate , threshold=similar)

    if result == "notfind":

        ad.log.error("当前屏幕中没有找到图片" + myTemplate)

        return False

    else:

        ad.log.error("当前屏幕中找到图片" + myTemplate)

        return True

def find_template(ad, img_file , template_file , threshold=0.9):


    img = cv2.imread(img_file)

    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    template = cv2.imread(template_file) 

    # print(template.shape)

    template_gray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY)

    w, h = template_gray.shape[::-1]

    res = cv2.matchTemplate(img_gray, template_gray, cv2.TM_CCOEFF_NORMED)

    if cv2.minMaxLoc(res)[1] > threshold:

        # print( cv2.minMaxLoc(res)[1] )

        pass

    else:

        # print(img_file + "与" + template_file +"找不到匹配的")

        # print(res)

        return "notfind"

    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

    top_left = max_loc

    bottom_right = (top_left[0] + w, top_left[1] + h)

    cv2.rectangle(img, top_left, bottom_right, 255, 2)   

    return  (top_left[0] , top_left[1] , w, h)


def checkIfImageByViewNode(ad, file1_path, myCondition, myPath=None, similar=0.99, ahash=False, FillImageBg=False):

  

    #====================================================================================

#==================================================================================== 

  # 构造对比图片的绝对路径

    myTemplate = os.path.join(os.path.abspath(VAR.ResourcePath), file1_path)

    ad.log.error(myTemplate)

    # 对控件进行截图

    if myPath == None:

        viewnode = Common.getViewNode(ad, condition=myCondition)

    else:

        viewnode = Common.getViewNode(ad, condition=myCondition, path=myPath)

    # thisdate = ad.droid.Settings.getCurrentSystemTime()

    if FillImageBg == False:

        img_path = ad.hierarchyviewer.captureViewNode(viewnode=viewnode, name="Node", ext=".png", refresh=False)

    else:

        img_path = ad.hierarchyviewer.captureViewNode(viewnode=viewnode, name="Node", ext=".png", refresh=False)

        img_path = fillImageBackground(ad, img_path)

    ad.log.error("控件截图文件:" + img_path)

    if ahash == False:

        result = find_template(ad, img_file=img_path , template_file=myTemplate , threshold=similar)

    else:

        result = find_template_ahash(ad, img_file=img_path , template_file=myTemplate , hanming_dis=similar)

    if result == "notfind":

        ad.log.error("待检测控件截图没有找到图片" + myTemplate)

        return False

    else:

        ad.log.error("待检测控件截图找到图片" + myTemplate)

        return True

=====2018.11.26======



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP