当我们要检查页面上wr不认识控件中的数据的正确性的时候,该怎么办?
因为wr有些控件不认识,例如grid,对于一些页面上的数据我们不能通过工具检测,我想可不可以这样做?写一个dll,实现拷屏功能,并保存起来,dll的传入参数是这个图存放路径和图名称。
然后在wr中当要检查页面上数据是否正确的时候,就调用这个dll,先把屏幕拷下来,存放在一个地方,测试完成后,再看这个图查看数据是否正确。
不知道那位高手能写一个能实现拷屏的dll文件。不胜感激,还有如果那位能有更好的办法,也可以说出来。 这样做和image checkpoint有什么区别? 这样做明显是行不通的,拷屏后的数据又如何区下来? 这样做明显是行不通的,拷屏后的数据又如何区下来? to:shyfish
image checkpoint要先录制正确的图,才能做比较。我这样不需要先知道正确的图是什么样子,只需等脚本回放完后,自己再去检查拷屏的图中的数据是否正确。
to:肚皮
拷屏后数据的正确性是不能够取下来的,当然这个也有避短,不能完全自动化。我只是想在脚本回放完后,查看在当时这个页面上的数据是否正确,如果错了我也知道是怎么回事,并不需要再把这个数据取下来做什么事情。
当然如果能取下来更好,但这也是没办法啊!
我现在就想知道怎么写这个拷屏的dll文件,或者function也可以?
一个简单的DLL
从CSDN上找了段代码,写了个简单的DLL,看看符不符合你的要求:DLL export:
extern "C" __declspec(dllexport) BOOL CopyScreen(const char* dir, const char* name);
导出函数是这样定义的(就这一个)
需要传入两个参数:dir,就是目录,如"C:\\",name,如“wr",文件名,默认存成bmp格式,不能自己加后缀名,调用后就会复制当前屏幕内容(整个屏幕的),存成:C:\\wr.bmp
DLL开发环境:VC6.0 + WIN2000EN
使用步骤:
1、把这个DLL复制到系统目录下,或者在系统能找到的目录,比如winnt\system32目录下
在WR中这样使用:
extern int CopyScreen(in string, in string);
load_dll("CopyScrDll.dll");
CopyScreen("C:\\", "wr");
unload_dll("CopyScrDll.dll");
这样就可以了
如果有问题可以再问我
[ Last edited by shyfish on 2005-3-4 at 12:35 ] 还有,如果更改了DLL的名字,WR脚本中的load也要作相应的改变 高手! 非常感谢,我先试一试 太感谢shyfish了,非常成功 winrunner不能识别的如gird控件 ,可以试试用虚拟对象来识别它,7.6版本在tools->virtual object wizard ,它的物理属性以在屏蔽中的x,y位置来标识的 不错,不错。好东西,大家要收藏
wo顶顶顶顶顶
不错,我也顶一下好贴
强顶!!感谢各位高手阿shyfish请求你加我为好友
msn:super_zhch@hotmail.comqq:63212000
wss123 的方法,我们不认同!
在实际的项目中要的是稳定性,界面不可能一直不变!所以虚拟的东西我们建议不能用! 不需要写dll吧 win_capture_bitmap不就行了!搞这么负杂请加我!
我是个初学者,希望各位高手多多指教。我的MSN:tansun1205@hotmail.com
我们要检查页面上wr不认识控件中的数据的正确性的时候,该怎么办?
obj_get_text ( object, out_text );win_get_text ( window, out_text );
用这两个函数可以获取数据,但长度有限制。如grid数据多不可能完全得到
页:
[1]