繁体   English   中英

调用 driver.quit() 和 driver.close() 时 Singleton class 如何控制?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM