zoukankan      html  css  js  c++  java
  • AutoIt操作Windows GUI实现文件上传

     AutoIt

     一个使用类似BASIC脚本语言的免费软件,用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。

    官方网站: https://www.autoitscript.com/site/

    从网站上下载AutoIt并安装:

         

    • AutoIt Windows Info      用于帮助我们识Windows控件信息
    • Compile Script to.exe     用于将AutoIt生成exe执行文件
    • Run Script                    用于执行AutoIt脚本
    • SciTE Script Editor        用于编写AutoIt脚本


    以操作上传弹出的窗口为例:

    1、首先打开AutoIt Windows Info工具,鼠标点击Finder Tool,鼠标将变成一个小风扇形状的图标,按住鼠标左键拖动到需要识别的控件上:

    输入框:

         

    打开按钮:

          

    通过AutoIt Windows Info获得以下信息:

    • 窗口的title为“选择要加载的文件” ;标题的 Class 为“#32770” 
    • 文件名输入框的class为“Edit”;Instance为“1”,所以ClassnameNN为“Edit1” 
    • 打开按钮的class为“Button”;Instance为“1”,所以ClassnameNN为“Button1” 

    2、根据AutoIt Windows Info所识别到的控件信息打开SciTE Script Editor编辑器,编写脚本:

    ;ControlFocus("title","text",controlID) Edit1=Edit instance 1
    ControlFocus("选择要加载的文件", "","Edit1")
    ; Wait 10 seconds for the Upload window to appear
    WinWait("[CLASS:#32770]","",10)
    ; Set the File name text on the Edit field
    ControlSetText("选择要加载的文件", "", "Edit1", "D:\upload_file.txt")
    Sleep(2000)
    ; Click on the Open button
    ControlClick("选择要加载的文件", "","Button1");

    脚本说明:

    • ControlFocus()方法用于识别Window窗口。
    • WinWait()设置10秒钟用于等待窗口的显示
    • ControlSetText()用于向“文件名” 输入框内输入本地文件的路径。
    • Sleep(2000)表示固定休眠2000毫秒。
    • ControlClick()用于点击上传窗口中的“打开” 按钮。

    可以通过菜单栏“Tools” -->“Go” (或按键盘 F5)来运行脚本(注意在运行时上传窗口当前处于打开状态)

    3、脚本运行正常,将其保存为upfile.au3,这里保存的脚本可以通过Run Script工具将其打开运行,但我们的目的是希望这个脚本被Python程序调用, 那么就需要将其生成exe程序。打开 Compile Script to.exe工具,将其生成为exe可执行文件:

         

    点击“Browse”选择upfile.au3文件,点击“Convert” 按钮将其生成为 upfile.exe 程序。

    4、至此就可以通过自动化测试脚本调用upfile.exe程序实现上传了,python脚本调用片段:

    #点击打开上传窗口
    driver.find_element_by_name("file"). click()
    #调用 upfile.exe 上传程序
    os.system("D:\upfile.exe")
  • 相关阅读:
    微信小程序HTTPS
    微信商城-1简介
    va_list
    Event log c++ sample.
    EVENT LOGGING
    Analyze Program Runtime Stack
    unknow table alarmtemp error when drop database (mysql)
    This application has request the Runtime to terminate it in an unusual way.
    How to check if Visual Studio 2005 SP1 is installed
    SetUnhandledExceptionFilter
  • 原文地址:https://www.cnblogs.com/yezhaohui/p/4533344.html
Copyright © 2011-2022 走看看