QTP Tutorial 中的订票操作参数化后无法运行第二行
qtp运行脚本如下:Dialog("Login").Check CheckPoint("Login")
Dialog("Login").Activate ' 打开登录界面
RunAction "Action_help", oneIteration
Dialog("Login").WinButton("Help").Click
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinButton("Help").Click
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Reporter.ReportEvent micDone, "login", "开始登陆操作"
Dialog("Login").WinEdit("Agent Name:").Set "MERCURY" ' 输入代理机构名
Dialog("Login").WinEdit("Agent Name:").TypemicTab ' 输入光标切换到密码列
Dialog("Login").WinEdit("Agent Name:").Output CheckPoint("Agent Name:")
Dialog("Login").WinEdit("Password:").Output CheckPoint("Password:_2")
Dialog("Login").WinEdit("Password:").SetSecure "4a8e02d7e1853f24cca1cdf02380c10784b4362e" ' 输入登录密码
Dialog("Login").WinButton("OK").Click
Reporter.ReportEvent micDone, "login", "完成登录操作"
Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable("Fly_data", dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("Fly_from", dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("Fly_to", dtGlobalSheet)
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "LCL"
Window("Flight Reservation").Static("Tickets:").Click
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").Close
过程中参数化了Fly_from ,Fly_to,Fly_data, 在data table表中输入了两行参数,运行后第一行可以正常运行,第二行参数无法运行,提示信息如下:
Cannot identify the object "Login" (of class Dialog). Verify that this object's properties match an object currently displayed in your application.
Line (1): "Dialog("Login").Check CheckPoint("Login")".
Tip: If the objects in your application have changed, the Maintenance Run Mode can
help you identify and update your steps and/or the objects in your repository.
不知道怎么回事啊,为什么运行第二行的时候不能识别login对话框呢,希望高手帮忙解释解决下,谢了 建议先查看下对象库中("Login"),可以用高亮按钮查看下对象。 1.加一条,DataTable.SetNextRow 揣测:
是运行第二次,报错还是运行第2行报错。
我开始以为我看清楚了,再看又糊涂了。
如果是第二次,应该就是楼上的解法。 我也遇到过这个问题,参数化的时候经常报无法识别的错误 是能正常运行第一行参数,第一行参数运行完后自动又从脚本第一行开始运行这个就报错,DataTable.SetNextRow这条加在哪呢,我在几个地方都试了下不起作用 看楼上这个答复,我估计是运行第二轮吧。
LZ的dataTable里面的数据是有2行么?或者是第一行有数据,第二行有一条黑线?
建议选择File-Setting,选择Run的Table页,看看是不是选择的是run allrows,如果你只想运行一次,请改成run oneiteration,好像是这个单词吧。
因为你第一次执行完之后,这个Window已经被关闭了,第二次运行的时候估计没有打开Dialog,导致识别不到对象。
如果你想运行2次以上,需要解决第二次执行打开Dialog的问题。我估计第一次是用QTP本身帮你打开的程序,建议要循环多次不要用那个,修改一下Recording and Run Setting,将Windows页的改成不打开任何程序。
然后在第一行加上 Run "程序的地址" 不记得是不是这么写了,或者试试 Systemutil.Run "程序的地址" 怎么大家都没有搜索论坛的习惯?怎么没有去 看帖子的习惯?
在里面,赫然有一篇 《QTP Tutorial 中的订票操作参数化后无法运行第二行的解决方法》! 原帖由 shotstar 于 2009-9-1 20:41 发表 http://bbs.51testing.com/images/common/back.gif
看楼上这个答复,我估计是运行第二轮吧。
LZ的dataTable里面的数据是有2行么?或者是第一行有数据,第二行有一条黑线?
建议选择File-Setting,选择Run的Table页,看看是不是选择的是run allrows,如果你只想运行一 ...
谢谢shorstar,问题解决了 看了还是不会
页:
[1]