2017-11-07 3 views
1

셀레늄 webdriver Java에서 윈도우 처리 문제를 해결할 수있는 누구나 도와 줄 수 있습니까?Selenium에서 다중 윈도우 다루기 Java를 사용하여

내 응용 프로그램에 3 개 또는 4 개의 창이 있습니다. 아래의 코드를 사용하여 두 개의 창이 열립니다. 아래 코드를 사용하여 3 개의 창을 실행하려는 경우 첫 번째 창으로 리디렉션합니다. 둘 이상의 창을 수행 할 수 없습니다.

--------------------------------- 코드 ------------ -------------------------------------------------- ----------------------------

String parent=driver.getWindowHandle(); 

CompanyClick.click(); 

Set<String>s1=driver.getWindowHandles(); 

int count=s1.size(); 

System.out.println("Total window" +count); 

     for(String child:s1) 
     { 
      if(!parent.equalsIgnoreCase(child)) { 
       driver.switchTo().window(child); 

       Thread.sleep(3000); 

       } 
      } 

답변

0

여러분, 아래 코드가 작동 중입니다! 해결책을 찾았습니다

String adminWindow = driver.getWindowHandle(); 

    System.out.println(adminWindow); 

    ClickBuissness.click(); 

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

    Set<String> allWindows = driver.getWindowHandles(); 

    String agentWindow = null; 

    int count =allWindows.size(); 

    System.out.println("Total window" + count); 

    for(String windowHandle : allWindows){ 

     if (!windowHandle.equals(adminWindow)) 

      agentWindow=windowHandle; 
    } 
     driver.switchTo().window(agentWindow); 


     } 
0

나는 100 %에 대한 모르겠지만 스위치가 프레임에 전에

시도

driver.switchTo.defaultContent()

+0

첫 번째 부모 창으로 리디렉션 됨 – iamsankalp89

0

시도해보십시오. 1 9에 :

public void SwitchToAnotherWindow(Webdriver driver,int window_number){ 

    List<String> windowlist = null; 

    Set<String> windows = driver.getWindowHandles(); 

    windowlist = new ArrayList<String>(windows); 

    String currentWindow = driver.getWindowHandle(); 

if (!currentWindow.equalsIgnoreCase(windowlist.get(window_number - 1))) 
    { 
     driver.switchTo().window(windowlist.get(window_number - 1)); 
    } 

} 

그냥 방금이 방법 3을 통과 3 창으로 전환하려는 경우 예를 들어 실행하려면 윈도우 창 번호을 통과 직접적 (예에 대한 모든 창에 셔플 수 있습니다 창 또는 9-4 창)

관련 문제