怎样在脚本中增加等待时间?
请教各位高手,怎样在脚本中增加等待时间?执行回放录制脚本时失败,Retry后又能继续完成,怎样解决?
比如测试系统登陆后,需要等待一段时间,注销这个object才能出来,希望执行注销前,等待一段时间.有两个方案:
方案1:设置所有对象的等待超时时间,进入test-settings-run,设置object sychronization timeout 值增大,缺省设置为:20000 milliseconds。
方案2:使用Exist, Wait 语句,在继续下一步骤前,等待多长时间。
方案1已经ok了.
但是方案2不知道该怎样写这个脚本? 照葫芦化瓢以后,不能执行. 呵呵,不好意思,刚学,哪位指教一下?先谢了.
下面的 LoginOK 开始的那段,就出错了.错误信息是这样的:
Cannot identify the object "http://10.66.128.6:8080/test/"(of class WebArea). Verify that this object's properties match an object currently displayed in your application.
Browser("测试login系统").Page("测试login系统").WebEdit("WebEdit").Set ""
Browser("测试login系统").Page("测试login系统").WebEdit("WebEdit").Set "a0125"
Browser("测试login系统").Page("测试login系统").WebEdit("WebEdit_2").SetSecure "449ce6c06324101810f0ff3377c3302b8bb0545e5e62"
Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").FireEvent "onmouseover"
Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").Click
LoginOK=Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").Click.Exist
counter=1
While NotLoginOK
Wait(2)
LoginOK=Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").Click.Exist
counter=counter+1
If counter=10Then
LoninOK=True
End If
Wend
Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("登录/注销").Click
Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("注销").Click
Browser("测试login系统").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("测试login系统").Page("测试login系统").Sync 不是回你了吗?用wait(10)函数啊 object.Exist( )
你Exist语法用错了,应该加上括号object.Exist()
chill 加入等待时间有两种方式,一种是同步点,另一种就是wait语句。这两者之间用法上有点技巧,同步点会根据不同情况进行延时,而wait语句中所添加的时间值是固定的。举个生活中的例子,同步点就像你公交车停靠站所花费时间一样是一个不确定值,而wait语句就像地铁停靠站时间一样是一个确定值;
同时注意,添加同步点时不要加错位置,哪个语句出错了,就在哪个语句的前面添加同步点 根据楼主的描述,我的建议是用同步点,这样肯定能行。如果采用你的第二个方案,等待的时间要足够长。否则遇到网络堵塞或机器的性能不好等情况,你要测试的对象有可能还是出不来。
只要是能解决问题就可以了,不要管是采用了什么方法。用邓小平的一句名言:“不管是白猫,还是黑猫,只要逮住老鼠,就是好猫。”
我不知道楼主发这个帖子是为了解决问题还是想学习怎么使用object.Exist
多谢各位!主要是想学习使用wait这样的方法
这个论坛不错啊。 把LoginOK=Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").Click.Exist改成LoginOK=Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("登录/注销").Exist
就对了,我理解原因是这样的:
Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").Click 这是一个方法,不应该判断这个方法是否存在了,
而应该判断
Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("登录/注销") 这个对象存在后,再对这个对象做后续的click操作。
下面这段代码就能正确执行了。
Browser("测试login系统").Page("测试login系统").WebEdit("WebEdit").Set ""
Browser("测试login系统").Page("测试login系统").WebEdit("WebEdit").Set "a0125"
Browser("测试login系统").Page("测试login系统").WebEdit("WebEdit_2").SetSecure "449ce6c06324101810f0ff3377c3302b8bb0545e5e62"
Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").FireEvent "onmouseover"
Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").Click
LoginOK=Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("登录/注销").Exist
counter=1
While NotLoginOK
Wait(2)
LoginOK=Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("登录/注销").Exist
counter=counter+1
If counter=10Then
LoninOK=True
End If
Wend
Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("登录/注销").Click
Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("注销").Click
Browser("测试login系统").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("测试login系统").Page("测试login系统").Sync aprina说的对,很有道理! 这是不是你要的结果? 希望大家能把解决问题后答案给公布出来,以便让他人学习.谢谢! aprina 说的很对,我今天遇到同样问题也是这样解决的
谢谢大家分享!
还有点体会,遇到这种情况,我分段录制脚本也是可以的 哈哈,又学到了一点知识,把我的一个问题也解决了,太好了。。
回贴
个人认为,只要用wait语句,不是绝对,谁可不可以举例,就此程序而言,怎么用同步来实现? SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","","C:\Documents and Settings\pc003-2011","open"Browser("百度一下,你就知道").WinEdit("Edit").SetSelection 0,21
Browser("百度一下,你就知道").WinEdit("Edit").Type "http://192.168.10.148:8080/ca"
Browser("百度一下,你就知道").WinEdit("Edit").Set "http://192.168.10.148:8080/cas"
Browser("百度一下,你就知道").WinEdit("Edit").TypemicReturn
Browser("百度一下,你就知道").Page("电子交易平台管理系统").WebEdit("empAcct").Set "yyl"
Browser("百度一下,你就知道").Page("电子交易平台管理系统").WebEdit("password").Click
Browser("百度一下,你就知道").Page("电子交易平台管理系统").WebEdit("password").SetSecure "4e9e6909c197016bc6d605678fda"
Browser("百度一下,你就知道").Page("电子交易平台管理系统").WebEdit("validcode").Click
Browser("百度一下,你就知道").Page("电子交易平台管理系统").WebEdit("validcode").Set "8020"
Browser("百度一下,你就知道").Page("电子交易平台管理系统").Image("dl").Click
Browser("百度一下,你就知道").Page("电子交易平台后台管理系统").Link("交易管理").Click
Browser("百度一下,你就知道").Page("交易管理").Sync
Browser("百度一下,你就知道").Close
回放出错:Cannot identify the object "交易管理" (of class Link). Verify that this object's properties match an object currently displayed in your application.
求帮忙解决 WAIT() .Click.Exist
能这样写? 举个例子:browser("***").sync是等待浏览器加载完成,见右下角有“完成”即可。
页:
[1]