2012-01-05 6 views
0

Что делать, если один и тот же тестовый пример открывает более двух окон одновременно, а затем как обрабатывать эти несколько окон за раз, а точнее, если я хочу, чтобы мое главное окно закрывалось позже, а другое окна, чтобы закрыть сначала?Обработка нескольких окон в Selenium Webdriver

ответ

0

Вы можете использовать

driver.switchTo().window("windowName"); 

выбрать правильное окно перед вызовом driver.close(). (Если не осталось окон, браузер закрывается.)

Существует больше информации here

0

вы можете сделать что-то вроде этого

1.before открытие дочерних окон (щелкнув по кнопке ссылки, и т.д.)

parentWindowHandle = driver.getWindowHandle(); 

2.At каждое новое окно

public String getChildHandle(WebDriver driver,String parentWindowHandle) 
    { 
     String childWindowHandle = null; 

     Set<String> allWindowHandles = driver.getWindowHandles(); 
     Iterator itr = allWindowHandles.iterator(); 

     while(itr.hasNext()) 
     { 
      String temp=(String) itr.next(); 
      if(temp.equalsIgnoreCase(parentWindowHandle)) // you can compare with any handle or you can compare with all existing window handles 
      { 
       System.out.println("Same as parent handle-> "+temp); 
      } 
      else 
      { 
       childWindowHandle = temp; 
      } 
     } 
     return childWindowHandle; 
    } 

3.Закрыть любое нежелательное окно

driver.switchTo().window(parentWindowHandle/childWindow1/childWindow2); 
driver.close(); 
Смежные вопросы