• windows gui测试工具:AutoIt


    windows gui测试工具:AutoIt

    2017-01-09

    目录

    1 简介
    2 示例1 记事本自动化操作
    3 示例2 上传文件

    1 简介


     返回

    AutoIt v3 是用以编写并生成具有 BASIC 语言风格的脚本程序的免费软件, 它被设计用来在Windows GUI(用户界面)中进行自动操作。AutoIt 最初是为PC(个人电脑)的"批量处理"而设计, 用于对数千台PC进行(同样的)配置. 现在,autoit是一个支持复杂表达式,自定义函数,循环等的强大脚本软件。

    • AutoIt3.chm:帮助文档
    • AutoIt:窗口信息工具
    • SciTE.exe:脚本编辑器,可编辑、编译运行脚本
    • AutoIt3.exe:脚本运行器,是一个非常小并且独立的应用程序,完全不依赖像 .net 或者 vb 使用的厚重的运行库. 所有您需要运行的脚本都能使用主程序执行
    • Aut2Exe:脚本编译器,进行编码后转化成独立的可执行文件

    2 示例1 记事本自动化操作


     返回

    自动化操作代码'OperateNotepad.au3':

    Run("notepad.exe")
    WinWaitActive("无标题 - 记事本")
    Send("This is some text.")
    WinClose("无标题 - 记事本")
    WinWaitActive("记事本", "保存(&S)")
    ;WinWaitActive("Notepad", "Do you want to save") ; When running under Windows XP
    Send("!n")

    抓取窗口信息

    图1 抓取窗口信息

     AutoIt脚本转化成可执行文件

    图2 AutoIt脚本转化成可执行文件

    3 示例2 上传文件


     返回

    当上传控件不是input元素,而是桌面窗口,这个时候利用Selenium的sendkeys方法是行不通的。可以用autoIt来操作。

    被测网页代码'upload.html':

    <body>
    <input type="file" id="fileControl" value="选择文件"/>
    </body>

    自动化操作代码'uploadFile.au3':

    ;first make sure the number of arguments passed into the scripts is more than 1
    If $CmdLine[0]<2 Then Exit EndIf ;if parmas num <2 ,then break
    ;$CmdLine[0] ;参数的数量
    ;$CmdLine[1] ;第一个参数 (脚本名称后面)
    ;$CmdLine[2] ;第二个参数
    ;都是从cmd传入参数
     handleUpload($CmdLine[1],$CmdLine[2])
    
    ;定义上传函数,有两个参数,第一个是浏览器名字,第二参数是文件路径
     Func handleUpload($browser, $uploadfile)
         Dim $title                          ;定义一个title变量
                ;根据弹窗的title来判断是什么浏览器
                If $browser="ie" Then                          ; 代表IE浏览器
                      $title="选择要加载的文件"
                ElseIf $browser="chrome" Then               ; 代表谷歌浏览器
                     $title="打开"
                ElseIf    $browser="firefox" Then             ; 代表火狐浏览器
                      $title="文件上传"
                EndIf
    
                if WinWait($title,"",4) Then ;等待弹出出现,最大等待时间是4秒
                       WinActivate($title)                  ;找到弹出窗口之后,激活当前窗口
                       ControlSetText($title,"","Edit1",$uploadfile)   ;把文件路径放入输入框
                       ControlClick($title,"","Button1")                ;点击保存或者打开或者上传按钮
                Else
                Return False
                EndIf
     EndFunc

    操作

    1. 把'uploadFile.au3'转化成'uploadFile.exe''
    2. 用ie打开被测网页代码'upload.html',并点击'浏览'元素,系统自动打开桌面浏览窗口,如下图3所示
    3. 打开cmd.exe窗口,输入以下命令,按回车执行,结果如下图所示
    "D:TestUploadFileWithAutoituploadFile.exe" "ie" "D:TestUploadFileWithAutoit1.png"

    图3 点击‘浏览...’按钮,打开浏览桌面窗口 

    图4 上传后结果

    Java调用Upload.exe代码:

    public void handleUpload(String browser, File file) {
        String filePath= file.getAbsolutePath();
        String executeFile= "D:\TestUploadFileWithAutoit\UploadFile.exe"; 
        String cmd= """+ executeFile+ """+ " "+ """+ browser+ """+ " "+ """+ filePath+ """;
        try{
            Process p= Runtime.getRuntime().exec(cmd);
            p.waitFor();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
  • 相关阅读:
    IIS配置(持续更新中...)
    T-SQL Table-valued Function使用分隔符将字符串转换为表
    英语中的时态
    网页内容扫描器
    20145223 杨梦云 《网络对抗》 Web安全基础实践
    20145223 杨梦云 《网络对抗》 Web基础
    20145223 杨梦云 《网络对抗》 网络欺诈技术防范
    20145223 杨梦云 《网络对抗》 信息搜集与漏洞扫描
    20145223 杨梦云 《网络对抗》 MSF基础应用
    20145223 杨梦云 《网络对抗》恶意代码分析
  • 原文地址:https://www.cnblogs.com/Ming8006/p/6264155.html
Copyright © 2020-2023  润新知