Selenium 发出警报后,使用geb关闭弹出窗口
我尝试使用Geb测试框架实现以下目标:Selenium 发出警报后,使用geb关闭弹出窗口,selenium,testing,webdriver,geb,Selenium,Testing,Webdriver,Geb,我尝试使用Geb测试框架实现以下目标: 我打开了一个弹出窗口 我点击一个按钮 发出警报 单击“确定”后,弹出窗口关闭。(这是我真正的问题) 我使用的代码会引发WindowNotFoundException: // open the popup by clicking the link (javascript) withNewWindow({ selectLink.click() }) { // doing some other stuff in the opened window
// 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()
}
}
//单击链接打开弹出窗口(javascript)
withNewWindow({selectLink.click()}){
//在打开的窗口里做其他事情
//通过单击按钮关闭窗口
//Javascript将在警报关闭后关闭窗口
用alert{/如果我读对了,你点击alert上的OK,你就会得到错误
听起来Geb不知道它在哪个页面上,您需要用waitFor来包装代码:
waitFor {
withWindow({ isAt MyPage}) { true }
}
默认情况下,Geb在该方法执行结束时通过withNewWindow()
调用关闭打开的窗口。您可以使用以下命令要求它不要这样做:
嘿,埃尔迪。谢谢你的回复。我已经试过了,但我在withAlert行仍然收到相同的错误。嘿,拉什比。谢谢你的回复。我想这就是问题所在:Geb不知道它在哪一页上。你能澄清我应该包装代码的哪一部分吗?你是在检查父窗口还是弹出窗口?我试过包装它他对NewWindow很感兴趣,但我想你的意思可能是别的……我还在寻找解决办法……有人有主意吗?
waitFor {
withWindow({ isAt MyPage}) { true }
}
withNewWindow({ selectLink.click() }, close: false) {
...
}