keating.cwz 发表于 2007-3-6 13:34:38

请问有什么语句可以关闭所有ie窗口么?

请问winrunner里面有什么语句可以关闭所有的ie窗口么?

dionysus 发表于 2007-3-9 22:45:39

我理解lz的意思是先判断当前系统中是否有ie,如果有的话则关闭所有?
察看了一下帮助和其他资料,在WR中关闭所有ie很难做到。开始的想法是使用win_activate和win_close函数,做一个循环判断并关闭ie窗体。但如何正确activate是一个问题,有多个ie窗体且不确定具体label时必然要在gui文件中要用到通配符,但这样的话回放脚本的时候WR就会停在那里了,因为有多个窗体都符合,所以不知道要激活哪一个。
或者使用外部函数,通过调用系统api来关闭ie进程

tiemuzhen 发表于 2007-3-12 12:13:15

如果是特定的,可以录制,如果是非唯一性的可以调用dll来实现。

keating.cwz 发表于 2007-3-12 14:10:08

谢谢bz^_^

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

你们说的调用系统api或dll,具体是怎么操作呢~

fengxueren 发表于 2007-3-13 12:54:49

试试下面的代码:

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:01

可以了诶,谢谢,谢谢~^_^

问一下,IEFrame是什么呢?
还有,为什么location是1的窗口也能用这个关掉呢?

kolecat 发表于 2007-3-13 16:06:54

IEFrame 是用SPY++ 看到的IE浏览器的类名, browser_main_window 是WR的GUI SPY看到的IE浏览器类名, 没想到可以混用?

location不知道是什么

dionysus 发表于 2007-3-13 21:08:01

原帖由 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提供的解决办法!
页: [1]
查看完整版本: 请问有什么语句可以关闭所有ie窗口么?