[英]How does the Singleton class control when driver.quit() and driver.close() are called?
如果我注释掉 driver.quit() 和 driver.close() 行,调用测试类使用相同的驱动程序和浏览器 session,但显然不会在完成所有测试类后终止驱动程序和浏览器!
如果我取消注释这两行,驱动程序和浏览器 session 将在测试类之间被杀死,这违背了 Singleton class 的目的。
当 driver.quit() 和 driver.close() 被调用时,Singleton/BaseTest class 在哪里以及如何控制?
class Singleton {
private static Singleton single_instance = null;
public static Singleton getInstance() {
if (single_instance == null)
single_instance = new Singleton();
return single_instance;
}
}
//-------------------------------------------
public abstract class BaseTest {
protected static WebDriver driver;
static Singleton singleton = null;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
if(singleton == null) {
singleton = Singleton.getInstance();
System.setProperty("webdriver.chrome.driver", System.getenv("CHROME_DRIVER"));
driver = new ChromeDriver();
}
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
//driver.close();
//driver.quit();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.