在RFT中关闭所有IE浏览器窗口的3种方法
2010-01-22 20:47
405 查看
如果通过调用browser测试对象的close方法,则只能关闭一个浏览器窗口:
browser_htmlBrowser().close();
要想关闭多个IE浏览器窗口,可以通过杀死IE进程的方式:
try {
Runtime.getRuntime().exec("cmd /c tskill iexplore");
} catch (IOException e) {
System.out.println(e.toString());
}
也可以通过查找窗口名的方式来找到每个IE窗口并关闭:
IWindow[] windows = getTopWindowsWithCaptionPattern(".*Microsoft Internet Explorer",true);
for(int i=0;i<windows.length;i++)
{
windows[i].close();
}
protected IWindow[] getTopWindowsWithCaptionPattern(String pattern, boolean ignoreCase)
{
Regex regex = ( ignoreCase ? new Regex(pattern, Regex.MATCH_CASEINDEPENDENT) :
new Regex(pattern) );
java.util.Vector matches = new java.util.Vector(10);
IWindow[] topWindows = getTopWindows();
int length = ( topWindows != null ? topWindows.length : 0 );
for ( int i = 0; i < length; ++i )
{
String text = topWindows[i].getText();
if ( regex.matches(text) )
matches.add(topWindows[i]);
}
int resultLength = matches.size();
IWindow[] result = ( resultLength != 0 ?
new IWindow[resultLength] :
null );
for ( int i = 0; i < resultLength; ++i )
result[i] = (IWindow)matches.elementAt(i);
return result;
}
还可以通过查找Domain对象的方式找到所有Html.HtmlBrowser类型的对象,然后调用其close方法:
for (int i = 0; i < domains.length; ++i) {
if (domains[i].getName().equals("Html")) {
//We found an Html domain.
TestObject[] topObjects = domains[i].getTopObjects();
if (topObjects != null) {
try {
for (int j = 0; j < topObjects.length; ++j) {
//found a browser window
if (topObjects[j]
.getProperty(".class")
.equals("Html.HtmlBrowser")) {
BrowserTestObject browser =
new BrowserTestObject(topObjects[j]);
browser.activate();
browser.close();
}
}
} catch (Exception e) {
System.out.println("Error in closing All Browsers: " + e);
}
}
}
}
browser_htmlBrowser().close();
要想关闭多个IE浏览器窗口,可以通过杀死IE进程的方式:
try {
Runtime.getRuntime().exec("cmd /c tskill iexplore");
} catch (IOException e) {
System.out.println(e.toString());
}
也可以通过查找窗口名的方式来找到每个IE窗口并关闭:
IWindow[] windows = getTopWindowsWithCaptionPattern(".*Microsoft Internet Explorer",true);
for(int i=0;i<windows.length;i++)
{
windows[i].close();
}
protected IWindow[] getTopWindowsWithCaptionPattern(String pattern, boolean ignoreCase)
{
Regex regex = ( ignoreCase ? new Regex(pattern, Regex.MATCH_CASEINDEPENDENT) :
new Regex(pattern) );
java.util.Vector matches = new java.util.Vector(10);
IWindow[] topWindows = getTopWindows();
int length = ( topWindows != null ? topWindows.length : 0 );
for ( int i = 0; i < length; ++i )
{
String text = topWindows[i].getText();
if ( regex.matches(text) )
matches.add(topWindows[i]);
}
int resultLength = matches.size();
IWindow[] result = ( resultLength != 0 ?
new IWindow[resultLength] :
null );
for ( int i = 0; i < resultLength; ++i )
result[i] = (IWindow)matches.elementAt(i);
return result;
}
还可以通过查找Domain对象的方式找到所有Html.HtmlBrowser类型的对象,然后调用其close方法:
for (int i = 0; i < domains.length; ++i) {
if (domains[i].getName().equals("Html")) {
//We found an Html domain.
TestObject[] topObjects = domains[i].getTopObjects();
if (topObjects != null) {
try {
for (int j = 0; j < topObjects.length; ++j) {
//found a browser window
if (topObjects[j]
.getProperty(".class")
.equals("Html.HtmlBrowser")) {
BrowserTestObject browser =
new BrowserTestObject(topObjects[j]);
browser.activate();
browser.close();
}
}
} catch (Exception e) {
System.out.println("Error in closing All Browsers: " + e);
}
}
}
}
相关文章推荐
- C# WinForm和WPF关闭所有子窗口的方法
- 在RFT中关闭当前激活窗口的两种方法
- 兼容所有浏览器的窗口关闭方法
- C#关闭所有子窗口的方法
- 根据IE的不同,调用不同的无提示关闭窗口的方法,
- javascript 关闭本窗口的几个小方法
- js关闭窗口的几种方法
- WPF: 结束程序及关闭所有窗口
- C#中关闭第一个Form窗口,打开另一个新窗口方法
- QTP关闭除了ALM/QC以外的所有IE窗口
- Eclipse取消或者关闭tomcat所有自动发布(部署)方法
- c#禁止窗口关闭方法(重写关闭事件)
- 两种关闭窗口的方法
- Android 退出程序时关闭所有的activity的几种方法
- IE6-7 JS关闭窗口不提示的方法
- 解决ligerUI关闭子窗口,无法刷新父界面的方法
- Delphi获取其它进程窗口句柄的3种方法
- MFC(10)解决回车键 ESC 默认关闭窗口的一般方法
- 解决IE浏览器不能够打开新窗口的方法
- Python实现遍历windows所有窗口并输出窗口标题的方法