可以应用AutoIT开发出界面,从而把AutoIT对GUI的自动化测试与Watir对web的自动化测结合在一起。
以下代码是我学习GUI界面开发的实例代码。
1. 当点击Watir_Test_Button,就会打开IE 浏览器,到达百度页面;
2. 当点击GUI_Automation_Test,就会打开notepad,并在其中输入一些文字。

#include <GuiConstantsEx.au3>
#include <AVIConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <TreeViewConstants.au3> ; Window, Pic, Label, Lable background color
GUICreate("Sample GUI", , )
;GUICtrlCreatePic("C:\Users\chenpassion\Desktop\Beauty\wesley1.png", , , , )
;GuiCtrlSetState(-,$GUI_DISABLE)
GUICtrlCreateLabel("Beauty Pic", , , , )
GUICtrlSetBkColor(-, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-, 0xFFFFFF) ; Set Title Icon
GUISetIcon("D:\Thunder Network\Thunder\Program\XmpIcon\mov.ico")
$filemenu = GUICtrlCreateMenu("&File")
$openitem = GUICtrlCreateMenuItem("Open", $filemenu)
GUICtrlSetState(-, $GUI_DEFBUTTON)
$helpmenu = GUICtrlCreateMenu("?")
GUISetHelp("NOTEPAD.EXE") ;Set Menu, MenuItem
$saveitem = GUICtrlCreateMenuItem("Save", $filemenu)
$exititem = GUICtrlCreateMenuItem("Exit", $filemenu)
GUICtrlSetState(-, $GUI_CHECKED)
$recentfilesmenu = GUICtrlCreateMenu("Recent Files", $filemenu, )
$recentfilesmenuchild = GUICtrlCreateMenuItem("C:\\Program", $recentfilesmenu)
$recentfilesmenuchild = GUICtrlCreateMenuItem("D:\\Program", $recentfilesmenu)
$separator1 = GUICtrlCreateMenuItem("", $filemenu, )
$viewmenu = GUICtrlCreateMenu("View", -, )
$viewstatusitem = GUICtrlCreateMenuItem("Statusbar", $viewmenu)
GUICtrlSetState(-, $GUI_CHECKED) ;Create button
$okbutton = GUICtrlCreateButton("OK", , , , )
GUICtrlSetState(-, $GUI_FOCUS)
$cancelbutton = GUICtrlCreateButton("Cancel", , , , )
;GUICtrlSetState(-, $GUI_FOCUS) $cancelbutton2 = GUICtrlCreateButton("Cancel2", , , , ) ;Create Context Menu
$buttoncontext = GUICtrlCreateContextMenu($okbutton)
$buttonitem1 = GUICtrlCreateMenuItem("About button 1", $buttoncontext)
$buttonitem2 = GUICtrlCreateMenuItem("About button 2", $buttoncontext)
$Cancelcontext = GUICtrlCreateContextMenu($cancelbutton)
$buttonitem3 = GUICtrlCreateMenuItem("About Cancel Button", $Cancelcontext) ;Create AVI
$ani1 = GUICtrlCreateAvi(@SystemDir & "\shell32.dll", , , )
GUICtrlSetBkColor(-, 0x00ff00)
$buttonstart = GUICtrlCreateButton("start", , , , )
$buttonstop = GUICtrlCreateButton("stop", , , , ) ;Tab test
$child1_tab = GUICtrlCreateTab(, , , )
$child1_tabitem1 = GUICtrlCreateTabItem("Child1Tab1")
$child1_tabitem2 = GUICtrlCreateTabItem("Child1Tab2")
$buttonTab = GUICtrlCreateButton("OK2", , , , )
;GUICtrlSetState(-, $GUI_SHOW)
;GUISetState(@SW_SHOW)
$child1_tabitem3 = GUICtrlCreateTabItem("")
GUICtrlSetState(-, $GUI_SHOW) ;Combo, setfont, GUICtrlSetFont
$font = "Comic Sans MS"
$fontlabel = GUICtrlCreateLabel("Combo Test: ", , , , )
GUICtrlSetFont($fontlabel,, , , $FONT)
GUICtrlSetBkColor(-, $GUI_BKCOLOR_TRANSPARENT)
$comboFont = GUICtrlCreateCombo("", , , , , $CBS_DROPDOWNLIST)
GUICtrlSetFont($comboFont,, , +, $font)
GUICtrlSetData($comboFont, "Sample Combo|Item2|Item3", "Item3") ; PROGRESS
$progress_bar = GUICtrlCreateProgress(, , , )
GUICtrlCreateLabel("Progress:", , )
GUICtrlSetBkColor(-, $GUI_BKCOLOR_TRANSPARENT) ; EDIT
GUICtrlCreateEdit("Type your Name here: ", , , , , BitOR($ES_WANTRETURN, $WS_VSCROLL, $ES_AUTOVSCROLL)) ; LIST
GUICtrlCreateList("", , , , )
GUICtrlSetData(-, "A.Sample|B.List|C.Control|D.Here", "D.Here") ;Create Icon
GUICtrlCreateIcon("explorer.exe", , , )
GUICtrlCreateLabel("Icon", , , , ) ;Listview
$listview = GUICtrlCreateListView("col1 |col2|col3 ", , , , );,$LVS_SORTDESCENDING)
$button = GUICtrlCreateButton("Value?", , , , )
$item1 = GUICtrlCreateListViewItem("item2|col22|col23", $listview)
$item2 = GUICtrlCreateListViewItem("item1|col12|col13", $listview)
$item3 = GUICtrlCreateListViewItem("item3|col32|col33", $listview) $Watir_Test_button = GUICtrlCreateButton("Watir_Test_Button", , , , )
$GUI_Automation_Test = GUICtrlCreateButton("GUI_Automation_Test", , , , ) GUICtrlCreateInput("Hello", , , )
GUICtrlSetState(-, $GUI_DROPACCEPTED) ; to allow drag and dropping
GUICtrlSetData($item2, "ITEM1")
GUICtrlSetData($item3, "||COL33") ; TREEVIEW TWO
Local $iTreeView_2 = GUICtrlCreateTreeView(, , , , $TVS_DISABLEDRAGDROP)
GUICtrlCreateTreeViewItem("TreeView", $iTreeView_2)
GUICtrlCreateTreeViewItem("With", $iTreeView_2)
GUICtrlCreateTreeViewItem("$TVS_CHECKBOXES", $iTreeView_2)
GUICtrlSetState(-, $GUI_CHECKED)
GUICtrlCreateTreeViewItem("Style", $iTreeView_2) GUISetState()
While
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $buttonstart
GUICtrlSetState($ani1, )
Case $msg = $buttonstop
GUICtrlSetState($ani1, )
Case $msg = $buttonTab
GUICtrlSetState($child1_tabitem1, $GUI_SHOW)
Case $msg = $child1_tabitem1
GUICtrlSetState($buttonTab, $GUI_HIDE)
Case $msg = $child1_tabitem2
GUICtrlSetState($buttonTab, $GUI_SHOW)
Case $msg = $okbutton
$lable3 = GUICtrlCreateLabel("", , , , )
GUICtrlSetColor($lable3, $GUI_BKCOLOR_TRANSPARENT)
$i =
While($i < )
GUICtrlSetData($progress_bar, $i)
$i += 0.01
GUICtrlSetData($lable3, GUICtrlRead($progress_bar))
WEnd
case $msg = $cancelbutton
GUICtrlSetData($item2, "||COL"&Random(,,))
Case $msg = $Watir_Test_button
run("D:\Ruby193\bin\ruby.exe C:\Users\chenpassion\Desktop\abc.rb")
Case $msg = $GUI_Automation_Test
Run("notepad.exe")
WinWait("[CLASS:Notepad]")
$winhandle = WinGetHandle("[class:Notepad]")
ConsoleWrite($winhandle & @LF)
$handle = ControlGetHandle($winhandle,"","Edit1")
ConsoleWrite($handle & @LF)
ControlSetText($winhandle,"",$handle,"GUI automation is going on")
EndSelect
WEnd

AutoIT: 开发界面结合GUI automation和Watir Automation的更多相关文章

  1. Python+AutoIt实现界面工具开发

    前言 不同于Linux服务器上的命令行操作,在windows系统上用户的使用习惯还是倾向于使用有界面的工具.如果工具是命令行交互操作的方式,可能是有悖于在windows上使用的操作习惯,往往不容易推广 ...

  2. AWTK(Toolkit AnyWhere): 为嵌入式、手机和桌面开发的通用GUI【转】

    转自:https://blog.csdn.net/absurd/article/details/80958279 AWTK = Toolkit AnyWhere AWTK是吸取了FTK和CanTK的精 ...

  3. Unity iOS混合开发界面切换思路

    Unity iOS混合开发界面切换思路 最近有很多博友QQ 私信 或则 留言联系我,请教iOS和Unity界面之前相互切换的问题,源代码就不私下发你们了,界面跳转功能的代码我直接贴到下面好了,顺带说i ...

  4. JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件

    JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...

  5. Lakeshore 中文开发界面,示例项目,飞机大战 等 Lakeshore Chinese development interface, sample project, aircraft war, etc

    Lakeshore 中文开发界面,示例项目,飞机大战 等 Lakeshore Chinese development interface, sample project, aircraft war, ...

  6. 使用xib开发界面

    使用xib开发界面 2015-02-02 10:03 编辑: suiling 分类:iOS开发 来源:jymn_chen‘s blog   纯代码写界面有时候会降低开发效率,对于一些通用简单的界面,例 ...

  7. python图形界面(GUI)设计

    不要问我为什么要用 python 来做这种事,我回到“高兴咋地”也不是不可以,总之好奇有没有好的解决方案.逛了一圈下来,总体上来说,python 图形界面有以下几个可行度比较高的解决方案. 1. py ...

  8. IOS 使用Interface Builder开发界面入门与技巧

    引言: 通过Interface Builder(简称IB)来制作界面一直是iOS开发界饱受争议的方式.主要争议的话题是不太适合团队协作开发,再就是对IB的使用比较生疏,觉得IB只能完成一些很简单的功能 ...

  9. 几款开源的图形界面库(GUI Libraries)

    SmartWin++ 遵循BSD许可协议的C++ GUI库,建立在Windows API之上,但仍可以通过使用WineLib在Linux/xNix上使用.也支持Pocket PC和基于Windows ...

随机推荐

  1. Go常量与枚举类型

    package main import ( "math" "fmt" ) //常量与枚举 //const数值可作为各种类型使用 func consts() { ...

  2. iOS-runtime-objc_setAssociatedObject(关联对象以及传值)

    例子: static const char kRepresentedObject; - (IBAction)doSomething:(id)sender { UIAlertView *alert = ...

  3. Hybris Virtualjdbc Extension

    作者:Eason 编写日期:2018/07/31 联系方式:13920409462 1. Extension 说明 virtualjdbc extension 提供了虚拟JDBC驱动程序的实现. 通过 ...

  4. 【POJ3264】Balanced Lineup(RMQ)

    题意:每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连续的牛来进行比赛 ...

  5. hihoCoder #1032 : 最长回文子串 [ Manacher算法--O(n)回文子串算法 ]

    传送门 #1032 : 最长回文子串 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相 ...

  6. msp430项目编程21

    msp430中项目---直流电机控制系统 1.定时器工作原理 2.电路原理说明 3.代码(显示部分) 4.代码(功能实现) 5.项目总结 msp430项目编程 msp430入门学习

  7. P1093||T1142 奖学金 洛谷||codevs

    http://codevs.cn/problem/1142/ || https://www.luogu.org/problem/show?pid=1093 题目描述 某小学最近得到了一笔赞助,打算拿出 ...

  8. 洛谷——P2865 [USACO06NOV]路障Roadblocks

    P2865 [USACO06NOV]路障Roadblocks 题目描述 Bessie has moved to a small farm and sometimes enjoys returning ...

  9. Spring的JDBC框架概述

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/jdbc-framework.html: 在使用普通的JDBC操作数据库时,就会很麻烦的写很多不必要 ...

  10. jmeter的线程组执行顺序不以其出现的顺序发生变化

    jmeter可以同时配置多个线程组,那么他们的执行顺序是什么呢?和他们出现的顺序有什么关系呢? 先说下几个特殊的线程组:tearDown线程组和setUp线程组,tearDown线程组一定在最后执行, ...