테스트 사례를 자동화하려고합니다. 결과적으로 특정 시간에 pop 메시지가 나타나기가 어렵 기 때문에 테스트 케이스가 실패합니다. 팝업이 나타나기 전에 클릭 및 기타 5-6 회의 클릭없이 팝업이 나타나는 경우가 있습니다. id 나 xpath가없는 팝업을 찾을 수 없습니다. 도와주세요!Java selenium webdriver에서 불확실한 시간에 팝업 창을 표시 할 때 팝업 창을 처리하는 방법은 무엇입니까?
1
A
답변
0
팝업이 Windows 기반 인 경우 AutoIT 라이브러리를 사용하십시오. 는 웹 팝업 경우 다음 코드
Set<String> set = driver.getWindowHandles();
List<String> list = new ArrayList<>(set);
// store your main window handle in variable
String mainWindow = list.get(0);
// To close all unwanted popup
for(int i =1; i <list.size(); i++)
{
String unwantedPopup = list.get(i);
driver.switchTo().window(unwantedPopup);
driver.close();
}
// Switch back to your main window
driver.switchTo().window(mainWindow);
+0
감사합니다. 그러나 코드가 작동하지 않습니다, 구문 오류가 있습니다. 나는 알아낼 수 없었다. 모달 대화 상자라는 것을 잊어 버렸습니다. 나는 또한 driver.switchTo()를 시도했다. window (winHandleBefore); driver.close(); 경고 alert = driver.switchTo(). alert(); alert(). dismiss();. Thread.sleep (8000)을 사용할 때 모달 대화 상자가 나타납니다. 난 상자를 닫을 수 없습니다. 나는 또한 크롬에서 코드를 실행 중입니다. 또한 다른 도움을받지 못했습니다. –
0
에 따라 처리 할 수 나는 나를 위해 작동 솔루션을 발견했다.
Thread.sleep(5000); //wait for the modal message to appear
String winHandleBefore = driver.getWindowHandle();
driver.findElement(By.xpath("xpath")).click();
Thread.sleep(2000);
driver.switchTo().window(winHandleBefore);
팝업이 인쇄 대화 상자와 같은 시스템 대화 상자입니까, 아니면 웹 요소입니까? AutoIT 라이브러리를 사용하여 셀렌이 상호 작용할 수없는 이상한 팝업과 윈도우를 처리했습니다. –