hiyizhiyu 发表于 2006-5-8 09:41:18

参数化的问题

刚刚学习QTP
照着用户手册测试飞机订票网站时
我在参数化地点后
在对应的字段中输入了好几个地点
用户手册上说脚本会自动按每个地点值执行一次
但为什么我的脚本每次总是只执行第一个值后就自动停止了
一直不知道怎么解决
哪个大哥给点提示
谢谢

hiyizhiyu 发表于 2006-5-8 09:52:58

Browser("Welcome: Mercury").Page("Welcome: Mercury").WebEdit("userName").Set "yizhiyu"
Browser("Welcome: Mercury").Page("Welcome: Mercury").WebEdit("password").SetSecure "444c8eef8998786dbc34"
Browser("Welcome: Mercury").Page("Welcome: Mercury").Image("Sign-In").Click 28,6
Browser("Welcome: Mercury").Page("Find a Flight:").Sync
Browser("Welcome: Mercury").Page("Find a Flight:").WebList("fromPort").Select DataTable("p_Item", dtGlobalSheet)
Browser("Welcome: Mercury").Page("Find a Flight:").WebList("fromMonth").Select "December"
Browser("Welcome: Mercury").Page("Find a Flight:").WebList("fromDay").Select "29"
Browser("Welcome: Mercury").Page("Find a Flight:").WebList("toPort").Select "San Francisco"
Browser("Welcome: Mercury").Page("Find a Flight:").WebList("toMonth").Select "December"
Browser("Welcome: Mercury").Page("Find a Flight:").WebList("toDay").Select "31"
Browser("Welcome: Mercury").Page("Find a Flight:").WebRadioGroup("servClass").Select "Business"
Browser("Welcome: Mercury").Page("Find a Flight:").Image("findFlights").Click 51,16
Browser("Welcome: Mercury").Page("Select a Flight:").Image("reserveFlights").Click 60,14
Browser("Welcome: Mercury").Page("Book a Flight:").WebEdit("passFirst0").Set "lee"
Browser("Welcome: Mercury").Page("Book a Flight:").WebEdit("passLast0").Set "logan"
Browser("Welcome: Mercury").Page("Book a Flight:").WebEdit("creditnumber").Set "88888888888888"
Browser("Welcome: Mercury").Page("Book a Flight:").WebCheckBox("ticketLess").Set "ON"
Browser("Welcome: Mercury").Page("Book a Flight:").Image("buyFlights").Click 47,15
Browser("Welcome: Mercury").Page("Flight Confirmation:").Image("home").Click
Browser("Welcome: Mercury").Page("Welcome: Mercury_2").Sync

这个是我录制的脚本
Browser("Welcome: Mercury").Page("Find a Flight:").WebList("fromPort").Select DataTable("p_Item", dtGlobalSheet)
这个是参数化后的语句
那个好心人帮我看看问题在哪里吧
谢谢

海龙 发表于 2006-5-8 11:31:16

把你的脚本打包发上来

错误信息是什么?

hiyizhiyu 发表于 2006-5-8 13:11:16

斑竹
没有错误信息啊
就是参数化后没有循环执行表字段中的所有值
只是执行了表字段中的第一个值
是不是参数化后还要修改QTP什么设置才能循环执行所有表字段中的值呢?

梦醒十分 发表于 2006-5-8 14:20:50

Menu>Test>Settings>Run>Run on all rows.
另:最后一句Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours_2").Sync最好把它注释掉。

hiyizhiyu 发表于 2006-5-9 09:34:49

楼上的朋友
好像不是这个原因
难道还是脚本的问题
问一下斑竹
参数化后
是不是整个脚本执行完一次后马上就开始循环
或者能不能给我发个参数化的小脚本参考一下
感谢感谢啊

海龙 发表于 2006-5-9 13:47:44

将你的脚本发上来,别人帮你调试好,问题不就解决了吗


参数化后
是不是整个脚本执行完一次后马上就开始循环

这要看你的脚本怎么写

hiyizhiyu 发表于 2006-5-9 18:31:04

好的
这个是我的脚本
帮忙哦

海龙 发表于 2006-5-9 22:56:32

脚本在我的机器上可以回放,只是慢了点
参数华没有问题

你第二次运行失败的原因是因为,IE失去焦点导致找不到窗口,可以通过选择low-level录制模式,在脚本开始插入
Window("Microsoft Internet Explorer").Activate
来解决

Window("Microsoft Internet Explorer").Activate
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "yizhiyu"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "445ece3798a3f1f074a2aff2e4179eaa6827"

hiyizhiyu 发表于 2006-5-10 10:17:33

回放是可以的啊
但是参数化的时候我在global sheet里设置了两个地点:New York,London
可是回放的时候脚本总是只选择New York执行一次
不会执行选择London的操作
为什么呢
这样的话那不是参数化没有什么意义了
帮忙帮忙

ivanland 发表于 2008-9-12 14:42:24

是不是因为在脚本开始运行第二次迭代的时候找不到页面对象,结束的页面必须和开始的是同一个页面

xiaodong 发表于 2008-9-12 16:03:48

记得有一个object.init()方法..在QTP的官方文档上能查到.

ziheng198688 发表于 2008-9-24 11:28:09

按照截图试试,应该可以的
页: [1]
查看完整版本: 参数化的问题