2017-03-04 1 views
0

내 테스트는 사용자가 사이트에 로그인 할 수 있는지 여부를 확인합니다. 작품을 경고하지만 코드를 catch에 표시하는 코드를 작성했습니다. trycatch없이 경고를 쓰려고했지만 오류가 표시됩니다.경고가 표시되지 않습니다.

trycatch없이 경고를 작성하고 경고가 표시됩니다 (통과 테스트).

당신이 대화 상자가 진정으로 JS 경고 대화하지 있음을 확인했기 때문에
public void getMessage() { 
     //Verify that is message preview 
     try { 
     WebDriverWait wait = new WebDriverWait(driver, 5); 
     wait.until(ExpectedConditions.alertIsPresent()); 
     Alert alert = driver.switchTo().alert(); 
     System.out.println(alert.getText()); 
     alert.accept(); 
     Assert.assertTrue(alert.getText().contains("ERROR: Invalid login credentials.")); 
     } catch (Exception e) { 
     System.out.println("Alert is not displayed"); 
     } 
+0

그래서 무엇이 문제입니까? – Andersson

+1

내 생각에 경고는 JS 대화가 아니라 HTML 대화임을 알 수 있습니다. 경고가 나타나면 마우스 오른쪽 버튼을 클릭하십시오. 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴를 가져와 Inspect 할 수 있다면 HTML 기반이며 경고가 아닙니다. – JeffC

+0

예, 이것은 html입니다.

오류 : 로그인 자격 증명이 잘못되었습니다. –

답변

0

, 당신은 Alert을 사용할 수 없습니다 :

org.openqa.selenium.TimeoutException: Expected condition failed: waiting for alert to be present (tried for 5 second(s) with 500 MILLISECONDS interval) 

이 내 코드입니다. 좋은 소식은 페이지의 다른 부분과 마찬가지로 HTML이기 때문에 오류 텍스트가 포함 된 요소를 다 긁어 낼 수 있다는 것입니다.

관련 문제