우리는 기능 테스트에 Geb를 사용하고 있습니다. 앱에서 링크를 클릭하면 새 창이 열립니다. 우리의 "when :"절에서 withNewWindow()를 사용하여 링크를 클릭하고 새 창을 열고 몇 가지 간단한 어설 션을 만들 수 있습니다. 문제는 "then :"절에서 더 많은 주장을하고 더 많은 일을하기를 원하지만 우리 창이 도착하기 전에 우리의 창이 닫힙니다.withNewWindow()를 사용하는 동안 "then :"절에 도달하기 전에 창이 닫힙니다.
when: "I navigate to the link"
JQInstaller jq = new JQInstaller()
jq.installJQ(browser)
homeTab.jquery.mouseover()
report "Mouse Over1"
waitFor {HealthPageLink.present}
withNewWindow({HealthPageLink.click() },{
assert (title.toString() == 'Patient Financing Portal')
at LoginPage
report "Login Page"
}
)
then: "I am at the Login Page"
at LoginPage
report "Login Page"
": when :"절 다음에 새 창이 닫혀 있기 때문에 then : 절에서 "LoginPage"가 null로 나타납니다.
더 많은 테스트를 실행하려면 어떻게이 창 컨텍스트를 열어 두어야합니까?
이 작동하지만주의를 가지고처럼 보인다 : 당신은
LoginPage
로 다시 전환 할page
옵션을 사용할 수 있습니다. 우리는 모든 속성 (필드 등)을 이전 페이지 모델에 추가해야하며 새 팝업 모델은 팝업하지 않습니다. 오류는 어떤 이유로 다른 윈도우의 컨텍스트에 있다고 여전히 생각하는 것으로 나타납니다. 이것이 왜 있는지 아십니까? – jcd어디에도 문서화되어 있지는 않지만'withNewWindow()'와'withWindow()'는 전달 된 클로저 밖에서 사용 된 페이지로 페이지를 되돌립니다. 나는 그 문제를 만들었다. (http://jira.codehaus.org/browse/GEB-279). 나는 또한 대응하기 위해 나의 반응을 편집했다. – erdi