51Testing软件测试论坛

标题: QTP9.2订票程序参数化测试 [打印本页]

作者: bobo3325    时间: 2009-6-12 11:06
标题: QTP9.2订票程序参数化测试
我在进行订票程序参数化设置的时候:
RecordNo= Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")        ' 取得订票记录号
Window("Flight Reservation").WinButton("Button_4").Click        ' 打开订票记录窗口
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"'选择以订票号为依据查询
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Type RecordNo'设置订票号
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click        ' 确认查询
可是在运行的时候无法实现“open order”窗口中订单号的自动获取,在执行到这个步骤的时候就直接报错了。报的错是“object is disabled”
代码什么的和陈能技书上一模一样,为什么不行呢?
小妹刚学QTP,实在琢磨不透~~
作者: zhangxinnow    时间: 2009-6-12 11:31
RecordNo= Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")    ,看看这个RecordNo定义了吗?定义成字符串。
作者: bobo3325    时间: 2009-6-12 13:19
原帖由 zhangxinnow 于 2009-6-12 11:31 发表
RecordNo= Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")    ,看看这个RecordNo定义了吗?定义成字符串。



怎么看是否已经定义啊?
是不是要Dim RecordNo??
作者: dreamever    时间: 2009-6-12 13:33
原帖由 zhangxinnow 于 2009-6-12 11:31 发表
RecordNo= Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")    ,看看这个RecordNo定义了吗?定义成字符串。

VBS的是弱类型的语言,也就是不必指定变量的字段类型;
在你执行脚本的时候,看看那个order No的winEdit对象是不是出现.错误信息提示的是这个对象是disabled的
作者: bobo3325    时间: 2009-6-12 13:46
原帖由 dreamever 于 2009-6-12 13:33 发表

VBS的是弱类型的语言,也就是不必指定变量的字段类型;
在你执行脚本的时候,看看那个order No的winEdit对象是不是出现.错误信息提示的是这个对象是disabled的



具体怎么做呢?我第一次接触软件测试,跟着那本书一步步做,别的我还不太会~~
请求详细指示,谢谢!
作者: dreamever    时间: 2009-6-12 14:13
你跑脚本的时候用肉眼看,看那个order no的WindEdit是不是在界面上显示出来了,
作者: dreamever    时间: 2009-6-12 14:13
原帖由 bobo3325 于 2009-6-12 11:06 发表
我在进行订票程序参数化设置的时候:
RecordNo= Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")        ' 取得订票记录号
Window("Flight Reservation").WinButton("Button_4").Click        ' 打开订 ...

刚想到,你是不是直接把书上的代码录进去的?你的脚本有测试对象库吗?
作者: phoebe_kaka    时间: 2009-6-12 14:46
这段代码之前是不是应该有录插入订单的代码啊。。当你插入订单也就是点击insert order这个按钮之后。。进度条会走一段时间。。。如果进度条没有走完你就去点open order是点不到的。。也就是错误提示信息object is disable。。。你加个同步点。。等进度条走完再去点open order...
Window("Flight Reservation").WinObject("Insert Done").WaitProperty "text", "Insert Order...", 10000
不知道你的问题是不是出在这里。。试试看吧。。
作者: bobo3325    时间: 2009-6-12 14:48
原帖由 dreamever 于 2009-6-12 14:13 发表

刚想到,你是不是直接把书上的代码录进去的?你的脚本有测试对象库吗?


我已经把对象加入对象库了的,所以不会是这个问题
当时跑的时候会出现那个WinEdit,在专家视图看那一行代码也用黄色箭头移动执行了
作者: bobo3325    时间: 2009-6-12 15:01
原帖由 phoebe_kaka 于 2009-6-12 14:46 发表
这段代码之前是不是应该有录插入订单的代码啊。。当你插入订单也就是点击insert order这个按钮之后。。进度条会走一段时间。。。如果进度条没有走完你就去点open order是点不到的。。也就是错误提示信息object is di ...

进度条已经走完了,因为在取得订单号之前我已经用了一个 wait 10的函数,呵呵,现在只会这种简单的时间等待
作者: dreamever    时间: 2009-6-12 15:24
原帖由 bobo3325 于 2009-6-12 14:48 发表


我已经把对象加入对象库了的,所以不会是这个问题
当时跑的时候会出现那个WinEdit,在专家视图看那一行代码也用黄色箭头移动执行了

楼主能确定那个winEdit是在脚本执行到那一句之前就出现了吗?建议楼主把程序中的那个winEdit调出来,然后单独运行那一行脚本.看看是不是能成功执行。把各种可能的情况多试几次。
作者: bobo3325    时间: 2009-6-12 15:47
原帖由 dreamever 于 2009-6-12 15:24 发表

楼主能确定那个winEdit是在脚本执行到那一句之前就出现了吗?建议楼主把程序中的那个winEdit调出来,然后单独运行那一行脚本.看看是不是能成功执行。把各种可能的情况多试几次。



如何单独运行那一行脚本?没法单步运行什么的啊~~
咳。。。。。我真是太菜了,学了一个星期感觉还是没什么进展~~~
作者: bobo3325    时间: 2009-6-12 16:35
没人回帖了,sigh。。。。
只好自己慢慢琢磨了。。。。。。。
作者: intothestorm    时间: 2009-6-12 17:44
报的错是“object is disabled”
说明当前的test object的状态为disabled,不能call click,open等方法。
你可以在之前wait一个更长的时间。
关键是在报错这一步之前的步骤执行完成后有没有让这个object的状态变为enabled




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2