本文共 2325 字,大约阅读时间需要 7 分钟。
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("选择文件",'') PS: 运行到此处就没有反应, 有时间再整理。 @autoit.ControlClick("选择文件",'','ToolbarWindow322',50,180) sleep(1) @autoit.ControlClick("选择文件",'','Button3') sleep(1s) @ie.close1)在@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的代码
01 | < html > |
02 | < head > |
03 | < title >watir处理对话框</ title > |
04 | < script language = "javascript" type = "text/javascript" > |
05 | function clickbutton(flag) |
06 | { |
07 | if (flag == 1) alert("测试alter对话框"); |
08 | if (flag == 2) prompt("测试prompt对话框"); |
09 | if (flag == 3) confirm('测试confirm对话框', '测试confirm对话框?',"测试结果:"); |
10 | } |
11 | </ script > |
12 | </ head > |
13 | |
14 | < body > |
15 | < center > |
16 | < H1 >watir处理对话框< H1 > |
17 | < hr > |
18 | |
19 | < table border = "2" > |
20 | < tr > |
21 | < th bgcolor = "#aaaaaa" >测试内容</ th > |
22 | < th bgcolor = "#aaaaaa" >操作</ th > |
23 | </ tr > |
24 | |
25 | < tr > |
26 | < td >文件上传</ td > |
27 | < td >< input type = "file" name = "attach[]" /></ td > |
28 | </ tr > |
29 | |
30 | < tr > |
31 | < td >alter对话框</ td > |
32 | < td > |
33 | < input type = "button" name = "alterbutton" value = "测试alter对话框" onclick = "clickbutton(1);" /> |
34 | </ td > |
35 | </ tr > |
36 | |
37 | < tr > |
38 | < td >prompt对话框</ td > |
39 | < td > |
40 | < input type = "button" name = "promptbutton" value = "测试prompt对话框" onclick = "clickbutton(2);" /> |
41 | </ td > |
42 | </ tr > |
43 | |
44 | < tr > |
45 | < td >confirm对话框</ td > |
46 | < td > |
47 | < input type = "button" name = "confirmbutton" value = "测试confirm对话框" onclick = "clickbutton(3);" /> |
48 | </ td > |
49 | </ tr > |
50 | |
51 | </ table > |
52 | </ center > |
53 | </ body > |
54 | </ html > |
转自: http://www.cnblogs.com/zhangfei/archive/2010/07/28/1787203.html