QTP中的描述性編程

發表于:2008-08-14來源:作者:點擊數: 標簽:QTP中描述性屬性參數對象
最近有幾位朋友問到描述性編程的問題,那么我們今天就來探討一下 QTP 中的描述性編程吧.當我們并不想QTP依靠對象庫來識別對象時,我們就可以借用描述性編程的方式.把對象的屬性及屬性值直接搬到代碼中去,讓QTP直接通過腳本中的這些屬性及屬性值就能識別到這個


     最近有幾位朋友問到描述性編程的問題,那么我們今天就來探討一下QTP中的描述性編程吧.當我們并不想QTP依靠對象庫來識別對象時,我們就可以借用描述性編程的方式.把對象的屬性及屬性值直接搬到代碼中去,讓QTP直接通過腳本中的這些屬性及屬性值就能識別到這個對象,而不必再去匹配對象庫.總的來說,如果您希望在未存儲在對象庫中的對象上執行操作,則這種編程描述將是非常有用的?;蛘哌€可以使用編程描述在具有某些相同屬性的多個對象上執行相同的操作,或者在其屬性與運行會話期間動態確定的描述相匹配的對象上執行操作。比如:在我的<QTP參數化實例>文章中,已經運用過描述性編程了.由于參數化的時候受到了對象庫的制約,所以也采用了描述性編程的形式,讓要參數化的對象不再受到對象庫的制約.

     接下來.通過一個具體的例子,再來看看描述性編程的形式.打開QTP錄制Fight的登錄框.代碼如下:

Dialog("Login").WinEdit("Agent Name:").Set "mercury"
Dialog("Login").WinEdit("Password:").SetSecure "45a1e193f9dac3bf91f3ba7c1dd250a48a33eabf"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Close


然后我們把對象庫中,這些對象的屬性及屬性值從對象庫搬到腳本中,代碼修改成為:

Dialog("text:=Login").WinEdit("attached text:=Agent Name:").Set "mercury"
Dialog("text:=Login").WinEdit("attached text:=Password:").SetSecure "4414d23c42046da1ea3a895f1518b9c476b2b225"
Dialog("text:=Login").WinButton("text:=OK").Click
Window("regexpwndtitle:=Flight Reservation").close


再來執行腳本,QTP執行成功.這就是描述性編程.當然值得注意的是,如果父對象用描述性編程表示了,那么后面的對象都要用描述性編程表示了.如:

Dialog("text:=Login").WinEdit("attached text:=Agent Name:").Set "mercury"

這邊Dialog("text:=Login")用描述性編程表示了,那么WinEdit("attached text:=Agent Name:")就必須要描述性編程表示了.因為在對象庫中,子對象是依靠父對象存在的.所以如果Dialog("text:=Login")這個父對象從對象庫中刪除了,那么后面的子對象也同時被刪除了.反過來子對象刪除就不影響父對象.所以子對象可以單獨用描述性編程表示,而不需牽連其他對象.

 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97