51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4686|回复: 15
打印 上一主题 下一主题

[求助] 怎样在脚本中增加等待时间?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-6-26 12:38:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位高手,怎样在脚本中增加等待时间?

执行回放录制脚本时失败,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 Not  LoginOK
        Wait(2)
        LoginOK=Browser("测试login系统").Page("测试login系统").WebArea("http://10.66.128.6:8080/test/").Click.Exist
        counter=counter+1
        If counter=10  Then
                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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-6-26 12:48:38 | 只看该作者
不是回你了吗?用wait(10)函数啊
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-6-26 13:08:03 | 只看该作者
object.Exist( [TimeOut] )
你Exist语法用错了,应该加上括号object.Exist()
                                                         chill
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-6-26 13:26:11 | 只看该作者
加入等待时间有两种方式,一种是同步点,另一种就是wait语句。这两者之间用法上有点技巧,同步点会根据不同情况进行延时,而wait语句中所添加的时间值是固定的。举个生活中的例子,同步点就像你公交车停靠站所花费时间一样是一个不确定值,而wait语句就像地铁停靠站时间一样是一个确定值;
同时注意,添加同步点时不要加错位置,哪个语句出错了,就在哪个语句的前面添加同步点
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2006-6-26 15:34:24 | 只看该作者
    根据楼主的描述,我的建议是用同步点,这样肯定能行。如果采用你的第二个方案,等待的时间要足够长。否则遇到网络堵塞或机器的性能不好等情况,你要测试的对象有可能还是出不来。
    只要是能解决问题就可以了,不要管是采用了什么方法。用邓小平的一句名言:“不管是白猫,还是黑猫,只要逮住老鼠,就是好猫。”
    我不知道楼主发这个帖子是为了解决问题还是想学习怎么使用object.Exist
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2006-6-26 16:21:59 | 只看该作者

    多谢各位!主要是想学习使用wait这样的方法

    这个论坛不错啊。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2006-6-26 20:50:51 | 只看该作者
    把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 Not  LoginOK
            Wait(2)
            LoginOK=Browser("测试login系统").Page("测试login系统_2").Frame("FrameMain").WebElement("登录/注销").Exist
            counter=counter+1
            If counter=10  Then
                    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
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2006-6-27 10:21:17 | 只看该作者
    aprina  说的对,很有道理! 这是不是你要的结果?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2006-6-27 10:32:02 | 只看该作者
    希望大家能把解决问题后答案给公布出来,以便让他人学习.谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2006-7-27 16:09:34 | 只看该作者
    aprina 说的很对,我今天遇到同样问题也是这样解决的
    谢谢大家分享!
    还有点体会,遇到这种情况,我分段录制脚本也是可以的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2006-7-28 15:35:49 | 只看该作者
    哈哈,又学到了一点知识,把我的一个问题也解决了,太好了。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2006-7-28 22:51:28 | 只看该作者

    回贴

    个人认为,只要用wait语句,不是绝对,谁可不可以举例,就此程序而言,怎么用同步来实现?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2011-10-19 14:32:09 | 只看该作者
    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").Type  micReturn
    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.
    求帮忙解决
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2011-11-2 14:08:57 | 只看该作者
    WAIT()
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2011-11-2 19:47:03 | 只看该作者
    .Click.Exist
    能这样写?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2011-11-3 09:46:15 | 只看该作者
    举个例子:browser("***").sync  是等待浏览器加载完成,见右下角有“完成”即可。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-25 05:13 , Processed in 0.083250 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表