我正在尝试使用Geb Testing Framework实现以下功能:
我正在使用此代码引发WindowNotFoundException:
[checked]
我收到了这个错误:
// open the popup by clicking the link (javascript)
withNewWindow({ selectLink.click() }) {
// doing some other stuff in the opened window
// closing the window by clicking a button
// Javascript will close the window after the alert is closed
withAlert { // <- The error is raised here
$(".select").click()
}
}
问题是我要关闭窗口。弹出窗口和父窗口之间共享一些数据,在弹出窗口中选择正确的值后,此窗口应关闭。
我已经尝试捕获异常。但后来我需要告诉Geb使用正确的窗口(仍然打开的父窗口)。
有什么想法吗?
答案 0 :(得分:1)
默认情况下,Geb会在执行该方法时通过withNewWindow()
调用关闭打开的窗口。你可以要求它不要使用close
option:
withNewWindow({ selectLink.click() }, close: false) {
...
}
答案 1 :(得分:0)
因此,如果我读得正确,则单击警报上的“确定”,然后就会出现错误。
听起来像Geb不知道它在哪个页面上,你需要用waitFor包装你的代码:
waitFor {
withWindow({ isAt MyPage}) { true }
}