51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4330|回复: 8
打印 上一主题 下一主题

[求助] QTP录制Flight4a.exe程序时,怎么取到订票起始站下拉框的值?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-1-16 10:20:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
QTP录制Flight4a.exe程序时,怎么取到订票起始站下拉框的值?

本人在网上找了些资料,但是调试还是不通过。
代码如下:

'激活敞口,如果对话框Login没有打开,则系统调用将其打开运行
If not Dialog("Login").Exist Then
        SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"
End If
'激活对话框Login
Dialog("Login").Activate
'在文本编辑框Edit内输入内容“Mercury”
Dialog("Login").WinEdit("Edit").Set "mercury"
'在文本编辑框Password内输入内容“Mercury”
Dialog("Login").WinEdit("Password:").Set "mercury"
'单击OK按钮
Dialog("Login").WinButton("OK").Click
'激活窗口Flight Reservation
Window("Flight Reservation").Activate
'在日期输入框Flight No:内输入时间类型的值
Window("Flight Reservation").WinObject("Flight No:").Type "071111"

'声明一个函数GetList
Function GetList(i)
   Randomize
   GetList=RandomNumber(0,i)
End Function

Dim Get_Count1,Ran_Number1
Get_Count1=Window("Flight Reservation").WinComboBox("Departure Time:").GetROProperty("items count")
Ran_Number1=GetList(Get_Count-1)
Window("Flight Reservation").WinComboBox("Departure Time:").Select  "#"&Ran_Number1


Dim Get_Count2,Ran_Number2
Get_Count2=Window("Flight Reservation").WinComboBox("Arrival Time:").GetROProperty("items count")
Ran_Number2=GetList(Get_Count2-1)
Window("Flight Reservation").WinComboBox("Arrival Time:").Select "#"&Ran_Number2

Window("Flight Reservation").WinCheckBox("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").Activate
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Edit").Set "1qazse4"
Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0, 1
Window("Flight Reservation").WinEdit("Tickets:").Set "2"
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").Close


运行到这里时,就通不过了:Window("Flight Reservation").WinComboBox("Departure Time:").Select  "#"&Ran_Number1

请大家帮忙下,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-1-16 14:11:05 | 只看该作者
Window("Flight Reservation").WinComboBox("Departure Time:").Select  "#"&Ran_Number1

这句是你自己写的吗,不是QTP录制的吗?
1.如果是QTP自己识别的对象应该是Window("Flight Reservation").WinComboBox("Fly From:"),怎么会是Window("Flight Reservation").WinComboBox("Departure Time:")
2.Select  "#"&Ran_Number1,这里的#是什么意思

你试试这样改Window("Flight Reservation").WinComboBox("Fly From:").Select Ran_Number1

最好是先录制脚本,然后在录制脚本的基础上再优化脚本
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2008-1-16 14:16:04 | 只看该作者
    QTP  报告什么错误? 根据QTP 的提示信息去 修改就可以了呀
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-1-16 14:34:59 | 只看该作者
    关于 Select 的用法,请参考QTP提供的例子:

    Sub Select_Example()
    'The following example uses the Select method to select the item 22
    'from the Size combo box.
    Window("Notepad").Dialog("Font").WinComboBox("&Size:").Select "22"
    'or
    Window("Notepad").Dialog("Font").WinComboBox("&Size:").Select 7
    End Sub
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2008-1-16 16:10:30 | 只看该作者
    多谢linweiyan兄
        但是我的flight4a.exe识别的控件WinCombox的名称是:"Departure Time:",“fly from”的类型是text

    谢谢Walker版主:
      我下面重新发段代码,附上错误信息
    Cannot identify the object "Arrival Time:" (of class WinComboBox). Verify that this object's properties match an object currently displayed in your application.
    Object's physical description:
    Native Class = ComboBox
    Items Count = 10
    Attached Text = Arrival Time:

    Object's physical description:
    Native Class = ComboBox
    Items Count = 10
    Attached Text = Arrival Time:
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-1-16 16:12:06 | 只看该作者
    下面是新的代码,代码是自己先识别Objects,然后在KeyWord View试图里一步一步设计的
         '激活敞口,如果对话框Login没有打开,则系统调用将其打开运行
    If not Dialog("Login").Exist Then
            SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"
    End If
    '激活对话框Login
    Dialog("Login").Activate
    '在文本编辑框Edit内输入内容“Mercury”
    Dialog("Login").WinEdit("Edit").Set "mercury"
    '在文本编辑框Password内输入内容“Mercury”
    Dialog("Login").WinEdit("Password:").Set "mercury"
    '单击OK按钮
    Dialog("Login").WinButton("OK").Click
    '激活窗口Flight Reservation
    Wait(2)
    Window("Flight Reservation").Activate
    '在日期输入框Flight No:内输入时间类型的值
    Window("Flight Reservation").WinObject("Flight No:").Type "071111"

    '声明一个函数GetList
    Function GetList(i)
       Randomize
       GetList=RandomNumber(0,i)
    End Function

    Dim Get_Count1,Ran_Number1,Result1 '声明三个变量
    Get_Count1=Window("Flight Reservation").WinComboBox("Departure Time:").GetItemsCount '取得下拉框的记录的总条数
    Ran_Number1=GetList(Get_Count1-1)  '调用函数GetList,随机取一个数字
    Result1=Window("Flight Reservation").WinComboBox("Departure Time:").GetItem(Ran_Number1) '获取下拉框第Ran_Number1条记录的值
    Window("Flight Reservation").WinComboBox("Departure Time:").Select  Result1 '选择刚才获取到的值

    Dim Get_Count2,Ran_Number2,Result2 '声明三个变量
    Get_Count2=Window("Flight Reservation").WinComboBox("Arrival Time:").GetItemsCount '取得下拉框的记录的总条数
    Ran_Number2=GetList(Get_Count2-1) '调用函数GetList,随机取一个数字
    Result2=Window("Flight Reservation").WinComboBox("Arrival Time:").GetItem(Ran_Number2) '获取下拉框第Ran_Number2条记录的值
    Window("Flight Reservation").WinComboBox("Arrival Time:").Select Result2 '选择刚才获取到的值

    Window("Flight Reservation").WinCheckBox("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").Activate
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Edit").Set "1qazse4"
    Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0, 1
    Window("Flight Reservation").WinEdit("Tickets:").Set "2"
    Window("Flight Reservation").WinButton("Insert Order").Click
    Window("Flight Reservation").Close


    [ 本帖最后由 1qazse4 于 2008-1-16 16:17 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-1-16 16:19:24 | 只看该作者
    运行到这行的时候出错,
      Get_Count2=Window("Flight Reservation").WinComboBox("Arrival Time:").GetItemsCount '取得下拉框的记录的总条数

    错误信息已经传到楼上,但是我确实是识别了该控件WinComBox:Arrival Time:
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-1-16 17:25:25 | 只看该作者
    多谢大家帮忙顶,我已经找到问题所在了
       原来是我不够仔细
    因为 Departure Time:的属性Items count的值为10
             我也将Ariival Time:的属性Items count的值也定为10
    而其控件的原始值为9。所以运行总是说识别不了

    以后我认真一点拉!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-5-9 16:11
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    9#
    发表于 2008-1-17 15:31:10 | 只看该作者
    真的很好啊!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-9 05:47 , Processed in 0.082197 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表