AutoIt入门与提高
- 格式:pdf
- 大小:685.42 KB
- 文档页数:76
autoit轻松入门系列autoit轻松入门系列1作者:yonken前言:据我了解需要编写AutoHotkey/AutoIt脚本来实现自动化操作的用户很多都是网管,其它则可能是一些个人用户,他们一般都具有相当的技术水平,而且都希望能借助脚本来完成某些以往需要人工操作的重复性劳动,但限于语言条件上的限制可能对官方的帮助文档有较难理解之处。
为方便读者,我将从最简单的说起,每个示例尽可能同时给出相应的AHK 和AU3版本代码。
本文将尽可能用较通俗的语言描述,但并不打算讲解语法基础,所以不一定适合新手阅读。
文中涉及到的AHK/AU3版本:AutoHotkey1.0.44.08AutoIt3.1.1一、关于脚本1、什么是脚本?这是个非常“流行”的术语了,通俗而言脚本(Script)一般都是指根据某种语法规则编写的具有特定格式的文本文件。
可能大家已经听说过很多种脚本:VBScript、JScript、PHP、ASP、JSP、CGI、CS脚本,甚至游戏外挂脚本。
这些脚本文件都是可执行文件,可执行相应的操作。
AHK 脚本文件扩展名:*.ahkAU3 脚本文件扩展名:*.au32、脚本和程序的不同?严格来说,所谓“程序”就是指以各种编程语言(比如说C/C++/C#/Delphi)编写、由编译器编译好后的二进制文件,一般就是机器代码,可由系统执行。
而脚本则是只是些纯文本文件,包含了各种定义好的命令,这一点很像批处理文件。
这样,我们得出一个简单的结论,那就是用户一般无法获得“程序”的源代码,我们只能进行反汇编把它逆向还原为汇编语言代码(或其它),当然,也有些“程序”是可以获得源代码的(比如Java);脚本则是用户可直接查看的代码文件,而AHK/AU3则提供了把脚本文件“转换”成exe文件的方法。
3、脚本如何运行?脚本是“解释性”的语言,它的运行依赖一个“解释器”,由这个解释器来“翻译并解释”脚本的每条命令(或者说代码),然后执行相应操作。
python autoit 用法AutoIt是一种基于脚本语言的自动化工具,广泛应用于Windows操作系统下的GUI自动化和任务自动化。
它具有简单易学、功能强大和兼容性好等特点,特别适用于需要模拟键盘、鼠标操作的自动化任务。
本文将为读者详细介绍AutoIt的使用方法,包括安装、脚本编写、GUI自动化和任务自动化等内容。
第一部分:AutoIt的安装和配置1. 下载AutoIt软件包:读者可以在AutoIt官方网站(2. 安装AutoIt:下载完成后,双击安装包进行安装。
按照默认设置一路“下一步”即可完成安装过程。
3. 配置AutoIt开发环境:安装完成后,打开AutoIt的安装目录,并找到"SciTE"文件夹,双击其中的"SciTE.exe"文件打开AutoIt编辑器。
在编辑器的工具栏中选择"Options"->"Open Au3.properties",在打开的配置文件中添加以下内容:.1.[Run]command.1.[Run]=C:\Program Files (x86)\AutoIt3\AutoIt3.exe "(FilePath)"这样可以在编辑器中添加一个名为"[Run]"的菜单项,方便后续运行脚本。
第二部分:AutoIt脚本编写与调试1. 新建脚本:在AutoIt编辑器中,选择"File"->"New"新建一个空白脚本。
脚本文件以".au3"为后缀名。
2. 编写脚本:使用AutoIt的脚本语法,编写需要自动化的任务。
例如,下面的示例代码用于打开记事本应用并输入一段文本:Run("notepad.exe")WinWaitActive("Untitled - Notepad")Send("Hello World!")Sleep(2000)Send("!f")Send("x")以上代码首先调用Run函数打开记事本应用,然后使用WinWaitActive函数等待记事本窗口被激活。
autoit使用方法Autoit在是一款非常流行的自动化软件,它可以帮助用户完成一些复杂的操作,如鼠标的移动,窗口的调整等等,使用者可以利用它构建一些便捷的宏,以节省时间。
在本文中,我们将介绍Autoit何使用,以及它的一些实用功能。
首先, Autoit 介绍,它是一款 Windows程语言,可以帮助用户编写自动化脚本,具有强大的编程能力,可以让用户完成许多复杂的自动化任务。
它是一款基于windows图形界面的脚本语言,可以控制鼠标和键盘,让脚本自动运行,也可以读取和控制窗口,让程序更灵活,更容易操作。
其次,Autoit有两个特殊功能,其中一个是自动选择窗口和元素,这是一种非常实用的功能,可以帮助用户自动检测鼠标活动的位置,自动选择这些窗口,从而节省输入的时间;另一个是实时脚本执行,也是一种非常实用的功能,可以让用户在编写脚本的同时,脚本就可以实时运行,方便用户检测脚本正确性和完整性。
此外, Autoit提供了强大的调试功能,用户可以在编写脚本的同时,可以方便的使用提供的调试工具,以便检测脚本的正确性,可以根据调试工具的提示,第一时间纠正编写脚本的问题,从而提高脚本的运行效率。
最后,Autoit还支持第三方应用程序的扩展,通过第三方的应用程序,可以让 Autoit功能更加强大,更加实用,比如可以制作各种脚本,实现鼠标、键盘操作,制作出更加强大、实用的 Autoit本。
总之, Autoit一款非常强大的脚本语言,可以帮助用户完成复杂的自动化任务,它有强大的编程能力,可以控制鼠标和键盘,支持窗口和元素的自动选择,实时脚本执行,和强大的调试功能,还支持第三方应用程序的扩展,以便实现更多的高级功能。
Autoit 使用起来非常简单,可以实现复杂的自动化任务,为节省时间和精力提供可靠的帮助。
2008年的时候第一次接触AutoIt,当时觉得局限性太多了,就不想学,觉得把Watir,Ruby搞好就行了。
最近一段时间比较闲,发现自己对GUI的自动化操完全是短板,就把AutoIt重新拾起来了。
不再考虑什么局限性了,想着,反正现在,GUI自动化操作我啥也不会,学习了解一下总是好的。
也许是先入为主的想法太严重了,我对Send,controlSend命令是有偏见的,觉得定位能力差,一旦一个界面不是在前端就定位不了。
习惯性的使用controlClick,ControlCommand,ControlSetText命令。
但是当使用AutoIt脚本越来越多,我发现,AutoIt自动化操作的短板就出来了,很多GUI 元素定位不了,根本无法操作。
ControlClick虽然也能够在页面上某特定位置点击,但是也需要页面在前端,比较ControlClick与Send命令的效率,ControlClick失败的几率较高。
在有限的资源条件下,controlFocus之后,使用Send发送键盘命令,能够很好的操作很多无法操作的控件。
假设我们现在要做一件事:获取如下图(AutoIt帮助文档)左侧展示框中所有的关键字:该控件不是标准控件,不能使用AutoIt的标准命令获取左侧关键字列表。
以下,我们就尝试分别用controlClick 和Send命令获取所有的关键字,代码如下:Func mouse_click();获取帮助文档的窗口句柄$handle = WinGetHandle("AutoIt Help")WinActivate($handle);获取帮助文档左侧关键字展示框句柄$control_handle = ControlGetHandle($handle,"","hh_kwd_vlist1");用尺子量了之后,发现每个关键字的高度是12pix$i = 12while1;因为页面中有滚动条,当前页最后一个关键字所在的坐标位置(相对位置)为(50, 515),所以我把515作为比较,;当小于515的时候是直接点击关键字,然后从关键字展示框获取关键字信息;当大于515的时候,需要用鼠标双击/单击(50,515)的位置,会有一个关键字冒出来,我们就把这个关键字获取了if $i < 515ThenControlClick($handle,"",$control_handle,"left",2,50, $i)$text = ControlGetText($handle,"", "Edit3")ConsoleWrite($text & @CRLF)$i += 12Else$text = ControlGetText($handle,"", "Edit3")ConsoleWrite($text & @CRLF)ControlClick($handle,"",$control_handle,"left",2,50,515)$text2 = ControlGetText($handle,"", "Edit3")if $text2 = $text ThenExitLoopElseControlClick($handle,"",$control_handle,"left",2,50,515)EndIfEndIfWEndEndFunc;发送键盘快捷键Func send_key_click()$handle = WinGetHandle("AutoIt Help")WinActivate($handle)$control_handle = ControlGetHandle($handle,"","hh_kwd_vlist1");先把鼠标的焦点落在关键字输入框中,然后使用键盘的Tab键,把焦点移动到左侧关键字列表中ControlFocus($handle,"", "Edit3")Send("{TAB}");发送一个tab键,就抓取一个关键字,直到两次Tab之间,再也无法获取不同的关键字为止While1$text = ControlGetText($handle,"", "Edit3")ConsoleWrite($text & @CRLF)send("{DOWN}")$text2 = ControlGetText($handle,"", "Edit3")if $text2 = $text ThenExitLoopElsesend("{DOWN}")ConsoleWrite($text2 & @CRLF)EndIfWEndEndFuncmouse_click()最后都能操作成功,把获取的关键字拷贝到Excel中,取Uniq值,然后比较一下,发现:使用Send命令获取的关键字比ControlClick的位置点击名多的多。
据我了解需要编写AutoHotkey/AutoIt脚本来实现自动化操作的用户很多都是网管,其它则可能是一些个人用户,他们一般都具有相当的技术水平,而且都希望能借助脚本来完成某些以往需要人工操作的重复性劳动,但限于语言条件上的限制可能对官方的帮助文档有较难理解之处。
为方便读者,我将从最简单的说起,每个示例尽可能同时给出相应的AHK和AU3版本代码。
本文将尽可能用较通俗的语言描述,但并不打算讲解语法基础,所以不一定适合新手阅读。
文中涉及到的AHK/AU3版本:AutoHotkey1.0.44 .08AutoIt3.1.1一、关于脚本1、什么是脚本?这是个非常“流行”的术语了,通俗而言脚本(Script)一般都是指根据某种语法规则编写的具有特定格式的文本文件。
可能大家已经听说过很多种脚本:VBScript、JScript、PHP、ASP、JSP、CGI、CS脚本,甚至游戏外挂脚本。
这些脚本文件都是可执行文件,可执行相应的操作。
AHK 脚本文件扩展名:*.ahkAU3 脚本文件扩展名:*.au32、脚本和程序的不同?严格来说,所谓“程序”就是指以各种编程语言(比如说C/C++/C#/Delphi)编写、由编译器编译好后的二进制文件,一般就是机器代码,可由系统执行。
而脚本则是只是些纯文本文件,包含了各种定义好的命令,这一点很像批处理文件。
这样,我们得出一个简单的结论,那就是用户一般无法获得“程序”的源代码,我们只能进行反汇编把它逆向还原为汇编语言代码(或其它),当然,也有些“程序” 是可以获得源代码的(比如Java);脚本则是用户可直接查看的代码文件,而AHK/AU3则提供了把脚本文件“转换”成exe文件的方法。
3、脚本如何运行?脚本是“解释性”的语言,它的运行依赖一个“解释器”,由这个解释器来“翻译并解释”脚本的每条命令(或者说代码),然后执行相应操作。
如果不严格定义的话,HTML和Java都可以认为是解释性语言。
AutoCAD学习技巧
1、从入门到精通:首先,你要明确自己的目的,比如要学习AutoCAD的基础知识,则可以熟悉菜单栏和工具栏。
2、熟悉工具栏:由于AutoCAD有很多功能,为了提高效率,我们可以使用工具栏,通过快捷键和短语快速操作,让绘图变得更加高效。
3、注意在绘图之前,最好建立图框确定绘图范围,确定绘图单位,以免造成浪费。
4、使用命令:AutoCAD使用命令提高操作效率。
如果需要插入某张图片,可以通过输入“insert”命令来实现,从而节省空间。
5、掌握基础命令:掌握AutoCAD的基础命令对于提高学习效率来说尤为重要。
常用的命令包括“copy”,“erase”等,可以让我们快速的完成绘图任务。
6、使用快捷键:使用这些经常使用的命令可以通过键盘来实现,这样可以节省绘图时间和劳动强度,大大提高制图效率。
7、多练习:AutoCAD当中有很多工具,为了更好的掌握AutoCAD,要多练习,多动手实践,将书本上的理论知识结合到实际操作当中。
8、学会修改图形:学会编辑,比如将一个图形缩放,切割,旋转等操作,能有效提升AutoCAD学习的效率。
9、学习专业知识:AutoCAD是一种面向专业人士的软件,所以从事专业工作的时候,还要熟悉专业知识和应用相关知识,以此来提高学习效率。
10、实践为主:AutoCAD是一种实用性很强的应用软件,能够模拟实际情况,所以要学习这门软件,最好的方法就是多实践,结合实际情况进行练习。
目 录第一章、AutoIt 初步 (3)第一节、为什么要学习 AutoIt (4)第一个问题,为什么要学习编程? (4)第二个问题,为什么要学习 AutoIt? (4)第三个问题,AutoIt 的优势在哪里? (4)第二节、AutoIt 的使用 (5)1、AutoIt 的安装 (5)2、我们的第一个 AutoIt 程序 (5)3、编译 AutoIt 程序 (6)第二章、AutoIt 基础 (7)第一节、常量与变量 (8)1、常量 (8)2、变量 (8)3、常量与变量共同的使用规则 (9)第二节、数据类型 (9)1、数值型数据 (9)2、字符(串)型数据 (10)3、布尔类型数据 (10)第三节、算数运算相关 (11)1、算数运算符 (11)2、算数运算相关函数 (11)第三章、顺序结构程序设计 (13)第一节、AutoIt 中的数据输出 (14)第二节、AutoIt 中的数据输入 (16)第三节、AutoIt 中的赋值运算 (18)第四节、顺序结构程序设计实例 (18)第四章、选择结构程序设计 (21)第一节、逻辑运算和关系运算 (22)第二节、If...Then...Else语句 (23)第三节、Select...Case与 Switch...Case语句.. (25)1、 “Select...Case”语句 (25)2、 “Switch...Case”语句. (26)第四节、选择结构程序设计实例 (27)第五章、循环结构程序设计 (30)第一节、“While...WEnd”循环.. (31)第二节、“Do...Until”循环. (32)第三节、“For...Next”循环. (33)第四节、循环的嵌套 (34)第五节、循环结构程序设计实例 (35)第六章、字符串 (39)第一节、字符串型数据 (40)1、字符串变量的定义与赋值 (40)2、字符串数据的连接 (40)3、关于字符串的宏 (41)第二节、ASCII (42)第三节、字符串相关函数 (43)第七章、数组 (46)第一节、一维数组 (47)第二节、二维数组 (49)第三节、数组应用实例 (50)第八章、函数 (58)第一节、函数的一般形式 (59)1、函数的定义 (59)2、函数的参数 (59)3、数组做函数参数 (60)4、参数的“值传递”与“址传递” (61)第二节、变量的作用域 (63)1、局部变量 (63)2、全局变量 (63)3、变量的作用范围 (64)第三节、函数的嵌套与递归 (65)1、函数的嵌套 (65)2、函数的递归 (66)第一章、AutoIt 初步在本章中,我们将与您一起初步接触 AutoIt。
autoit教程2篇
AutoIt是一种基于Windows操作系统的脚本语言,它旨在简化自动化任务的编写和执行过程。
本教程将分为两篇文章,在这两篇文章中,您将了解AutoIt的基础知识和常见应用。
第一篇文章将重点介绍AutoIt的基本概念和语法。
我们将从AutoIt的起源讲起,讨论它是如何诞生并发展成为一种流行的脚本语言的。
接着,我们会介绍AutoIt的基本语法和数据类型,包括变量、数组、字符串和控制结构。
通过这些基本概念的学习,您将能够编写简单的自动化脚本来执行各种任务。
第二篇文章将更进一步,讨论AutoIt的高级功能和常见应用。
我们将介绍AutoIt的图形用户界面和窗口管理功能,包括控件操作、窗口搜索和处理用户输入。
此外,我们还将探讨AutoIt在文件和目录操作、网络通信和系统管理等方面的应用。
通过掌握这些高级功能,您将能够编写更复杂和实用的自动化脚本,提高工作效率。
值得注意的是,AutoIt虽然功能强大,但也有其局限性。
我们将在文章中提及一些限制和注意事项,以帮助您更好地理解和应用AutoIt。
此外,我们还将分享一些学习AutoIt的资源和技巧,帮助您更快地上手和解决问题。
总结起来,本教程的两篇文章将帮助您了解和掌握AutoIt的基础知识和高级功能。
通过学习这些内容,您将能够编写灵活、高效的自动化脚本,提高工作效率。
接下来,请直接阅读第一篇文章,开始您的AutoIt之旅!。
autoit使用方法AutoIt一款功能强大的、可以自动模拟用户进行操作的Windows 本语言。
它可以用来自动运行程序和模拟用户的操作,可以实现大量重复性工作的自动化,可以利用脚本语言的强大功能,来实现复杂的系统管理任务和多种功能。
AutoIt够使用文本字符串来表示滑鼠和键盘操作,它简单易用而且易于学习。
它在Windows应用程序开发中,可以用来对被测应用程序进行操作,可以帮助测试人员发现潜在错误。
下面介绍AutoIt的使用方法。
1.安装AutoIt要使用AutoIt脚本,首先需要安装AutoIt编译器。
可以从AutoIt 官方网站下载安装,安装后就可以开始使用AutoIt了。
2.创建脚本文件打开AutoIt编辑器,创建脚本文件,脚本文件可以是.au3格式,也可以是文本文件,只要文件后缀名为.au3就行。
3.编写脚本在AutoIt编辑器中,可以使用AutoIt语法进行编写脚本。
AutoIt 支持使用AutoIt脚本语言来模拟用户操作,它支持诸如发送键盘输入、模拟鼠标操作等操作。
4.编译脚本编写完脚本后,就可以编译执行了。
在AutoIt编辑器中,可以点击文件菜单中的“编译”选项,编译脚本文件生成可执行文件。
5.执行脚本可以在AutoIt编辑器中运行脚本,也可以使用命令行窗口来执行,命令格式为:AutoIt3.exe [filename] 。
执行完脚本后,就可以看到执行结果了。
以上就是AutoIt的使用方法,AutoIt可以大大提高工作效率,可以将重复性的任务自动化,可以实现自动模拟用户操作,有助于发现系统潜在错误,AutoIt实用性极强,值得广泛使用。
AUTOIT教程一、制作目的和原则说到自动安装,其目的就是模拟手动操作,自动完成对指定按键的点击和输入指定内容,处理可能出现的情况,最终完成程序的安装和设置。
也许有人说这样就明白了,用AutoIt里的MouseClick、Send来完成点击和输入,只要抓好点击的坐标就一切搞定了啊!这当然不能说不是个办法,但做出来的成品可能只能在你自己的电脑上能用,说不定下一次你自己也没法用了。
因为每个人的电脑是不一样的,安装窗体在不同分辨率下的位置也是不一样的,如果用这样做的脚本在别人电脑上操作,就会看到鼠标经过N次狂奔后,打开了M个窗口,却没有点到你要的东西(用来整人倒不错)。
我们的目的是让脚本能有效的在其他人电脑上运行安装,处理遇到的情况,完成设置或注册等动作,然后结束。
所以制作的原则就是通用、精确和可*1、尽量少的用鼠标模拟点击的方法,实在用要也要做到保证点击坐标的可*原因上面都说了,但有时不得已用到点击坐标时怎么办呢,你先想想吧。
后面告诉你我的办法2、尽量少用sleep等待语句,而换用其它准确的时间判断语句有的朋友喜欢用sleep在一个操作后等待一下,来保证脚本的可*性,其实这却是个不可*的做法。
因为每台电脑的性能有所差异,在不同的情况下也有差异,在你的电脑上制作脚本时要停顿5秒的,在一台第旧的电脑上可能要等待20秒也不一定。
AutoIt里是有解决方法的,比如winwaitactive,winwaitclose等,再不行自己写判断啦!3、尽量考虑可能出现的情况有的程序在安装时会提出一些要求,比如需要更新什么文件或进行什么操作,而且未必在每台电脑上安装时都会出现,这就要我们在做好脚本后多在不同环境测试一下,考虑到一些常见的问题二、如何学好AutoIt对于AutoIt我也是个菜鸟,没有什么经验可谈,但我觉得有三点一定要做到1、充分利用帮助文件。
AutoIt的帮助文件写的非常详细,索引和搜索功能使它在查询上非常方便,而且每个命令最后都有例子。
autoit使用方法
AutoIt是一款用于自动控制Windows应用程序,可以通过脚本语言来实现自动系统操作的开源软件。
它可以模拟键盘鼠标,可以用来管理文件、执行程序,查找窗口、处理窗口等,是一款非常强大的自动工具。
1. 下载AutoIt
AutoIt可以从官网下载,安装AutoIt需要安装AutoIt的编译器,安装好后,在Windows环境变量里添加AutoIt的路径,以便使用AutoIt。
2. 使用AutoIt
AutoIt可以进行自动操作,可以使用脚本语言来编写脚本,控制电脑的自动动作,从而自动完成一些任务,比如模拟键盘和鼠标操作,管理文件,自动处理窗口,执行程序等。
3. AutoIt的脚本语言
AutoIt的脚本语言是一种基于语句的脚本语言,其语法是易于学习的,使用AutoIt可以更快捷的完成任务,可以省去手动操作的时间,大大提升了工作效率。
4. AutoIt的特殊函数
AutoIt的特殊函数主要有控制窗口的函数、控制鼠标和键盘的函数、文件控制函数等,用于自动控制系统,高效完成任务。
5. AutoIt实战
使用AutoIt可以完成一些实时操作,比如可以用来自动处理数
据,自动操作系统,可以实现自动化任务,提高工作效率,提升公司的运营效果。
总结
AutoIt是一款非常适合用于自动处理Windows应用程序,可以实现自动化控制,使用AutoIt可以更快捷地完成任务,大大提升工作效率,是一款非常实用的软件。
autoIT学习AutoIT的安装下载autoit v3.0最新绿⾊Beta版打开IE浏览器,来到下⾯的地址:/doc/bd6141843.html/autoit3/files/beta/autoit/Setup,是绿⾊版。
AutoIT的设置1点击菜单Options,在弹出的菜单中再点击Open User Options File如下图所⽰:然后,SciTEUser.properties⽂件会⾃动打开。
加下⾯的⼀句代码,AutoIt v3.0专⽤脚本编辑器SciTE4AutoIt3就⽀持中⽂了:[Copy to clipboard]CODE:code.page=936如下图所⽰:然后同时按下快捷键Ctrl+S保存配置。
经过上⾯的设置,脚本编辑器SciTe就⽀持中⽂了。
2 设置AutoIt v3.0的安装⽬录路径我们⽤的是AutoIt绿⾊版,AutoIt程序路径要⼿动设置。
点击菜单Options,在弹出的菜单中再点击Open au3.properties,打开au3.properties ⽂件如下图所⽰:在打开au3.properties的前⾯部分,设置如下:[Copy to clipboard]CODE:autoit3dir=D:\AutoIt如下图所⽰:设置好后,同时按下快捷键Ctrl+S保存配置。
这样,SciTE编辑器就能正确调⽤AutoIt 相关程序了。
3 设置AutoIt v3.0的缩写⽂件abbrev.properties设置好缩写⽂件后,输⼊特定字母,然后按快捷键就能⾃动扩展,AutoIt初学者⼀般⽤不到这个功能。
所以这⾥不截屏图解演⽰了,只是把步骤说明⼀下。
进⼊D:\AutoIt\SciTe⽬录,找到au3abbrev.properties,⽤SciTE或记事本打开这个⽂件,按快捷键Ctrl+A全选,按Ctrl+C复制。
关闭au3abbrev.properties。
点击菜单Options,在弹出的菜单中点击Open Abbreviations File,会⾃动打开abbrev.properties⽂件,在⽂件后⾯点击⼀下⿏标左键,按快捷键Ctrl+V把刚才复制的内容粘贴进去。
AutoIt Windows的自动化脚本问题: 现在有windows2003上的一个专用软件X,要求软件开机运行,打开UI界面,界面会弹出窗口要求输入用户和密码登陆,要求能自动输入这些信息登陆进去.1,解决开机自动运行的问题:建了一个系统账号admin,设置为开机自动登陆(方法见注1)然后把X程序的快捷方式放到admin的启动菜单下,这样系统启动之后会自动登陆这个账号,然后打开程序了2,X程序自动登陆的问题:由于X程序没有自动登录某个用户的设置,所以这个问题称为解决问题的关键:实际上是要模拟键盘输入用户名密码,然后点"登录"按钮,这要自动完成.即为此文的关键在linux上,可以使用shell等脚本语言对命令行的程序进行自动化控制.在windows上一般用批处理来进行自动化的操作.但是如何能够对GUI程序进行自动化控制,这方面的信息还比较少.问了几个高手之后,转转大哥()给我推荐了AutoIt这个脚本工具.它的官网是这么介绍它的:AutoIt v3 is a freeware BASIC-like .ing language designed for automating the Windows GUI and general .ing. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate task s in a way not possible or reliable with other languages (e.g. VB. and SendKe ys).译:AutoIt是一个免费软件,是一个与BASIC类似的脚本语言,主要用于自动化windows的GU I程序和一些常规的脚本.它包括模拟敲某个键,鼠标操作,对窗口和控件的操作,达到自动化的目的,而用其他的语言或许不可能或者难办到.看来确实是我想要的东西,对GUI程序进行直接的控制,以实现自动化的目的!!!令人兴奋的字眼~下载安装都很简单,只是提醒一点,安装过程中有一步是要选择默认打开脚本文件时是运行还是编辑,对于系统管理员的习惯,当然是选编辑.然后就是看帮助文档了,此处略过不谈,由于本人任务需要,所以只挑能解决问题的部分看了.下面来说说具体过程.为了本地调试方便,我以本机上的QQ程序(我的是极速qq2008版)来模拟X程序,实现QQ的自动输入账号密码登陆.假设账号是12345,密码是abcde打开程序的编辑器,这个编辑器非常不错,具有一般集成开发工具的大部分功能.例如函数自动补完,函数用法提示,自动缩进,代码块收缩,不同颜色代码等我的代码如下(分号表示注释); 运行qq程序Run("C:\Program Files\Tencent\QQ\FinePlus.exe"); 沉睡sleep(毫秒),这是为了等用户登录的对话框出现Sleep(5000); 等待QQ用户登录的对话框WinWait("QQ用户登录"); 在"密码"框中输入密码ControlSend("QQ用户登录", "", "[CLASS:Edit; INSTANCE:12]", "abcde"); 在"用户"框中输入qq号ControlSetText("QQ用户登录", "", "[CLASS:Edit; INSTANCE:1]", "12345"); 点击"登录"按钮ControlClick("QQ用户登录", "", "[CLASS:Button; INSTANCE:11]")完成后保存文件,默认的扩展名是au3对于函数我当然不能一个个的解释用法,看帮助文件就行了.我只拿一个举例ControlSend("QQ用户登录", "", "[CLASS:Edit; INSTANCE:12]", "abcde")参数"QQ用户登录"是窗口(window)的ID参数"[CLASS:Edit; INSTANCE:12]"是控件(control)的ID,具体到这里就是qq的那个密码输入框参数"abcde",就是我要输入的内容实现的功能看函数名controlsend就知道,就是向某个控件(control)发送(send)某个指令,也就实现了敲密码的效果具体到window和control是什么意义?那就要好好看看文档了,或许还需要看一些window内幕的基础知识.而"QQ用户登录","[CLASS:Edit; INSTANCE:12]"这样的窗口和控件信息是从哪里得到的呢?见注2然后就可以调试运行了点菜单上的"Tools" -- "Go"程序就会运行,运行时,右下角的任务栏会出现一个小图标,运行结束后就消失了.如果程序出了问题卡在那了,就会图标就会一直出现,表示程序没执行完.这个时候可以点"Tools" -- "Stop exc uting"来退出.完全没问题之后就可以编译成exe文件了.点"Tools" -- "Compile",会在源码所在的目录下生成同名的.exe文件.你双击这个exe就可以看到自动打开qq,自动输入密码用户名,自动点登陆按钮登录的效果了而实际应用到X程序上的时候,发现了一些小问题,当然还是解决了.这里就只说解决要点,有时候你指定对某个ID的控件进行操作,或许并不会应用到相应的控件上去,这或许跟以下几个方面的因素有关:1. 由于程序是别人开发的,或许使用了非标准的控件或者修改了这个控件响应的方法,所以对我们autoit的标准函数不起作用.2. 当前焦点(Focus)在哪个控件上,例如我的X程序我指定某个控件的时候,输入的内容都到一个控件里面去了,这个怎么办?使用TAB键将焦点移到指定的控件上,很简单的,你打开某个窗口程序,然后按按TAB按钮,你就懂了.至于focus的问题,也是与windows的基本原理相关.注1:(搜自百度)将某个账号设置为开机自动登录的方法,对注册表做如下修改:第1步:运行注册表编辑器,依次展开[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W indows NT\CurrentVersion\Winlogon ]分支,然后在右侧窗口双击“DefaultUserName”,接着输入你的登录用户名。
让AutoIT支持Xpath我们知道自动化测试工具Selenium支持很多种元素定位方式,比如属性、Xpath、CSS等等,强大的定位能力使得Selenium 可以随心所欲的操作这些元素。
相比之下,AutoIT就有点逊色了。
通过对Selenium的工作原理的分析,我们知道:Selenium Server通过向浏览器发出JavaScript调用实现对Html页面的全面追踪和对Html页面的操作,并通过网络把执行结果返回给Selenium客户端。
如果能在AutoIT中实现向浏览器发送JavaScript调用,即可实现与Selenium同样的效果,也就可以实现Selenium中的各种元素定位方式。
XPath 是一门在XML 文档中查找信息的语言,使用它可以在页面中准确的定位到页面元素。
Selenium中用于支持Xpath 的JavaScript框架是ajaxlt,根据需要还可以更换为JavaScript-Xpath。
相比之下JavaScript-Xpath查询效率更高,更快定位到页面元素。
这里将使用JavaScript-Xpath来扩展AutoIT,让其支持Xpath定位。
首先下载JavaScript-Xpath最新版本。
(/projects/js-xpath/files/)下面开始以打开百度并输入“Hello,world”搜索为例,讨论如何在AutoIT中使用JavaScript-Xpath。
正常情况下,我们使用AutoIT实现这样的操作,代码如下:#include<IE.au3>$oIE = _IECreate("")$Input = _IEGetObjById($oIE,"kw")$Btn = _IEGetObjById($oIE,"su")$Input.innertext="Hello,World"$Btn.click会使用到_IEGetObjById、_IEGetObjByName这样简单的定位方法,可是一旦元素的Id与Name这样的属性不存在的时候,就比较难定位了。
AutoIT自动化测试进阶(让AutoIT实现flash自动化测试)AutoIT自动化测试进阶(让AutoIT实现flash自动化测试) 下载此文本文档第1页/共1页文本预览:让AutoIT实现flash自动化测试目前市面上已经有不少针对flash的自动化测试工具了,但绝大多数都需要在待测flash编译的时候引用指定的SWC包,这样工具在实施自动化的时候才能触发flash组件中的事件。
有没有不重新编译flash而直接进行自动化的测试呢。
有!必须有!肯定有。
之前看到很多关于使用sikuli和某些web自动化测试工具结合实现flash的自动化测试的介绍。
但是sikuli那套东西也无非是实现了flash上控件的定位和操作,对于检查点的处理却不是很好,并且sikuli开发出的脚本稳定性方面并不是特别好。
这些文章从技术上论证了sikuli结合web自动化测试工具实现flash自动化测试的可行性,其实也提供了一种思路:暴力实现自动化测试。
何谓暴力,暴力就是采用某种编程方式把鼠标移到flash的某个位置,然后向这个位置发送点击命令。
这就是暴力。
Sikuli就是靠截获的图片在flash中找到这样的一个位置,然后发送相应的指令,因此它是一种暴力的方法。
其实AutoIT也能按照这样的思路实现对flash的自动化测试,不同于sikuli的是,AutoIT需要通过坐标来定位。
看如下代码: Local $pos = MouseGetPos()这句脚本的作用是获取当前鼠标在屏幕中的坐标。
获取到这个坐标之后,我们就可以进行相应的操作了,比如:MouseClick("",917,682)send("abcd")也就是说,我们可以先使用MouseGetPos()来获取到所有需要点击或者操作的控件的位置。
然后使用MouseClick、send等实现具体的操作。
至此,像sikuli一样使用AutoIT实现了对flash的操作。