51Testing软件测试论坛

标题: 为什么On error resume next这一句不起作用 [打印本页]

作者: hepburn    时间: 2006-5-15 18:08
标题: 为什么On error resume next这一句不起作用
为什么On error resume next这一句不起作用

Browser("Williams ConEx Registration").Page("Williams ConEx Registration").WebList("fairId").Select "TEST_FAIR"
Browser("Williams ConEx Registration").Page("Williams ConEx Registration_2").WebEdit("barcode").Set DataTable("parameter", dtGlobalSheet)
Browser("Williams ConEx Registration").Page("Williams ConEx Registration_2").WebEdit("barcode").Submit
Browser("Williams ConEx Registration").Page("Williams ConEx Registration_3").Sync
On error resume next

为什么On error resume next这一句不起作用,还是不能返回到开始的界面,因为每次执行完就报错.必须点后退才可以循环执行.请高手指教!!!!!
作者: 海龙    时间: 2006-5-16 13:49
描述详细一点,按你目前的描述应该是你对On error resume next
这个语句的作用理解错误
作者: hepburn    时间: 2006-5-16 16:22
那这个语句On error resume next,怎么理解呢
还有我上面的问题要怎么解决,就是每次运行完都要转到报错的页面,然后必须返回才可以循环执行

[ 本帖最后由 hepburn 于 2006-5-16 16:25 编辑 ]
作者: xiaonan    时间: 2006-5-16 16:34
"On error resume next"
这句话的意思是:一但出错了就恢复到出错位置下一个记录.
至于你要执行什么循环,看不明白
作者: hepburn    时间: 2006-5-16 16:43
Browser("Williams ConEx Registration").Page("Williams ConEx Registration").WebList("fairId").Select "TEST_FAIR"
Browser("Williams ConEx Registration").Page("Williams ConEx Registration_2").WebEdit("barcode").Set DataTable("parameter", dtGlobalSheet)
Browser("Williams ConEx Registration").Page("Williams ConEx Registration_2").WebEdit("barcode").Submit
Browser("Williams ConEx Registration").Page("Williams ConEx Registration_3").Sync
On Error Resume Next

报错的界面是Browser("Apache Tomcat/5.0.28 -")
循环就是DataTable的数据每个都要执行一次

[ 本帖最后由 hepburn 于 2006-5-16 16:44 编辑 ]
作者: investmark    时间: 2006-5-16 17:34
On error resume next 是用来做脚本本身的出错处理用的,对于循环就用其他的方法好了。
作者: QA_BAY    时间: 2006-5-16 18:06
你已经设了dtGlobalSheet了,每个数据应该可以循环一次!
你的错误是什么!
作者: hepburn    时间: 2006-5-16 18:12
谢谢各位前辈了,每一次执行完了,就转到报错的界面是Browser("Apache Tomcat/5.0.28 -"),必须按工具拦的"返回"才可以继续执行,有什么办法可以跳过报错的界面么?虽然插入一个返回的步骤也可以,可是这个不是好办法啊

[ 本帖最后由 hepburn 于 2006-5-16 18:15 编辑 ]
作者: Hunter    时间: 2006-5-16 19:13
on error resume next有其作用域的概念的,一般会写在作用脚本的前面,lz尝试一下把这句话放在最前面,看有不同吗?
作者: hepburn    时间: 2006-5-17 10:09
对啊,我现在就是放在最前面的,可是还是有报错的界面
作者: Hunter    时间: 2006-5-17 11:23
on error resume next是qtp脚本本身抱错时候执行下一条语句,并不是可以忽略页面上报出的错误,这点我们理解相同吗?
作者: hepburn    时间: 2006-5-17 11:28
谢谢,我现在明白了,以前我是尝试着用on error resume next ,不能解决问题.
那我的问题有解决的办法么
作者: michaelyung    时间: 2006-5-30 09:56
因为这里你的上一步和下一步有依赖性。如果其中一步出错的话,后面的有些对象当然就识别不了了,所以就停在出错的页面。个人觉得两种办法:
1. 把你的这些action封装在一个function里,然后外部用on error resume next,这样function里某一步出错时,直接放弃,exit 到funtion外面再重新进去。
on error resume next
for (){
....//your code
reset() //重新复位,进行下一轮
}

2. 在每一步加上wait语句,一定要wait到该步成功后才到下一步,如果出错就会停在那里,每sleep一定时间再执行能否成功,一直到你手工强制通过后再进行后面的。

这种前后依赖性强的一般都是reset重新来,否则中间一步出错了,后面的结果都是无意义的。
作者: hepburn    时间: 2006-6-9 15:06
michaelyung,谢谢你,现在才完全理解你的意思.
作者: m_2    时间: 2006-6-12 08:15
友情问一句,reset是什么?
自己写的函数吗?还是什么自带的函数?
能否讲的详细点。谢谢~
作者: lin85210    时间: 2008-6-30 15:40
顶个 方法




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