但是SAFFRON僅僅是一個基礎框架,我們還需要進一步地對其擴展才能應用到實際的WEB自動化測試項目中去,例如擴展對更多的控件的支持。下面是一個對Activate函數擴展Image對象的點擊操作的過程:
(1)首先打開SAFFRON框架的VBS文件,找到開頭的變量定義處,添加Image對象,讓框架可以識別和支持Image對象:
' 擴展對Image對象的支持
objects = "Link|WebButton|WebList|WebEdit|Image"
objectsDescription = "micclass:=Link|micclass:=WebButton|micclass:=WebList|micclass:=WebEdit|micclass:=Image"
(2)修改Activate方法,添加對Image對象的Click操作的支持,腳本修改成如下所示:
' Activates an object based upon its object type
' objtype - the type of object should be limited to values in the object array
' text - identifying text for the control - for a link, it's the text of the link
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
(3)調試和測試修改后的腳本,例如采用下面的腳本來看對Activate函數的擴展是否生效:
' 啟動瀏覽器
Launch "website","http://127.0.0.1:1080"
' 導航到“http://127.0.0.1:1080/WebTours”
BrowseTo "http://127.0.0.1:1080/WebTours/"
' 輸入用戶名
EnterTextIn "username","chennengji"
' 輸入密碼
EnterTextIn "password","123"
' 單擊Login按鈕
Activate "Image","Login"
' 單擊"Flights"按鈕
Browser("Web Tours").Page("Web Tours").Frame("navbar").Image("Search Flights Button").Click
' 獲取航班起始城市
DepartureCity = GetTextFrom( "WebList","depart")
' 獲取航班終點城市
ArrivalCity = GetTextFrom( "WebList","arrive")
' 獲取乘客數量
PassengerNumber = GetTextFrom( "WebEdit","numPassengers")
' 選擇航班起始城市為"San Francisco"
SelectFromList "depart","San Francisco"
If Verify ("Link","administration")= False then
Reporter.ReportEvent micFail,"檢查鏈接","鏈接不存在"
Else
' 點擊名為“administration”的鏈接
Activate "Link","administration"
End IF
腳本的測試結果如圖所示:
文章來源于領測軟件測試網 http://www.kjueaiud.com/