'BrowseTo 函数负责导航到指定的 URL , 如果浏览器尚未启动,则先调用函数 Launch 来打开浏览器。 'Execute 用于执行指定 VBScript 脚本语句的函数 Public Function BrowseTo (url) thirdlevel = "" Report micPass, "Navigate to URL", "Navigating to URL: " & Quote(url) If initialized Then Execute GenerateDescription("Browser") & "Navigate " & Quote(url) Else Launch "website", url End If Reporter.Filter = rfDisableAll End Function 'GenerateDescription 函数用于反回对象的描述性语句, 例如, 指定 Browser, 则返回如下语句 '"Browser("micclass:=Browser")." Public Function GenerateDescription (levelstr) l = IndexOf(level, levelstr) If l >=0 Then fdesc = level(0) & "(" & Quote(desc(0)) & ")." If l >= 1 Then fdesc = fdesc + level(1) & "(" & Quote(desc(1)) & ")." If 2 >= l Then If thirdlevel <> "" Then fdesc = fdesc + level(2) & "(" & Quote(desc(2)) & "," & Quote("name:=" & thirdlevel) & ")." End If End If End If End If GenerateDescription = fdesc End Function 'SAFFRON 使用 BrowserTo 函数负责导航到指定的 URL, '如果浏览器未启动,则先会调用函数 Launch 来打开浏览器 '脚本中创建了 IE 的 COM 对象, 并将 IE 的 Visible 属性设置为 True , 让浏览器可见 '调用 IE 对象的 Navigate 方法导航到指定 URL Public Function Launch (apptype, val) If "website" = apptype Then thirdlevel = "" Report micPass, "Initialize", "Initializing Framework" level = split(webLevels, leveldelimiter, -1, 1) desc = split(webLevelsDesc, leveldescdelimiter, -1, 1) object = split(objects, objectdelimiter, -1, 1) objectDescription = split(objectsDescription, objectsDescriptiondelimiter, -1, 1) CloseBrowsers Set IE = CreateObject("InternetExplorer.Application") IE.visible = true IE.Navigate val While IE.Busy wait 1 Wend End If initialized = true Launch = true End Function '给指定的字符串前后加上双引号字符 Public Function Quote (txt) Quote = chr(34) & txt & chr(34) End Function '链接的单击, 按钮的点击操作 Public Function Activate (objtype, text) localDesc = "" If thirdlevel <> "" Then localDesc = GenerateDescription(level(2)) Else localDesc = GenerateDescription(level(1)) End If AutoSync() Select Case objtype Case "Link" Execute localDesc & GenerateObjectDescription("Link","innertext:=" & text) & "Click" Report micPass, "Link Activation", "The Link " & Quote(text) & " was clicked." Case "WebButton" Execute localDesc & GenerateObjectDescription("WebButton", "value:=" & text) & "Click" Report micPass, "WebButton Activation", "The WebButton " & Quote(text) & " was clicked." ' 扩展对Image类型的按钮的支持 Case "Image" Execute localDesc & GenerateObjectDescription("Image", "alt:=" & text) & "Click" Report micPass, "ImageButton Activation", "The ImageButton " & Quote(text) & " was clicked." End Select End Function '首先判断对象的类型, 然后根据对象类型分别进行处理。 '如果是链接对象,则通过 Excecute 函数执行 Execute localDesc & GenerateObjectDescription("Link","innertext:=" & text) & "Click" '如果是按钮对象,则通过 Excecute 函数执行 localDesc & GenerateObjectDescription("WebButton", "value:=" & text) & "Click" 'Activate 函数中调用了 GenerateObjectDescription 函数 '该函数作用与 GenerateDescription 函数作用类似, 都是用于返回一哥测试对象的描述 '不同的是 GenerateObjectDescription 函数需要传入测试对象的描述数组 Public Function GenerateObjectDescription (obj, prop) i = IndexOf(object, obj) ndesc = "" If i <> -1 Then ndesc = obj & "(" & Quote(objectDescription(i)) & "," & Quote(prop) & ")." End If GenerateobjectDescription = ndesc End Function 'Activate 函数中调用了名为 AutoSync 的函数, 该函数的作用与 QTP 的 Sync 方法一样 Public Function AutoSync Execute GenerateDescription("Browser") & "Sync" End Function '启动浏览器 Launch "website" , "http://127.0.0.1:1080" '导航到 http://127.0.0.1:1080/WebTours/ BrowseTo "http://127.0.0.1:1080/WebTours/" '单击名为 sign up now 的链接 Activate "Link" , "sign up now"