本帖子為本人原創(chuàng),轉(zhuǎn)載請(qǐng)注明作者:Cheers . Lee 以及網(wǎng)絡(luò)來(lái)源:
在編寫(xiě)腳本時(shí),經(jīng)常要考慮到2個(gè)步驟之間的時(shí)間間隔問(wèn)題,例如,1. 打開(kāi)www.baidu.com 2. 輸入avepoint。由于網(wǎng)速的不同,打開(kāi)百度網(wǎng)頁(yè)之后會(huì)有一定的延遲,所以1,2兩步之間要有一個(gè)短時(shí)間的等待,可以通過(guò)以下幾種方法實(shí)現(xiàn):
1. 對(duì)象的默認(rèn)等待時(shí)間。
QTP識(shí)別對(duì)象時(shí),會(huì)有一個(gè)默認(rèn)的等待時(shí)間,可以在File-->Settings-->Run-->Object synchronization中設(shè)置,默認(rèn)時(shí)間是20秒,也就是說(shuō)當(dāng)執(zhí)行到第2步時(shí),網(wǎng)頁(yè)還沒(méi)有完全打開(kāi),這樣的話QTP找不到第2步中需要的對(duì)象,那么它會(huì)在20秒內(nèi)不斷的嘗試查找對(duì)象,如果百度這個(gè)網(wǎng)頁(yè)在20秒之內(nèi)完全打開(kāi),那么這個(gè)方法就可行(網(wǎng)頁(yè)全部打開(kāi)的話,第2步所需的對(duì)象就會(huì)被找到),如果超過(guò)20秒還不行的話,請(qǐng)參考下面幾種方式
2. 使用.Sync方法。
還是打開(kāi)百度,輸入Avepoint,可用如下代碼來(lái)實(shí)現(xiàn)
Browser("Browser").Navigate http://www.baidu.com
Browser("Browser").Page("百度").Sync
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "Avepoint"
第2句的意思就是等待百度這個(gè)頁(yè)面完全打開(kāi),才繼續(xù)執(zhí)行下面操作。
3. 第2種方法只能在Web中使用,那么如果其他類(lèi)型的對(duì)象需要等待時(shí)間怎么辦?可以使用QTP系統(tǒng)自帶的同步點(diǎn)功能。
還是上面的例子,在錄制狀態(tài)下,選擇Insert-->Synchronization Point,選擇要同步的對(duì)象,設(shè)置要同步的屬性,我們可以對(duì)對(duì)象的Enable,visible一類(lèi)表示狀態(tài)的屬性做同步點(diǎn),生成如下腳本
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").WaitProperty "visible", True, 100000
這句話的意思就是在100秒的時(shí)間內(nèi),等待WebEdit這個(gè)對(duì)象的visible屬性,只要它的visible屬性變?yōu)閠rue,那么就執(zhí)行下面操作,最后的100000單位是毫秒,如果在100000毫秒(100秒)后還沒(méi)有等到visible = true,直接執(zhí)行下面操作。
4. 利用VBS語(yǔ)句。
Do until Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Exist(5)
Loop
判斷WebEdite這個(gè)對(duì)象是否出現(xiàn),如果沒(méi)有出現(xiàn),執(zhí)行Wait(1),如果出現(xiàn),跳出循環(huán)。
5. 死等大法。
就是用Wait()語(yǔ)句設(shè)置等待時(shí)間,死等,比如Wait(10),就是腳本停止10秒,任何操作都不做,10秒之后繼續(xù)往下執(zhí)行操作。
|
|