WebDriver打开Microsoft Word应用程序,使浏览器窗口返回/关闭。如何让我的浏览器重点关注?

时间:2018-06-01 14:54:52

标签: selenium ms-word webdriver focus toggle

在自动化期间,必须单击某个链接并打开一个Microsoft Word文档,这是一个桌面应用程序窗口。这使我的驱动程序窗口成为焦点。但是,剩下的代码在后端运行,但是我们如何最小化这个单词窗口(我知道这不可能,因为word是一个Windows应用程序)但至少我怎么能把我的驱动程序窗口放在前面?

2 个答案:

答案 0 :(得分:0)

尝试使用java的Robot来做CTRL + TAB(这应该会让你回到上一个窗口) 试试这个

package enumSample;

import org.apache.commons.lang3.EnumUtils; 

    public static void main(String[] args) {
        boolean result= isValidEnum(DummyEnum.class, "APPLE"); 
        System.out.println("result= " + result); 
        boolean result2= isValidEnum2(DummyEnum.class, "COF"); 
        System.out.println("result2= " + result2); 
        //boolean result3= isValidEnum2(A_Different_Enum.class, "COF");  //works
        //System.out.println("result3= " + result3); 

    }

    public static<E extends Enum<E>> boolean isValidEnum2(Class<E> enumClass, String enumName) {

        System.out.println("enumClass.getEnumConstants().length= " + enumClass.getEnumConstants().length); 
        System.out.println("enumClass.getEnumConstants()[0]= " + enumClass.getEnumConstants()[0]); 
        System.out.println("enumClass.getEnumConstants()[1]= " + enumClass.getEnumConstants()[1].name()); 
        System.out.println("enumName.valueOf(enumClass)= "+ enumName.valueOf(enumClass));

        if(enumName== null) {
            return false; 
        } else {
            try {
                if(enumClass.isAssignableFrom(DummyEnum.class)) { /*Checks if enumClass is an instance of DummyEnum.class*/
                    for (int i=0; i!= enumClass.getEnumConstants().length; i++) {
                        System.out.println("(DummyEnum) enumClass.getEnumConstants()["+i+"]).code()= "+ ((DummyEnum) enumClass.getEnumConstants()[i]).code());          
                        if(enumName.equals(((DummyEnum) enumClass.getEnumConstants()[i]).code())) {
                            return true; 
                        }
                    }                   
                    return false; 
                } else {
                    Enum.valueOf(enumClass, enumName); 
                    return true; 
                }
            } catch (IllegalArgumentException var3){
                return false; 
            }
        }

    }

    //Original Method from apache.commons.long3.EnumUtils: 
    public static<E extends Enum<E>> boolean isValidEnum(Class<E> enumClass, String enumName) {
        if(enumName== null) {
            return false; 
        } else {
            try {
                Enum.valueOf(enumClass, enumName); 
                return true; 
            } catch (IllegalArgumentException var3){
                return false; 
            }
        }
    }
}

答案 1 :(得分:0)

我刚发现windowUtils.killByProcessName(“winword.exe”); 这份工作。我们只需要为它导入selenium windows util jar。