我遇到的两个窗口不被确定的问题~~~
我遇到的两个窗口不被确定的问题~~~由于本人刚接触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"
也就是说Window是个MessageBox的话,程序就会出现错误,脚本会自动的选取任务栏中的任意窗体,这样的话脚本就会自动停下来并报出错误.解决方法就是将"$MessageBox"注释掉-->//"$MessageBox".这样的话就不会出现错误了.
问题二:Window Declarations后的窗体,SilkTest还是不识别.(仅针对下面的例子)
[-] CustomWin SWT_Window02
[ ] msw tag "#2"
[-] PushButton OK
[-] multitag "OK"
[ ] "#1"
解决方法:点击Options-->Class Map, 在Class Map窗体中将Custom Class 中的 SWT_Window0映射为Standard Class中的JavaMainWin就可以解决了.
有错误的地方,还请多多指教~~~~~ 针对上面的两个问题,我在其他版块得到了如下的回复,现转过来供大家参考:
问题一: [-] window DialogBox windowInUse
[-] tag "window in Use"
[ ] "$MessageBox"
这里的对象定义不对,tag/multitag的区别是前者是根据一个元素定位;后者根据多个(caption,PriorText,Index,Window ID,Location五个元素的组合),例子中提供了Caption(window in use),Index ("$MessageBox")两个元素,所以应该使用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来解决.
Some reson about my question. (转asks_zhuang的回复)
In silktest help documents which give me the resons are: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. 不错啊XinYu :) 多放点上来 多谢,我会继续努力,还希望大家能多多指教 为什么一样在公司里,你能发新帖而我不能 :( 辛宇现在不错啊,用的东西俺看都看不懂.TNND! 现在外面用SilkTest的公司很多吗?这里好象不教的也。辛宇是不是自学的啊?强啊 据我所知,SilkTest推进中国市场的时间并不长,所以国内的公司用SilkTest的很少.但是很多外企却都是用SilkTest.相对于其他几种自动化测试工具来说,SilkTest有其自己的优点.
1.在价格上,SilkTest要比Winrunner和LoadRunner要便宜很多.
2.在Add-in方面,SilkTest是不收费用的.
3.在与测试管理工具接口方面.有自带的Case管理功能.
4.脚本语言方面.是第四代面的向对象的脚本语言4Test,类似C++.
5.操作系统支持方面.SilkTest可以在Unix和Windows运行.
但SilkTest也有其自身的一些缺陷,比如说不支持中文等,在SilkTest把中文做为不可识别的字符来处理. 大家也不要小看SilkTest,正因为这个工具在国内还不是很流行,所以才有更广的发展空间,在Silk专区里有一篇帖子是专门招聘silktest的人员.网址如下:http://bbs.51testing.com/viewthread.php?tid=13787&fpage=1
但是大家也不要盲目的认为会SilkTest有多么的了不起,毕竟所有的自动化工具都是差不多的,只是在脚本语言,界面及某些加强功能上有较大的差别,所以只要认真学好一种自动化工具就可以了,其他的无非是触类旁通.
页:
[1]