51Testing软件测试论坛

标题: 请问有什么语句可以关闭所有ie窗口么? [打印本页]

作者: keating.cwz    时间: 2007-3-6 13:34
标题: 请问有什么语句可以关闭所有ie窗口么?
请问winrunner里面有什么语句可以关闭所有的ie窗口么?
作者: dionysus    时间: 2007-3-9 22:45
我理解lz的意思是先判断当前系统中是否有ie,如果有的话则关闭所有?
察看了一下帮助和其他资料,在WR中关闭所有ie很难做到。开始的想法是使用win_activate和win_close函数,做一个循环判断并关闭ie窗体。但如何正确activate是一个问题,有多个ie窗体且不确定具体label时必然要在gui文件中要用到通配符,但这样的话回放脚本的时候WR就会停在那里了,因为有多个窗体都符合,所以不知道要激活哪一个。
或者使用外部函数,通过调用系统api来关闭ie进程
作者: tiemuzhen    时间: 2007-3-12 12:13
如果是特定的,可以录制,如果是非唯一性的可以调用dll来实现。
作者: keating.cwz    时间: 2007-3-12 14:10
谢谢bz^_^

要关闭的几个ie基本能确定label,所以使用win_activate和win_close,应该能做到,只是比较麻烦

你们说的调用系统api或dll,具体是怎么操作呢~
作者: fengxueren    时间: 2007-3-13 12:54
试试下面的代码:

while (win_exists("{class: window,MSW_class: browser_main_window,location: 0}")==E_OK)
            win_close("{class: window,MSW_class: browser_main_window,location: 0}");

while (win_exists("{class: window,MSW_class: IEFrame,location: 0}")==E_OK)
            win_close("{class: window,MSW_class: IEFrame,location: 0}");


不过它只能关闭在打开winrunner后打开的所有ie窗口
作者: keating.cwz    时间: 2007-3-13 14:34
可以了诶,谢谢,谢谢~^_^

问一下,IEFrame是什么呢?
还有,为什么location是1的窗口也能用这个关掉呢?
作者: kolecat    时间: 2007-3-13 16:06
IEFrame 是用SPY++ 看到的IE浏览器的类名, browser_main_window 是WR的GUI SPY看到的IE浏览器类名, 没想到可以混用?

location不知道是什么
作者: dionysus    时间: 2007-3-13 21:08
原帖由 fengxueren 于 2007-3-13 12:54 发表
试试下面的代码:

while (win_exists("{class: window,MSW_class: browser_main_window,location: 0}")==E_OK)
            win_close("{class: window,MSW_class: browser_main_window,location: 0 ...

5楼的方法非常好!使用的是描述性编程的语句,可以脱离gui文件而且定位的属性是自己选择的。location这个属性应该是自己加的,WR的spy没有,不过WR照样可以支持,location是控件所在位置的编号,这个需要自己从0开始一个个尝试,有疑问的可以搜一下本版中的相关帖子。
再次感谢fengxueren提供的解决办法!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2