随笔分类 -  AutoIT

Windows GUI automation test
摘要:2008年的时候第一次接触AutoIt,当时觉得局限性太多了,就不想学,觉得把Watir,Ruby搞好就行了。最近一段时间比较闲,发现自己对GUI的自动化操完全是短板,就把AutoIt重新拾起来了。不再考虑什么局限性了,想着,反正现在,GUI自动化操作我啥也不会,学习了解一下总是好的。也许是先入为主的想法太严重了,我对Send,controlSend命令是有偏见的,觉得定位能力差,一旦一个界面不是在前端就定位不了。习惯性的使用controlClick, ControlCommand, ControlSetText命令。但是当使用AutoIt脚本越来越多,我发现,AutoIt自动化操作的短板就出 阅读全文
posted @ 2013-08-23 15:29 chenpassion 阅读(10769) 评论(1) 推荐(0)
摘要:有一个界面如上图:黑色框框部分是一个整体,也是一个gridview,如果我想把框框中右侧数据获取出来,该如何操作?我尝试过了很多途径,都无法成功。今天,我发现,当鼠标焦点在黑色框框左侧的部分的时候,该焦点右侧的内容可以通过ControlGetText获得,于是我就有办法获取该gridview中右侧所有的内容了。方法如下:opt("WinTitleMatchMode")$handle = WinGetHandle(".NET Reactor v4.5.9.8 - Full Versio")WinActivate($handle)dim $arrayx[6] 阅读全文
posted @ 2013-08-21 11:51 chenpassion 阅读(888) 评论(0) 推荐(0)
摘要:以下是一个很经典的把Watir与AutoIt连接在一起的实例。如果我们对AutoIT了解的更多,处理类似的问题会更加简单。以下实例会判断页面上是否有某“删除”链接,一旦有该链接,就点击,然后点击弹出的警告框上的“确定”按钮,直到页面上不再有“删除”链接为止。require 'watir'require 'win32ole'class WindowHelper def initialize( ) @autoit = WIN32OLE.new('AutoItX3.Control') end def push_alert_button() @autoi 阅读全文
posted @ 2013-08-16 16:41 chenpassion 阅读(529) 评论(0) 推荐(0)
摘要:可以应用AutoIT开发出界面,从而把AutoIT对GUI的自动化测试与Watir对web的自动化测结合在一起。以下代码是我学习GUI界面开发的实例代码。1. 当点击Watir_Test_Button,就会打开IE 浏览器,到达百度页面;2. 当点击GUI_Automation_Test,就会打开notepad,并在其中输入一些文字。#include #include #include #include #include #include #include ; Window, Pic, Label, Lable background colorGUICreate("Sample GU 阅读全文
posted @ 2013-08-16 16:14 chenpassion 阅读(2403) 评论(0) 推荐(0)
摘要:以前用Ruby脚本,对于中文,数字结合的文件名,修改名字也不是非常简单,需要修改字符集,可是用autoit来实现,也挺简单的,并且可以替换已有文件名中的汉字部分。$filepath = "Filewith\2000.7月底延期事宜"if FileExists($filepath) Then FileChangeDir($filepath) $search = FileFindFirstFile("*.*") ; 检查搜索是否成功 If $search = -1 Then ConsoleWrite("No file") Exit End 阅读全文
posted @ 2013-08-16 16:12 chenpassion 阅读(1331) 评论(0) 推荐(0)
摘要:GUICtrlCreateCombo中选中的选项是可修改的,也可设置为不可修改状态。#includeGUICtrlCreateLabel("ComboTest: ", 180, 280, 120, 20)GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT); Combo 选中的选项是可修改的状态GUICtrlCreateCombo("",250, 277, 120, 100); Combo 选中的选项是不可修改的状态,最后一个参数也可只为:$CBS_DROPDOWNLISTGUICtrlCreateCombo(&q 阅读全文
posted @ 2013-08-16 16:08 chenpassion 阅读(851) 评论(0) 推荐(0)
摘要:GUISetFont 可以设置默认字体,后面的资源都会用该字体,而 GUICtrlSetFont 可以对特定控件的字体进行设置。;Combo,setfont, GUICtrlSetFont$font= "Comic Sans MS"$fontlabel= GUICtrlCreateLabel("Combo Test: ", 160, 280, 120, 20)GUICtrlSetFont($fontlabel,10,20, 2, $FONT)GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)$comboFont= 阅读全文
posted @ 2013-08-16 16:07 chenpassion 阅读(839) 评论(0) 推荐(0)
摘要:#include $excel = _ExcelBookAttach("Book1.xlsx" ,"FileName")Dim $i = 1;_ExcelReadCell($excel,"b"&$i) "" 并不等于 not(_ExcelReadCell($excel,"b"&$i) ==""),使用的时候尽量使用后者While IsInt(_ExcelReadCell($excel,"b"&$i)) $ten = _ExcelRe 阅读全文
posted @ 2013-08-16 16:06 chenpassion 阅读(3098) 评论(0) 推荐(0)
摘要:#include$conn= ObjCreate("ADODB.Connection")$RS= ObjCreate("ADODB.Recordset")$conn.Open("driver={SQLServer};server=a\demo;uid=sa;pwd=bcd;database=Test")$RS.ActiveConnection= $conn$RS.open("SELECT* FROM GIS_CROP");以下代码可以获取数据库表的标题名;$count = $RS.Fields.Count;dim 阅读全文
posted @ 2013-08-16 16:03 chenpassion 阅读(2566) 评论(1) 推荐(0)
摘要:_filelist("D:\Snagit 10")Func _filelist($searchdir) ;;;函数名(形参) $search = FileFindFirstFile($searchdir & "\*.*") ;;;;查找c:根目下的文件 If $search = -1 Then return -1 ;;;;如果找不到,返回值 -1 While 1 $file = FileFindNextFile($search) ;;;查找下一个文件 If @error Then ... 阅读全文
posted @ 2013-08-16 16:01 chenpassion 阅读(1750) 评论(0) 推荐(0)
摘要:Func down() $Size=InetGetSize($a[$j][1]);获得FTP上的文件的大小 InetGet($a[$j][1],$a[$j][2],1,1);下载 ProgressOn("下载进度表", "正在下载 ..."& StringRight($a[$j][1],20),"0 %") While @InetGetActive $i=round(@InetGetBytesRead / $Size * 100) ProgressSet( $i, $i & " %") ;TrayT 阅读全文
posted @ 2013-08-16 16:00 chenpassion 阅读(985) 评论(0) 推荐(0)
摘要:一般情况下,GridView中的数据来自数据库,我们通过Windows Info,是无法获取GridView中的信息的。而软件定制的Menu,很多时候无法通过系统提供的WinMenuSelectItem来获取。对于GridView窗口或者WinMenuSelectItem窗口等等,如果无法通过常规手段获取的资源,都可以使用ControlClick和ControlSetText命令对字段进行点击/双击/赋值操作。;Get the handle of the main window$handle = WinGetHandle("[class:WindowsForms10.Window.2 阅读全文
posted @ 2013-08-16 15:59 chenpassion 阅读(3712) 评论(1) 推荐(0)
摘要:WinGetText是一个非常有用的函数,可以获取页面上一切可见的资源,这为自动化测试的验证功能提供了保证。可以使用一些字符串处理函数来对获取来的页面文本进行分析。If StringInStr(WinGetText($handle),"Trial_Days") Then MsgBox(0,"Test", "String is set successfully")Else MsgBox(0,"Test2", "No value")EndIfMsgBox(0,"Test3", W 阅读全文
posted @ 2013-08-16 15:57 chenpassion 阅读(1735) 评论(0) 推荐(0)
摘要:一般情况下,Gridview是无法通过AutoIT Window Info来获取控件信息的,但是可以有折中的办法对Gridview中的字段赋值。#include$handle= WinGetHandle("[Handle:0x0000000000260D3E]") ;MsgBox(0,"Test", $handle);WinActivate($handle);ControlClick($handle,"","WindowsForms10.Window.8.app.0.1f550a4_r15_ad129"," 阅读全文
posted @ 2013-08-16 15:55 chenpassion 阅读(949) 评论(0) 推荐(0)
摘要:$url2 = "AX.XXX.XXX.COM"$oIE = _IECreate ($url2, 0, 1, 0, 1)Sleep(1000)ControlSetText('[REGEXPTITLE:连接到.+]', '', 1003, 'username')ControlSetText('[REGEXPTITLE:连接到.+]', '', 1005, 'password')ControlClick('[REGEXPTITLE:连接到.+]', '' 阅读全文
posted @ 2013-08-16 15:51 chenpassion 阅读(493) 评论(0) 推荐(0)
摘要:#include$handle =WinGetHandle("Windows 任务管理器");$ctrl =ControlGetHandle($handle,"","SysListView321")dim $count =ControlListView($handle,"","SysListView321","GetItemCount")MsgBox(0,"Test",$count)dim $idim $array1[2] = [0, 4]dim $arr 阅读全文
posted @ 2013-08-16 15:50 chenpassion 阅读(838) 评论(0) 推荐(0)
摘要:$handle= WinGetHandle("Sample GUI");MsgBox(0,"SRE Example 3 Result", $handle)$ctrl= ControlGetHandle($handle, "", "Static1");MsgBox(0,"SRE Example 3 Result", $ctrl)$a1= ControlGetHandle($handle, "", "msctls_progress321");MsgBox(0, 阅读全文
posted @ 2013-08-16 15:48 chenpassion 阅读(1122) 评论(0) 推荐(0)
摘要:$fHandle= FileOpen("文件", 0)if $fHandle -1 Then While 1 $line= FileReadLine($fHandle) If@error = -1 Then ExitLoop WendEndIfFileClose($fHandle) 阅读全文
posted @ 2013-08-16 15:40 chenpassion 阅读(1362) 评论(0) 推荐(0)
摘要:ControlCommand可以确定窗口中的复选框是否选中状态,然后可以对这些复选框进行操作。可以对ComboBox和ListBox进行操作如选择下拉框的某个选项if WinExists("AutoIt 帮助") Then MsgBox(1,"OK", "Start") WinActivate("AutoIt帮助") if ControlCommand("AutoIt 帮助","","Button5","IsChecked", &quo 阅读全文
posted @ 2013-08-16 15:39 chenpassion 阅读(5538) 评论(0) 推荐(0)
摘要:对文件系统的菜单进行操作,有专门的语句WinMenuSelectItem:Run("notepad.exe")WinWaitActive("[CLASS:Notepad]")WinMenuSelectItem("[CLASS:Notepad]","", "文件(&F)", "页面设置(&U)..." )WinMenuSelectItem 有很强的局限性,很多定制的Menu无法操作。以后出现了新的Menu,一旦能够操作,将把代码拷贝到当前页面。 阅读全文
posted @ 2013-08-16 15:35 chenpassion 阅读(2498) 评论(0) 推荐(0)