문제

나는 onbeforeunload 이벤트를 사용하여 떠나기 전에 사용자에게 프롬프트하는 웹 페이지에 대한 셀레늄 테스트를 작성하려고합니다. 셀레늄은 확인 대화 상자를 인식하지 못하거나 확인 또는 취소 방법을 제공하는 것 같습니다. 이것을 할 방법이 있습니까? 관련이 있다면 Java Selenium 드라이버를 사용하고 있습니다.

도움이 되었습니까?

해결책

Window를 테스트하는 사용자 확장 (또는 StoreEval 등에 일부 JavaScript 등)을 작성할 수 있습니다. 추악하지만 페이지에서 벗어나야합니다.

다른 팁

나는 단지 내 적용을 위해 이것을해야했다. onbeforeunload 문서가 구원받지 않은 상태에있는 동안 사용자가 페이지를 떠나면 핸들러가 프롬프트를 제기합니다. 파이썬 코드 :

driver.switch_to.alert.accept()

Java 동등한 것은 다음과 같습니다.

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

경고가 존재하지 않으면 위의 코드는 NoAlertPresentException 따라서 프롬프트를 수락하기 전에 존재를 확인하기 위해 별도의 테스트가 필요하지 않습니다.

나는 셀레늄 2.43.0을 실행하고 있지만 지금은 이것이 한동안 가능하다고 생각합니다.

내가 테스트하는 것이 아니기 때문에 프롬프트가 전혀 나오기를 원하지 않는 경우, 브라우저에서 사용자 정의 JavaScript를 실행하여 설정합니다. window.onbeforeunload 에게 null 페이지를 떠나기 전에. 이것을 테스트 찢어짐 코드에 넣었습니다.

경고 : 이것은 대체 솔루션을 제공합니다

Watij - http://watij.com/ - 여기서 도울 수 있습니다. 또는 루비에 익숙하다면 Watir는 도움을 줄 수 있습니다. http://wtr.rubyforge.org/install.html

셀레늄을 사용하여 브라우저를 사용하여 제한된 제어에 직면했을 때 Mozlab 하나의 브라우저 플랫폼에 대해서만 문제를 해결 한 플러그인.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top