51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3118|回复: 4
打印 上一主题 下一主题

[原创] 我遇到的两个窗口不被确定的问题~~~

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-5-17 22:14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于本人刚接触SilkTest时间不长,所以发表的观点不一定正确,还请各位大虾指教,共同进步.

问题一:程序执行时自动随即选取任务栏中的窗体,从而导致运行失败
     [-] if( Window.Exists(200))
         [ ] Windowr.SetActive()
         [ ] Window.pbOK.Click()
         [ ]
         [-] if(WindowInUse.Exists(2))
         [ ] LogWarning("*** Warning: The Window is being used")
         [ ] WindowInUse.SetActive()
         [ ] WindowInUse.pbOK.Click()
         [ ]
         [ ] Window.SetActive()
         [ ] Window.pbCancel.Click()
      如上面的的程序所示,如果程序正常运行的话,是不会执行第二个if语句的,但如果
      [-] window DialogBox windowInUse
        [-] tag "window in Use"
                [ ] "$MessageBox[1]"

也就是说Window是个MessageBox的话,程序就会出现错误,脚本会自动的选取任务栏中的任意窗体,这样的话脚本就会自动停下来并报出错误.解决方法就是将"$MessageBox[1]"注释掉-->//"$MessageBox[1]".这样的话就不会出现错误了.

问题二:Window Declarations后的窗体,SilkTest还是不识别.(仅针对下面的例子)
     [-] CustomWin SWT_Window02
        [ ] msw tag "[SWT_Window0]#2"
        [-] PushButton OK
            [-] multitag "OK"
        [ ] "#1"
     解决方法:点击Options-->Class Map, 在Class Map窗体中将Custom Class 中的 SWT_Window0映射为Standard Class中的JavaMainWin就可以解决了.

     

有错误的地方,还请多多指教~~~~~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2005-5-18 10:13:24 | 只看该作者
问题一: [-] window DialogBox windowInUse
           [-] tag "window in Use"
                [ ] "$MessageBox[1]"
这里的对象定义不对,tag/multitag的区别是前者是根据一个元素定位;后者根据多个(caption,PriorText,Index,Window ID,Location五个元素的组合),例子中提供了Caption(window in use),Index ("$MessageBox[1]")两个元素,所以应该使用multiTag.而你的解决方法是删除一个元素-index,继续使用tag,所以也可以解决问题.
这里的代码是否修改过?直接录制应该不会遇到这种情况的. (可以参考帮助中的multitag&tag内容)

问题2.
custom Win是silktest不能直接识别的窗口(window),对这种情况可以使用window map或record/class来解决,例子中就是使用window map,把他map成为真正支持的window.
还是一点奇怪,如果环境设置没有问题.JavaMainWin是可以直接识别出来的.
一般silktest不能直接识别的对象都是非标准的对象,用户定义的对象.xinyu2119
的解决方案是针对那种用户对标准对象进行了包装(重命名),比如text field 被包装成了super textField. 而本身text field的功能都继续支持,所以可以通过class map来解决.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-5-18 11:01:43 | 只看该作者
问题一:
     这些都是通过Window Declaration录制的,我没有对其进行修改,但还是出现了这样的情况,具体原因我还没有弄清楚,但我已经碰到好几回了.

问题二:
     也许环境设置出现了问题,因为以前定义的时候没有出现过这种情况.但现在却识别不出来了,原因还未找到
     "对标准对象进行了包装(重命名)"我对其还没有完全的理解,期望指点,谢谢~~`
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-5-18 11:53:53 | 只看该作者

silktest help documents , I hope it helps.

Two reasons why SilkTest sees the object as CustomWin

There are two reasons why SilkTest sees the object as a CustomWin.

?Upon its definition in the application under test, the control was simply named differently than the standard name. For example, instead of it being named a TextField, it was named EnterTextRegion. If this is the only reason, then you can class map the control to the standard name.

?You never know whether class mapping will work until you try it. It will work if the object isn抰 really a custom object, but rather a standard control with a non-standard name. Try this as your first attempt at dealing with a CustomWin.

If the class mapping does not work, it is because of the following reason.

?The object truly is a custom object; that is, the software in the application under test that creates and manipulates the object is not from the standard library. That means that the SilkTest algorithms written to interrogate this kind of object will not work, and other approaches will have to be used to manipulate the object.
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-6-22 14:01:12 | 只看该作者
哦 好的 谢谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 21:09 , Processed in 0.080929 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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