【发布时间】:2014-05-28 16:33:42
【问题描述】:
我需要在每次测试之间关闭浏览器。 Geb 为我创建了浏览器,所以我认为 Geb 应该在每次测试之间关闭驱动程序。然而事实并非如此。这是 GebConfig.groovy 的结构和一部分。
test_automation
-functional
--src
---test
---groovy
----spec
-----Test Locations
---resources
----GebConfig.groovy
GebConfig.groovy
waiting {
timeout = 20
}
environments {
chrome {
driver = {
System.setProperty('webdriver.chrome.driver', 'src/test/resources/chromedriver')
new ChromeDriver()
}
}
firefox {
driver = { new FirefoxDriver() }
}
}
我已将 GebSpec 扩展到 CommonGebSpec,以下是我尝试过的多种方法:
CommonGebSpec.groovy
def setup() {
resetBrowser()
getBrowser()
}
def cleanup() {
browser.close()
browser.quit()
}
______________________________
def cleanup() {
browser.clearCookies()
}
______________________________
def cleanup() {
resetBrowser()
}
我已经专门尝试过这些,并且可能会有所变化。有人知道为什么我的浏览器在测试之间不会关闭吗?
谢谢。
【问题讨论】:
-
Geb 在每个任务后退出。每次测试后不知道能不能退出!
-
请问每次测试后想重启浏览器的原因是什么?您想在特定规范中的每次测试后重新启动它还是在全球范围内进行每次测试?
-
全球每个测试。应用程序的工作方式是,如果我们遇到某种错误,则会出现一个没有注销的 404 页面。因此,用户的凭据仍然被缓存,如果我们开始运行新任务,我们会有一些冲突。为了确保我们以干净的状态开始,而不是解决这个混乱,重新启动浏览器更容易。