为什么不是';t我的关闭浏览器代码在Java RFT中工作

为什么不是';t我的关闭浏览器代码在Java RFT中工作,java,rft,Java,Rft,我试图使用以下代码关闭RFT中任何打开的IE浏览器(作为清理步骤,在执行测试脚本之前) public void testMain(对象[]args){ RootTestObject root=RootTestObject.getRootTestObject(); { //使用HTML浏览器类查找所有TestObjects TestObject[]browsers=find(atsubstant(“.class”,“Html.HtmlBrowser”); ProcessTestObject浏览器进

我试图使用以下代码关闭RFT中任何打开的IE浏览器(作为清理步骤,在执行测试脚本之前)

public void testMain(对象[]args){
RootTestObject root=RootTestObject.getRootTestObject();
{
//使用HTML浏览器类查找所有TestObjects
TestObject[]browsers=find(atsubstant(“.class”,“Html.HtmlBrowser”);
ProcessTestObject浏览器进程;
System.out.println(browsers.length);//打印找到的浏览器数

对于(intj=0,j,看看这是否适合你

void closeBrowsers()
{
    TestObject browsers[] =  find(atChild(".class","Html.HtmlBrowser"));//Browser object wud be found at child level

    System.out.println("Browsers found "+ browsers.length);
    for(TestObject browser:browsers)
    {
        ((BrowserTestObject)browser).close();//use the inbuilt close method
    }

    //checking again 
     browsers =  find(atChild(".class","Html.HtmlBrowser"));

     System.out.println("After closing  found "+ browsers.length + " browsers still running");

     //need to try some other approach now..we will figure out something

     unregister(browsers);

}

我曾经通过Java调用
taskkill
命令终止浏览器。IE不是一个非常友好的浏览器

代码是这样的

boolean closeBrowsers() {
    try {
        Runtime.getRuntime().exec("taskkill /f /t /im iexplore.exe");
        return true;
    } catch (IOException e) {
        System.out.println("cannot close browser");
        e.printStackTrace();
    }
    return false;
}

感谢您提供的代码;只要没有打开多个选项卡的浏览器,它就可以工作(在这种情况下,它会将浏览器与确认关闭多个选项卡的对话框一起保持打开状态)我希望有一个代码能够在内部强制终止浏览器进程,而不考虑选项卡或其他操作条件。另外,为了学习,我真的很想知道我的代码为什么不工作。再次感谢你的帮助谢谢你的帮助,这对我不起作用(没有关闭浏览器)。我的错,输入错误!请尝试“taskkill/f/t/im iexplore.exe”我正在编辑这篇文章。
boolean closeBrowsers() {
    try {
        Runtime.getRuntime().exec("taskkill /f /t /im iexplore.exe");
        return true;
    } catch (IOException e) {
        System.out.println("cannot close browser");
        e.printStackTrace();
    }
    return false;
}