【正文】
里選擇你想將WebButton設(shè)為那個(gè)QTP能夠識別的對象,點(diǎn)擊“下一步”:4. 打開你的頁面,頁面中包含你要的虛擬的對象,并且點(diǎn)擊上面對話框中的標(biāo)記對象按鈕,頁面會(huì)最小化,鼠標(biāo)會(huì)編程”+”,你可以使用”+”來限定虛擬對象的范圍選好后,會(huì)在寬度和高度中顯示虛擬對象的高和寬,并且點(diǎn)擊next,彈出如下對話框:5. 選擇整個(gè)父層次或者僅父類,彈出如下對話框:6. 設(shè)定虛擬對象的名稱,以及收藏的名字,點(diǎn)擊完成,虛擬對象添加完成。然后點(diǎn)擊工具——虛擬對象——虛擬對象管理器可以查看編輯虛擬對象:7. 最后是編寫相關(guān)的語句,進(jìn)行預(yù)期的操作,下面一句是一個(gè)簡單的例子,這里Vocollection2是虛擬對象父類名,虛擬對象名為button;虛擬對象使用的具體語法可以參見QTP的幫助文檔:Browser(Browser).Page(Page).WebButton(關(guān)閉窗口).Activex(Vocollection2).VirtualButton(button).Click16. 獲取對象屬性名稱用法: GetRoProperty——從應(yīng)用程序界面上獲取對象屬性(即,是腳本運(yùn)行時(shí),獲取的對象動(dòng)態(tài)屬性值),例如:獲取對象庫中index屬性值,似乎只能用GetToProperty,因?yàn)閼?yīng)用程序界面上對象沒有該屬性,只是QTP為識別該對象創(chuàng)立的描述屬性;GetToproperty——從對象庫中描述對象的屬性,靜態(tài)值GetToProperties——獲取用于標(biāo)識對象的屬性集;對于這個(gè)集合,有count等屬性。關(guān)鍵在于RO和TO,R,就是Runtime,T就是Testtime,O就是Object。因此顧名思義,RO就是在測試執(zhí)行時(shí)的對象,TO就是錄制/編寫測試時(shí)的對象。是同一個(gè)類在不同的時(shí)間生成的不同的實(shí)例,一般來說TO是靜態(tài)的,而RO是動(dòng)態(tài)的(每次執(zhí)行測試都會(huì)生成新的實(shí)例)。17. ChildObjects的應(yīng)用ChildObjects可以返回界面上滿足條件的對象集合,而且與對象庫里是否有這些對象無關(guān),這就可以簡化對象庫;返回的對象集合的count方法可以返回對象個(gè)數(shù),這就可以通過下標(biāo)對單個(gè)對象進(jìn)行操作;在出現(xiàn)index標(biāo)識對象時(shí)可以進(jìn)行運(yùn)用如:Set m_WinCheck=() m_WinCheck(type).Value=checkbox set All_WinCheck=Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).ChildObjects(m_WinCheck) n=() for i=0 to n1 All_WinCheck(i).Set ON next 這種方法操作對象的好處是不需要在對象庫里添加大量的重復(fù)的對象,具體的用法是如下圖界面中,通過使用對象探測器觀察這些對象的共有屬性,例如type、html tag、name等等,通過這些共性來確定你所需要捕捉對象的群體,以上這段代碼等價(jià)與下面這些語句:Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null).Set ON Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null_2).Set ON Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null_3).Set ON Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null_4).Set ON Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null_5).Set ON Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null_6).Set ON Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null_7).Set ON Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null_8).Set ON 這就需要捕捉8個(gè)對象到對象庫里,但是用前文ChildObjects的方法,就只需要一個(gè)對象,甚至有些時(shí)候不需要添加對象。皆如上圖則罷,但是很多時(shí)候,遠(yuǎn)遠(yuǎn)不止這么幾行信息,所以使用適當(dāng)?shù)姆椒軌蚝艽蠓鹊奶岣吖ぷ餍?,相?dāng)于全選。18. SetProperty函數(shù)的應(yīng)用如上例圖示,這八行語句也可以使用SetProperty函數(shù)含實(shí)現(xiàn)單一對象的多次操作。具體方法可以參見如下代碼:Dim n n = 0 Do while n 8 Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null ).SetTOProperty index , n Browser(teller).Page(teller).Frame(content).ViewLink(dbtable).WebCheckBox(sys_dao_check_null ).Set ON n = n + 1 Loop 這種方法的缺點(diǎn)是必須知道頁面參數(shù)表里一共有多少行參數(shù),給該循環(huán)一個(gè)跳出的條件。或者也可以用Count函數(shù)來進(jìn)行全選,作用就和ChildObjects函數(shù)一樣了。 19. wintreeview一些操作選擇一個(gè)條目:(item)39。根是0根的名稱:(0)20. is+*類型functionisarray39。是否是數(shù)組isconnected39。判斷QTP是否連接到TDisdate39。是否是合法的日期類型isempty39。判斷是否初始化isNull39。判斷是否為空值isNumeric39。判斷是否是數(shù)字型isobject39。判斷是否一個(gè)功能對象isready39。判斷設(shè)備是否準(zhǔn)備就緒isRootFolder39。是否是根目錄21. FireEvent的使用可以對一個(gè)對象進(jìn)行更復(fù)雜的操作如:FireEvent(onfocus) 39。使一個(gè)控件獲取焦點(diǎn) FireEvent(ondblclick)39。實(shí)現(xiàn)雙擊/也可以在事件設(shè)定中針對該對象事件響應(yīng)。第三部分 文件、參數(shù)表和ACTION22. 對系統(tǒng)文件的操作——從系統(tǒng)的文件中獲取信息及刪除文件 get_file_infor(c:\) function get_file_infor(url) dim fso,f set fso=createobject() set f=(url) :::39。///獲取文件信息 (url)39。/////刪除文件 end function ——獲取文件夾里所有文件信息 get_folder_infor(c:\kai) function get_folder_infor(folder) dim fso,f,f1,n set fso=createobject(scripting,filesystemobject) set f=(folder) set fc= for each f1 in fc select case case,39。//檢查文件夾里是否含有這些文件 end select next end function23. 文件讀寫寫:Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso, f, ts,TextStreamTest Set fso = CreateObject() d:/Set f = (d:/) Set ts = (ForWriting, TristateUseDefault) i 使用文件中轉(zhuǎn)的方法無疑是腳本之間傳遞參數(shù)的好方法,快捷方便簡單下面是讀文件:Const ForReading = 1, ForWriting = 2Dim fso, fSet fso = CreateObject()Set f = (d:/, ForReading)i = 例如:Browser(Browser).Page(Page).WebEdit(useridteller).Set i24. (num)完整形式: (num,dtlocalsheet)——向某一列的單元格賦值:(column_name,dtlocalsheet)=nanjing——取得某一行具體值: (n)msgbox((global).getparameter(column_name).Rawvalue)或者kk=(column_name,action1)——在runtime時(shí),動(dòng)態(tài)添加表格與數(shù)據(jù):kk=(sheet_name).addparameter(column_name,value).name。25. 換行符vbcrchr(13)回車符// vblfchr(10)換行符vbcrlfchr(13)+chr(10)結(jié)合//type(chr(13)就相當(dāng)于按了一上鍵盤上的enter26. 如何參數(shù)化linkBrowser(Browser).Page(Page).SyncBrowser(Browser).Navigate Browser(Browser).Page(軟件測試論壇).SyncSet tags=Browser(Browser).Page(軟件測試論壇).Dim i,j, arr()i=0For Each element in tags If Ucase()=A and left(,1)=[ Then ReDim Preserve arr(i+1) arr(i)= i=i+1 End if