在没有切换selenium webdriver的情况下获取窗口的标题

时间:2014-09-10 08:10:43

标签: selenium-webdriver window-handles

有没有办法获得窗口标题而不在selenium中进行任何切换?

目前我正在使用以下代码:

public boolean switchToWindowByTitle(String title){
    String currentWindow = driver.getWindowHandle(); 
    Set<String> availableWindows = driver.getWindowHandles(); 
    if (!availableWindows.isEmpty()) { 
         for (String windowId : availableWindows) {
              String switchedWindowTitle=driver.switchTo().window(windowId).getTitle();
              if ((switchedWindowTitle.equals(title))||(switchedWindowTitle.contains(title))){ 
                  return true; 
              } else { 
                driver.switchTo().window(currentWindow); 
              } 
          } 
     } 
     return false;
}

2 个答案:

答案 0 :(得分:0)

        ArrayList<String> tabs = new ArrayList<String> driver.getWindowHandles());
            driver.switchTo().window(tabs.get(1));

            String parentWindow=driver.getWindowHandle();

               Set<String> windows= driver.getWindowHandles();
               for(String child:windows){
                   try{
                   if(!child.equalsIgnoreCase(parentWindow)){
                          driver.switchTo().window(child);
                          String windowTitle=driver.getTitle();
                          if(windowTitle.equals("book My Show")){
                              System.out.println("Window found");

                          }
                          else{
                              System.out.println("no windows found");
                          }

                   }
                   }catch(Exception e){
                       e.printStackTrace();
                       System.out.println("");
                   }
               }
               driver.switchTo().window(parentWindow);

} }

答案 1 :(得分:-1)

此代码将达到目的。如下调用此函数 swithToWindow(“ window Name”);

public static Boolean switchToWindow(String title) {
    String Parent_window = driver.getWindowHandle();
    Set<String> handles = driver.getWindowHandles();
    for(String handle : handles) {
        driver.switchTo().window(handle);
        if (driver.getTitle().equalsIgnoreCase(title)) {
            return true;
        }
    }
    driver.switchTo().window(Parent_window);
    return false;
}