2012-01-16 3 views
-2

링크를 클릭하면 자바 스크립트 확인 메시지가 열리는 웹 드라이버 테스트가 있지만 확인이 나타나면 테스트가 멈추고 있습니다. 테스트의 나머지 코드 줄은 확인 상자에서 수동으로 '확인'또는 '취소'를 클릭하기 전에는 실행되지 않습니다. 아래 코드를 참조하십시오 :팝업이 나타나면 테스트가 멈추다

private WebDriver webDriver; 

@Test 
public void testClickButton() { 

webDriver = getFireFoxDriver(); 

webDriver.findElement(By.xpath("//a[text() = 'Delete']")).click(); 

//JAVASCRIPT CONFIRMATION COMES UP AND THE TEST GETS STUCK! 
//THE BELOW LINE DOES NOT EXECUTE UNTIL THE CONFIRMATION IS MANUALLY CLICKED. 
closePopUp(); 
} 

나는 Firefox에서만이 문제를 직면하고 있습니다. 이 테스트는 IE와 Chrome에서 잘 실행됩니다.

비슷한 문제는 @WebDriver closing the popup으로 게시됩니다. 여기서 Java 스크립트를 사용하여 팝업을 닫으면 해결 방법이 제안됩니다. 이 문제를 해결하는 흥미로운 방법처럼 보이지만 자바 스크립트를 사용하지 않고도 대안이 있는지 여부를 알고 싶습니다. 이 문제의 근본 원인을 이해하는 데 도움이 될 수 있습니다. 링크 클릭 후 몇 밀리 초의 대기 시간을 추가하려했지만 도움이되지 않았습니다. 꽤 많은 인터넷 검색도했는데 어느 것도 도움이되지 못했습니다.

아이디어가 있으십니까?

+0

자바 스크립트와 어떤 관계가 있습니까? – Anders

답변

1

나는 팝업을 닫습니다 이런 식으로 수용하고있다 :

Alert alert = driver.switchTo().alert(); 
alert.accept(); 

아니고 자바 스크립트를하지만 작동합니다. 또한 팝업을 닫을 수도 있습니다.

+0

답장을 보내 주셔서 감사합니다. 이것은 정확히 내가 위의 'closePopUp()'메서드 호출에서 수행하고있는 작업입니다. 그러나 문제는 팝업이 나타나면 테스트가 멈추기 때문에 'closePopUp()'호출이 실행되지 않는다는 것입니다. – dgd

+0

팝업 창이 새 창으로 나옵니까? closePopUp에서 드라이버를 알고 있습니까? 그렇다면 더 많은 코드를 게시 할 수 있습니까? – Tarken

+0

팝업은 웹 애플리케이션의 특정 엔티티를 삭제하기위한 자바 스크립트 확인 일뿐입니다. 아래 closePopUp 메소드 코드를 찾으십시오. 'public void closePopUp() { try { Alert alert = webDriver.switchTo(). alert(); System.out.println (alert.getText()); alert.accept(); } catch (NoAlertPresentException exc) { exc.printStackTrace(); }' Firefox 드라이버에 할당 된 클래스 수준 변수로 'webDriver'를 고려하십시오. – dgd

관련 문제