hudemou 发表于 2012-9-20 16:09:22

qtp自带flight程序测试问题

If Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("enabled")=true then
                                     p=Window("Flight Reservation").WinComboBox("Fly From:").GetItemsCount             '获取fly from地点的行数   
                                     flyf = int(rnd*p-1)                        '取随机行
                                     Window("Flight Reservation").WinComboBox("Fly From:").Select flyf                   '随机选择起始点
                     wait(3)
                                     capture()
                                     f1.WriteLine("FLy from按钮""   有效   "&"   能选择起始点!" & filename)
                                     f1.WriteBlankLines(1)                       
                   else
                                 f1.WriteLine("FLy from按钮""         无效   "&"不能选择起始点!" & filename)
                   end If
测试订单时间,设置了6个数据,5错1对,错误数据都能正常选择,最后一次对的数据读取后出现下面错误,求高手指点一下!!!
Cannot identify the specified item of the Fly From: object. Confirm that the specified item is included in the object's item collection.

lyyuusan 发表于 2012-9-20 21:39:17

我把你的代码拷下来试了下,是可以的通过的,你检查一下你的对象库,看看是不是有问题
If Window("航班预订").WinComboBox("起点:").GetROProperty("enabled")=true then
                                     p=Window("航班预订").WinComboBox("起点:").GetItemsCount   
'                                     flyf = int(rnd*p+1)                        '取随机行
                                     flyf = int((p-0+1)*rnd+0)
                                     Window("航班预订").WinComboBox("起点:").Select flyf                   '随机选择起始点
                     wait(3)
'                                     capture()
'                                     f1.WriteLine("FLy from按钮""   有效   "&"   能选择起始点!" & filename)
'                                     f1.WriteBlankLines(1)                        
'                   else
'                                 f1.WriteLine("FLy from按钮""         无效   "&"不能选择起始点!" & filename)
                   end If

hudemou 发表于 2012-9-21 16:21:04

谢谢你的帮助,应该不是对象库的问题。
6个日期数据在action中数据表直接调用,是正常的。

现在是将这部分代码写成函数,放在函数库中调用,最后一个正确日期读取后报错。Window("Flight Reservation").WinButton("新建按钮").Click
         Window("Flight Reservation").WinObject("Date of Flight:").Type ReadExcelCell("C:\Users\hudemou\Desktop\test.xls","testflg",i,1)
         dateflight = ReadExcelCell("C:\Users\hudemou\Desktop\test.xls","testflg",i,1)                  '将外部表中的数据参数化

'.******************************               测试FLy From按钮是否有效
.******************************               测试FLy From按钮是否有效          **************************************
                  If Window("Flight Reservation").WinComboBox("Fly From:").GetROProperty("enabled")=true then
                                     p=Window("Flight Reservation").WinComboBox("Fly From:").GetItemsCount             '获取fly from地点的行数   
                                     flyf = int(rnd*p-1)                        '取随机行
                                     Window("Flight Reservation").WinComboBox("Fly From:").Select flyf                   '随机选择起始点
                     wait(3)
                                     capture()
                                     f1.WriteLine("FLy from按钮""   有效   "&"   能选择起始点!" & filename)
                                     f1.WriteBlankLines(1)                       
                   else
                                 f1.WriteLine("FLy from按钮""         无效   "&"不能选择起始点!" & filename)
                   end If
                             

xjwldlover 发表于 2012-9-23 15:53:57

本帖最后由 xjwldlover 于 2012-9-23 15:59 编辑

Confirm that the specified item is included in the object's item collection. ----确认指定的选项是否包含在可选集合
**************************************
flyf = int(rnd*p-1)
应该是这一行代码有问题,你的item取值范围应该是想要在【1,6】吧,for next运行一下你的这个flyf,你看下,会有 flyf = 0,-1的情况哦,应该就会报错。
QTP存在生成随机整数的函数flyf = randomNumber(1,6),会生成【1,6】的整数,改下试试。

希望对你有帮助,如有错误,请各位指正~
ps,使用rnd函数前要初始化随机数种子Randomize,话说没初始化的话,应该6错或者6对啊,奇怪~

hudemou 发表于 2012-9-24 10:18:26

谢谢,按你说的改了运行正常。
但是还是没弄明白为什么只有最后一个日期报错?
但我感觉应该和取外部表中数据的for语句有关,在action中没有for语句,继续探索中、、、、
页: [1]
查看完整版本: qtp自带flight程序测试问题