zoukankan      html  css  js  c++  java
  • python+AutoIT实现UI自动化上传图片

    1、前言

    需求:UI自动化上传本地图片

    AutoIT官网:https://www.autoitscript.com/site/autoit/,下载进行安装(ps:跟其他软件一样点击下一步执行安装即可)

    安装完成如下图,有这几个图标:

    2、识别控件

    在本机电脑查找打开此图标,步骤如下:

    1)识别文件框,长按拖拽Finder Tool图标进行识别,具体如下图:

    可在【Window】tab查看Title和Class,在【Control】tab查看ClassnameNN(ps:后续编写脚本需要用到)

    2、识别打开按钮

    可在【Window】tab查看Title,在【Control】tab查看ClassnameNN(ps:后续编写脚本需要用到)

     3、编写脚本

    在本机电脑查找打开此图标,用来编写脚本

     编写脚本,格式如下:

    #聚焦打开窗口
    ControlFocus ( "打开", "", "Edit1")  
    #暂停脚本直至指定窗口出现
    WinWait("[CLASS:#32770]","",10)
    #填充图片地址
    ControlSetText("打开","","Edit1","C:Users
    mtDesktop	img.jpg")
    #延时
    Sleep(2000)
    #点击打开按钮
    ControlClick("打开","","Button1")
    

     语法格式注释:

    WinActivate("title")                             #聚焦到指定活动窗口
    ControlFocus ( "title", "窗口文本", controlID)            #设置输入焦点到指定窗口的某个控件上;
    WinWait ( "title" , "窗口文本" , 超时时间 )              #暂停脚本的执行直至指定窗口存在(出现)为止;
    ControlSetText ( "title", "窗口文本", controlID, "新文本" )     #修改指定控件的文本;
    Sleep ( 延迟 )   #使脚本暂停指定时间,单位是毫秒;
    ControlClick ( "title", "窗口文本", 控件ID , 按钮 , 点击次数 )   #向指定控件发送鼠标点击命令;

    编写完成后按F5运行脚本,如没报错可看到成功上传图片(用此来验证脚本是否有错误):

    注意!!!前提上传照片的窗口已经打开

    3)将本地图片地址设置动态参数,在python调用时进行传入,方便后续更改图片,修改脚本为:

    #聚焦打开窗口
    ControlFocus ( "打开", "", "Edit1")
    #暂停脚本直至指定窗口出现
    WinWait("[CLASS:#32770]","",10)
    #填充图片地址,$CmdLine[1]代表exe执行时的动态参数
    ControlSetText("打开","","Edit1",$CmdLine[1])
    #延时
    Sleep(2000)
    #点击打开按钮
    ControlClick("打开","","Button1")

    4、编译exe文件

     在本机电脑打开此图标,将脚本编译成exe文件

     选择路径,点击convert完成编译,如下图:

     5、python调用

    import os
    image_path = r'C:Users
    mtDesktop	img.jpg'   #本地图片路径
    os.system(r'C:Users
    mtDesktopupload_img.exe {}'.format(image_path))    #cmd调用exe文件

    至此,成功实现UI自动化上传本地图片

  • 相关阅读:
    hibernate中session的获取使用以及其他注意事项
    博文收集
    struts1标签-<html:radio> 使用注意事项
    HTTP 状态码含义
    基于eclipse搭建android开发环境-win7 32bit
    MySQL数据库之数据类型
    mysql数据库之基本增删改查
    mysql数据库之表的操作
    协程(单线程实现并发)
    线程
  • 原文地址:https://www.cnblogs.com/nimantou/p/14866337.html
Copyright © 2011-2022 走看看