autoit3学习笔记

摘要:
2) 有必要遵循下面的睡眠,因为单击_否。等待执行速度很快,稍后自动执行速度更快。如果你不睡觉,在窗口弹出之前,autoit已经被执行,所以你需要添加睡眠,“测试结果:”);}脚本>水处理对话框 测试内容inputtype=“button”name=“alterbutton”value=“测试更改对话框”onclick=“clickbutton;”/> 提示对话框 确认对话框box

一.autoit下载地址:

http://www.autoitx.com/thread-12964-1-1.html?sid=4zMMSb

二.默认安装

三.使用:

1.在autoit的安装目录下有个Au3Info.exe文件,该文件可以查看windows控件的信息,包括控件ID,类别名,高级模式,控件点击坐标等

   用途是在操作控件函数的参数查询,如:ControlClick ( "标题", "文本", 控件ID [, 按钮 [, 点击次数 [, X坐标 [, Y坐标 ]]]] ),这里面就需要用到Au3Info.exe去查询

2.结合watir进行使用时需注意的地方

require 'win32ole'
require 'watir/windowhelper'
require 'watir'   
@autoit = WIN32OLE.new("AutoItX3.Control")
@ie =   Watir::IE.new
@ie.goto("D:\\test.html")
@ie.maximize()
@ie.file_field(:type,'file').click_no_wait
sleep(3)
@autoit.WinWaitActive("选择文件",'')
@autoit.ControlClick("选择文件",'','ToolbarWindow322',50,180)
sleep(1)
@autoit.ControlClick("选择文件",'','Button3')
sleep(1s)
@ie.close

1)在@ie.file_field(:type,'file').click_no_wait这里用到了click_no_wait而没有用click,是因为click之后,就会被挡在那里,你后面的auto..根本就没有执行。

2)而在下面接着sleep(3)是很有必要的,因为click_no_wait执行速度很快,后面的autoit更快。如果不sleep,你窗口还没有弹出来前,autoit已经执行完了,所以才要加一个sleep。

3)ControlClick这个函数中,前三个参数是必需的,后面的参数是可选的,其中第三个参数即可以控件ID,也可以是类别名

4)如果文件运行之后报错:uninitialized constant Autoit (NameError)
  这个是因为你安装的watir时,AutoItX3.dll没装好,需要手工注册下的,
    先看下下面目录下文件是否存在,c:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir\AutoItX3.dll
    存在的话,再在windows运行输入框中运行下面的命令进行手工注册,试下看:
    regsvr32.exe c:\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir\AutoItX3.dll

附加上test.html的代码

<html>
  <head>
    <title>watir处理对话框</title>
     <script language= "javascript" type="text/javascript">
            function clickbutton(flag)
            {
                if (flag == 1) alert("测试alter对话框");
                if (flag == 2) prompt("测试prompt对话框");
                if (flag == 3) confirm('测试confirm对话框', '测试confirm对话框?',"测试结果:"); 
            }
        </script>
    </head>
    
    <body>
        <center>
        <H1>watir处理对话框<H1>
        <hr>
        
        <table border ="2">
            <tr>
                <th bgcolor = "#aaaaaa">测试内容</th>
                <th bgcolor = "#aaaaaa">操作</th>
            </tr>
        
            <tr>
                <td>文件上传</td>
                <td><input type="file" name="attach[]" /></td>
            </tr>
            
            <tr>
                <td>alter对话框</td>
                <td> 
                    <input type="button" name="alterbutton" value="测试alter对话框"  onclick = "clickbutton(1);" />
                </td>
            </tr>
            
            <tr>
                <td>prompt对话框</td>
                <td> 
                    <input type="button" name="promptbutton" value="测试prompt对话框"  onclick = "clickbutton(2);" />
                </td>
            </tr>
            
            <tr>
                <td>confirm对话框</td>
                <td> 
                    <input type="button" name="confirmbutton" value="测试confirm对话框"  onclick = "clickbutton(3);" />
                </td>
            </tr>
            
            </table>
        </center>
    </body>
</html>

免责声明:文章转载自《autoit3学习笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第15章-解释器及解释器生成器Vim简明教程【CoolShell】下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Pandas dataframe数据写入文件和数据库

 Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作,DataFrame是一张多维的表,大家可以把它想象成一张Excel表单或者Sql表。之前这篇文章已经介绍了从各种数据源将原始数据载入到dataframe中,这篇文件介绍怎么将处理好的dataframe中的数据写入到文件和数据库中。 ...

ASP.NET Dynamic Data Part.2(自定义动态数据网站)

必须强调 3 点: 动态数据项目是基于 ASP.NET 构建的 动态数据依赖于一系列的模板,它们用于显示和编辑数据 动态数据应用中的一切都是可以进行自定义的 有很多方式可用来扩展、修改以及调整动态数据应用程序,因此,有时候对它们的选择会很困难。 使用模板进行自定义 模板是动态数据应用程序的核心。我将演示使用模板自定义数据被如何呈现到客户端的几个不同方式...

jQuery+Ajax用户登录功能的实现

前几天把jbox源码修改成仿QQ空间模拟窗口后发现有很多人在关注。今天就贴一下我利用该模拟窗口实现的用户登录功能的代码。ok,先来贴几张张效果图。   其中大致流程是用户点击页面右上角的登录链接接着弹出div模拟窗口,该窗口通过iframe调用Login.aspx页面,用户输入用户名 密码和验证码后,Login.aspx页面的jQuery代码post到L...

NPOI导出EXCEL数据量大,分多个sheet显示数据

//NPOIHelper  类关键代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.IO;using NPOI.HSSF.UserModel;using System.Coll...

对Ul下的li标签执行点击事件——如何获取你所点击的标签

问题所来:做项目时,一般的数据都是用循环动态加载出来的,结构都是一样的,只是绑定的值不同,如何对相同的标签做处理的问题就来了。 例如:点谁就显示谁的数值 <ul id="test"> <li class="test">1</li> <li class="test">2</li> <li cl...