셀레늄에서 자바스크립트 alert 상자가 떴는지 판단하는 명령어에는 verifyAlert, verifyAlertPresent, assertAlert, assertAlertPresent 등이 있습니다.

셀레늄은 이들 명령어를 통해 alert 상자가 뜬 것을 확인하고(실제로 뜨지는 않습니다) 자동으로 확인버튼을 눌러줍니다.

셀레늄 IDE에서 명령어(command) 항목에는 assertAlert 를,  타겟(target) 항목에는 "저장하였습니다."를 입력하면, 실제로 "저장하였습니다." alert 상자가 뜰 경우에 테스트가 성공하게 됩니다.

b.jpg 

그런데 제가 테스트하는 화면에서는 alert의 메시지가 중요하지 않아서 단순히 alert가 발생했는지 여부만 알고 싶을 때가 있습니다. 그래서 assertAlert 명령어 대신 assertAlertPresent 명령어를 사용해봤는데, 아래처럼 에러가 납니다. verifyAlertPresent 명령도 마찬가지였습니다.

[error] Error: There was an unexpected Alert! [저장하였습니다.]

뭐가 잘못된 건지 구글신께 물어봐도 잘 안가르쳐 주네요... -.-;

이리저리 삽질하다가 assertAlert 명령에서 메시지 지정할 때 * 패턴을 사용할 수 있다는 사실을 알아냈습니다. 그래서 찾아낸 방법은 아래 그림처럼 assertAlert 명령의 target 값으로 * 를 쓰는 것입니다. 잘 작동합니다. ^^

a.jpg 

이 글은 스프링노트에서 작성되었습니다.

Posted by 에코지오
,