2016-06-17 7 views
-1

Image1Image2 페이지와 함께 인쇄 아이콘을 클릭하여 창 기반 팝업을 닫아야하는 시나리오가 있습니다. Windows를 처리하는 방법을 알고 있지만, 여기에서 Print 버튼을 클릭하면 Webdriver 객체가 부모 페이지에 남고 페이지 표시는 Print 대화 상자와 함께 Print 페이지가됩니다. 나는 Robot과 Sikuli를 사용하여 시도했다. 마지막으로 문제는 WebDriver 객체를 전환하는 중임을 깨달았다. 메인 태스크가 여기에 있습니다. 웹 드라이브 개체가 남아있는 페이지가 Mozilla Firefox에서 작동하지 않습니다.모질라 파이어 폭스를 사용하여 창 기반 팝업 (인쇄 기능) 처리하기

문자열 parentWindowHandler = driver.getWindowHandle(); // 부모 창을 저장하십시오. String subWindowHandler = null;

 Set<String> handles = driver.getWindowHandles(); // get all window handles 
     Iterator<String> iterator = handles.iterator(); 
     while (iterator.hasNext()){ 
      subWindowHandler = iterator.next(); 
     } 
     driver.switchTo().window(subWindowHandler); // switch to popup window 
     System.out.println(driver.getTitle());           // perform operations on popup 

     Thread.sleep(3000); 
     Robot r=new Robot(); 
     r.keyPress(KeyEvent.VK_ALT); 
     r.keyPress(KeyEvent.VK_F4); 
     r.keyRelease(KeyEvent.VK_F4); 
     r.keyRelease(KeyEvent.VK_ALT); 

     driver.switchTo().window(parentWindowHandler); // switch back to parent window 
     System.out.println(driver.getTitle()); 

드라이버 객체가 백그라운드 인 페이지에서 키 누르기 f4 후에 코드 스 니펫이 중지됩니다.

정확한 시나리오는 윈도우 기반의 팝업에게 모질라 파이어 폭스에서의 Gmail과 이메일을 열고 윈도우 기반의 팝업 다음됩니다 인쇄 아이콘을 클릭 닫으려면 로그인되어

+0

어떤 답변을 해주시겠습니까 ??? – Ravi

+0

질문을 정리하고 명확하게하십시오. 이 대화 상자가 창은 아니지만 코드 샘플은 사용자가 창 (브라우저 탭)을 조작하고 ALT + F4를 사용하고 있음을 보여줍니다. 문제가있는 코드를 게시하고 문제의 원인과 문제의 원인을 명확하게 설명하십시오. – JeffC

+0

ALT + F4가 창 팝업을 닫으려고했는데, 수동으로 창 팝업을 ALT + F4로 닫았습니다. 그러나 이것은 셀렌과 함께 작동하지 않습니다 – Ravi

답변

0

Robot을 사용하는 당신은 필요가 없습니다 창을 닫습니다. 새 (팝업) 창으로 전환하고 driver.close()을 사용하여 창을 닫을 수 있습니다. 아래의 코드를 테스트 한 결과 작동합니다.

String mainHandle = driver.getWindowHandle(); 
for (String winHandle : driver.getWindowHandles()) 
{ 
    if (!winHandle.equals(mainHandle)) 
    { 
     driver.switchTo().window(winHandle); 
     driver.close(); 
    } 
} 

driver.switchTo().window(mainHandle); 

이 코드는 원래 창과 팝업 창이 두 개 열려 있다고 가정합니다. 원래 창이 아닌 모든 창을 닫습니다.

+0

여기 시나리오는 Firefox 브라우저와 창 기반입니다. 팝업이 열립니다. 위의 코드는 웹 기반의 윈도우에 완벽하지만 Window 기반에서는 작동하지 않습니다. – Ravi

+0

스크린 샷을 추가했습니다. 이미지 1의 인쇄 아이콘을 클릭하면 Firefox 2의 새 탭에 image2가 표시됩니다. Image2의 팝업을 처리하려고했지만 헛되지 않았습니다. – Ravi

+0

지금 봅니다. 나는 당신이 대화에 대해 이야기하고있는 스크린 샷을 볼 때까지 깨닫지 못했습니다. 나는 내 핫메일 계정에 갔다. 그래서 나는 구글이 똑같을 것이라고 생각하면서 초기 브라우저 창을 띄웠다. 대화 상자를 닫으려면 ENTER 키 또는 ESC 키를 보낼 수 있어야합니다 (예)? 나는 ALT + F4가 대화를 닫지 않을 것이라고 생각했다. – JeffC

관련 문제