QTP使用小技巧

脚本以下:(注意紫色部分脚本)
Dialog("Login").WinEdit("Agent Name:").Set "Cheers.Lee"
Dialog("Login").WinEdit("Password:").SetSecure "49df4eabed69867d55a22bbcdc7cceb6d10c9abc"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").WinObject("Date of Flight:").Type "090410"
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "13564   FRA   03:12 PM   LON   03:57 PM   SR     $162.10"
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "Cheers.Lee"
Window("Flight Reservation").WinButton("Insert Order").Click
a=Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")
do  while  a=""
wait 1
a=Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")
Loop
'msgbox a
Window("Flight Reservation").Close
  固然这块也能够用条件语句:while ...wend; do ... until 来写.
  至此,问题解决OK!对于对象不存在的解决方法,也能够用此方法来解决对象偶尔回放不能识别的问题,再次再也不详述.但愿本文起到抛砖引玉的做用.( 中国软件工程网
  在编写脚本时,常常要考虑到2个步骤之间的时间间隔问题,例如,1. 打开[url]www.baidu.com[/url] 2. 输入avepoint。因为网速的不一样,打开百度网页以后会有必定的延迟,因此1,2两步之间要有一个短期的等待,能够经过如下几种方法实现:
  1. 对象的默认等待时。QTP识别对象时,会有一个默认的等待时间,能够在File-->Settings-->Run-->Object synchronization中设置,默认时间是20秒,也就是说当执行到第2步时,网页尚未彻底打开,这样的话QTP找不到第2步中须要的对象,那么它会在20秒内不断的尝试查找对象,若是百度这个网页在20秒以内彻底打开,那么这个方法就可行(网页所有打开的话,第2步所需的对象就会被找到),若是超过20秒还不行的话,请参考下面几种方式( 中国软件工程网)   2. 使用.Sync方法。   仍是打开百度,输入Avepoint,可用以下代码来实现   Browser("Browser").Navigate [url]http://www.baidu.com[/url]   Browser("Browser").Page("百度").Sync   Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "Avepoint"   第2句的意思就是等待百度这个页面彻底打开,才继续执行下面操做。   3. 第2种方法只能在Web中使用,那么若是其余类型的对象须要等待时间怎么办?可使用QTP系统自带的同步点功能。   仍是上面的例子,在录制状态下,选择Insert-->Synchronization Point,选择要同步的对象,设置要同步的属性,咱们能够对对象的Enable,visible一类表示状态的属性作同步点,生成以下脚本   Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").WaitProperty "visible", True, 100000   这句话的意思就是在100秒的时间内,等待WebEdit这个对象的visible属性,只要它的visible属性变为true,那么就执行下面操做,最后的100000单位是毫秒,若是在100000毫秒(100秒)后尚未等到visible = true,直接执行下面操做。   4. 利用VBS语句。   Do until Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Exist(5)   Wait(1)   Loop   判断WebEdite这个对象是否出现,若是没有出现,执行Wait(1),若是出现,跳出循环。   5. 死等大法。   就是用Wait()语句设置等待时间,死等,好比Wait(10),就是脚本中止10秒,任何操做都不作,10秒以后继续往下执行操做。
相关文章
相关标签/搜索