因此,当我单独运行测试时,它们运行良好。但是,当我运行我的功能(多次测试)时,我的代码失败了。
这是因为当 capybara 存在时,并不是我所有的窗口都关闭,因此我的 selenium 驱动程序不知道要使用哪个窗口。
基本上,我的测试正在打开多个窗口。发生这种情况是因为我的测试是单击打开新窗口的链接并检查新窗口中的内容。尽管我在每次测试结束时都说了 page.quit
,但此函数并没有关闭所有打开的窗口(关闭事件窗口但不关闭原始窗口)。当第二个测试运行时,它使用最初创建的窗口,但是当它打开新的弹出窗口时,它使用了错误的窗口。
如何确保在每次测试期间都使用新的浏览器并且关闭之前测试的所有窗口。
我目前正在使用 page.reset!
和 page.quit
。
不确定,但我可以说 session.quit
关闭所有打开的浏览器窗口吗?
最佳答案
此代码有效:
page.execute_script "window.close();"
我只是在我想关闭的窗口中执行它。
关于ruby - 你能关闭 capybara 中所有打开的窗口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759341/