pywinauto进阶练习

Posted wuxunyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pywinauto进阶练习相关的知识,希望对你有一定的参考价值。

case1.画图工具简单练习

技术分享图片
#_*_coding=utf-8_*_
import time
from pprint import pprint
import logging
from logging import handlers
#from pywinauto import actionlogger
from pywinauto import Application
# import argparse
# parser = argparse.ArgumentParser()
# parser.add_argument("--log", help = "enable logging", type=str, required = False)
# args = parser.parse_args()

class Logger(object):
    level_relations = {
        debug:logging.DEBUG,
        info:logging.INFO,
        warning:logging.WARNING,
        error:logging.ERROR,
        crit:logging.CRITICAL
    }#日志级别关系映射

    def __init__(self,logname,filename,level=info,when=D,backCount=3,fmt=%(asctime)s - %(name)s - %(levelname)s - %(message)s):
        self.logger = logging.getLogger(logname)
        format_str = logging.Formatter(fmt)#设置日志格式
        self.logger.setLevel(self.level_relations.get(level))#设置日志级别
        sh = logging.StreamHandler()#往屏幕上输出
        sh.setFormatter(format_str) #设置屏幕上显示的格式
        th = handlers.TimedRotatingFileHandler(filename=filename,when=when,backupCount=backCount,encoding=utf-8)#往文件里写入#指定间隔时间自动生成文件的处理器
        #实例化TimedRotatingFileHandler
        #interval是时间间隔,backupCount是备份文件的个数,如果超过这个个数,就会自动删除,when是间隔的时间单位,单位有以下几种:
        # S 秒
        # M 分
        # H 小时、
        # D 天、
        # W 每星期(interval==0时代表星期一)
        # midnight 每天凌晨
        th.setFormatter(format_str)#设置文件里写入的格式
        self.logger.addHandler(sh) #把对象加到logger里
        self.logger.addHandler(th)


log=Logger(logname=pywinauto,filename=pywinauto.log,)

app = Application(backend=uia).start(rmspaint.exe)
#dlg = app.window(title=‘无标题-画图‘)
dlg = app.window(title_re=.* - 画图)
#dlg=app[‘无标题-画图‘]
#app[‘无标题-画图‘].draw_outline()
dlg.draw_outline()
time.sleep(1)
dlg.print_control_identifiers()
dlg[“文件”选项卡].click()
time.sleep(1)
dlg.child_window(title=打开, control_type=MenuItem, found_index=0).invoke()
time.sleep(1)
# handle Open dialog
file_name_edit = dlg[打开Dialog].child_window(title="文件名(N):", control_type="Edit")
time.sleep(1)
file_name_edit.set_text(rD:pythonstudy2018-4-161.png)

# There are 2 Open buttons:
# dlg.Open.Open.click() will call drop down list of the file name combo box.
# The child_window statement is just copied from print_control_identifiers().

#dlg[‘打开Dialog‘].打开Botton.click()
dlg[打开Dialog].child_window(title="打开(O)", auto_id="1", control_type="Button").click()
#new_dlg=app[‘1.png - 画图Dialog‘]
dlg.重新调整大小.click()
dlg.调整大小和扭曲.像素.select()
if dlg.调整大小和扭曲.保持纵横比.get_toggle_state() != 1:
    dlg.调整大小和扭曲.保持纵横比.toggle()
dlg.调整大小和扭曲.child_window(title="水平(H):", control_type="Edit").set_text(90)
dlg.调整大小和扭曲.确定.click()
# Select menu "File->Save as->PNG picture"
dlg[“文件”选项卡].click()
dlg.child_window(title="另存为", found_index=1).invoke()
dlg[保存为].child_window(title=文件名:,control_type="Edit").set_text(test.png)
dlg[保存为].保存.click()
if dlg.确认另存为.exists():
    dlg.确认另存为.是.click()
# Close application
dlg.close()
View Code

 

>>>>>>待续

以上是关于pywinauto进阶练习的主要内容,如果未能解决你的问题,请参考以下文章

我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?

C语言进阶学习笔记二指针的进阶(重点必看+代码演示+练习)

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

pywinauto 使用

Pywinauto使用方法

C语言进阶学习笔记二指针的进阶(重点必看+代码图解+练习)