分享

QTP?录制脚本时识别对象的奇怪问题(已解决)

 杨柳1234 2010-11-19

QTP 录制脚本时识别对象的奇怪问题(已解决)

(2008-09-21 00:20:43)
QTP 录制脚本时识别对象的奇怪问题(已解决)
  
这个问题终于解决了,把方法和大家分享下。本为为原创,转载请注明作者(Cheers_Lee)及出处.

用QTP录制自带的flight4a.exe这个程序,录制脚本如下:

Dialog("Login").WinEdit("Password:").Set "cheers_lee"
Dialog("Login").WinEdit("Edit").SetSecure "48d5246a02b27d466c0425aa91333b21439fc3a5"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Activate
Window("Flight Reservation").WinObject("Flight No:").Type "092208"
Window("Flight Reservation").WinComboBox("Departure Time:").Select "London"
Window("Flight Reservation").WinComboBox("Arrival Time:").Select "Los Angeles"
Window("Flight Reservation").WinCheckBox("FLIGHT").Set "OFF"
Window("Flight Reservation").Dialog("Flights Table").Activate
Window("Flight Reservation").Dialog("Flights Table").WinList("ListBox").Select "19170   LON   08:00 AM   LAX   08:45 AM   AA     $100.50"
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Edit").Set "cheers_lee"
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").Close

回放时报错: Cannot identify the object "Flights Table" (of class Dialog). Verify that this object's properties match an object currently displayed in your application.
(如下图):

QTP <wbr>录制脚本时识别对象的奇怪问题(已解决)
我尝试了好几种解决办法,都已失败而告终,真是郁闷的不行了。
仔细观察,原来是在脚本回放的时候,当点击“Flights...”QTP <wbr>录制脚本时识别对象的奇怪问题(已解决)这个按钮,没有弹出QTP <wbr>录制脚本时识别对象的奇怪问题(已解决)
这个Dailog,所以才报错。在Expert视图中,发现QTP把QTP <wbr>录制脚本时识别对象的奇怪问题(已解决)识别成了“WinCheckBox”并给其方法为:WinCheckBox("FLIGHT").Set "OFF",在这块,我有些纳闷了,这明明是个button怎么会识别成WinCheckBox呢?如果是WinCheckBox那也应该是WinCheckBox("FLIGHT").Set "ON"啊!所以我采用描述性编程,将语句改成:
Window("Flight Reservation").WinCheckBox("text:=FLIGHT").Set "ON"
再次回放,出现了那个Flights table 了,但更郁闷的是有弹出了新的对话框:The operation cannot be performed (如下图)
QTP <wbr>录制脚本时识别对象的奇怪问题(已解决)
还是不能通过,真是多灾多难啊,哈哈^_^
经过仔细观察我发现,可能是QTP在录制脚本时,识别对象录制方法不正确,录制的脚本是:
Window("Flight Reservation").WinCheckBox("FLIGHT").Set "OFF"
但实际上在操作是,我们只是对于WinCheckBox,这个对象之下执行Click操作,所以我将脚本重新改为:
Window("Flight Reservation").WinCheckBox("text:=FLIGHT").click
果然测试通过,困扰我的问题终于解决!大功告成,呵呵。

备注:虽然问题是解决,但是为什么QPT把对象的方法录制错了呢?我现在还是有些不解,希望各位能和我交流

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多