2011-09-06 1 views
1

버튼을 클릭 한 후 새 창을 만드는 웹 응용 프로그램을 테스트하고 있습니다. 순서는이다 Selenium (WebDriver) Windows 간의 Junit 4 전환 문제

다음 창 1 : (부모 창) 창을 생성 버튼을 클릭하여 창 2 2

: 진행 창은 서버가 반환 데이터

창 3 백그라운드 프로세스가 나타날 때까지 : 진행 창으로 전환 제 3의 창 (다른 손잡이를 가진)

제 3의 창이 나타날 때까지 제대로 기다리고 싶습니다. 다시

while(timeout has not occured...){ 
    for (String handle : _driver.getWindowHandles()) { 
     String myTitle = driver.switchTo().window(handle).getTitle(); 
     if(3rdWindowTitle.equalsIgnoreCase(myTitle)){ 
      return true; 
     } 
    } 
} 

이 효과적으로 활성 창을 전환하고 앞으로 모든 시간을 : 나는 3 윈도우의 '제목'나는 다음과 같은 코드를 사용할 필요가 WebDriver에서 제목을 얻기 위하여 그러나 것 알고 'switchTo'때문에 루프가 발생합니다. 이것은 파이어 폭스 창을 앞뒤로 움직이기 때문에 불쾌합니다. 내가 필요한 것은 세 번째 창을 기다리는 루프에서 각 창을 '전환'하지 않고도 사용할 수있는 창 제목을 얻는 방법입니다. 어떤 아이디어?

기본적으로 원하는 제목의 창이 나타날 때까지 차단되는 메서드 (waitForWindowByTitle (titleIWant))가 필요합니다.

답변

1

글쎄, 창 개수를 확인하여 창을 기다리는 것이 좋습니다. Like :

for(int i=0; i<noOfTrials;i++){ 
     noOfWindows = driver.getWindowHandles().size(); 
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
     if(noOfWindows>currentNoOfWindows){ 
     break; 
     } 
    } 

} 

다음에 처음으로 마지막으로 (switchTo를 사용하여) 창을 탐색하고 원하는 창으로 이동할 수 있습니다.

관련 문제