有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Web驱动程序正确关闭

我想知道现在最好的方法是在抛出预期或测试用例完成后进行适当的清理

提醒大家: 一exe进程驱动程序根据进程实现,conhost。exe,浏览器和Java应用程序启动

使用driver.quit(),我们可以在完成测试用例后终止驱动程序进程、conhost和浏览器

WebDriver driver = new SomethingDriver();

// do stuff

driver.quit(); // Proper cleaning

但是,如果可能引发异常,我们需要执行以下操作:

    try{
        WebDriver driver = new SomethingDriver();

        // do stuff
    }
catch(Exception e){
e.printStackTrace();
}        
    finally{
        driver.quit(); // Proper cleaning
    }

关闭驱动程序进程和conhost,但让浏览器保持活动状态如何?执行shell脚本是不好的,因为它会杀死所有具有这些名称的进程(因此会阻止并发使用),而且它仅限于Windows(我认为):

TASKKILL /F /IM chromedriver.exe
TASKKILL /F /IM conhost.exe

假设我们随机终止Java进程(在Eclipse或任务管理器中)。我们如何确保进行上述清洁

是否有一个代码解决方案可以很好地涵盖所有这些问题


共 (1) 个答案

  1. # 1 楼答案

    使用JUnit会有所帮助

    public class JunitTest1 {
    
        private WebDriver driver;
    
        @BeforeClass
        public static void oneTimeSetUp() {
            // one-time initialization code   
            System.out.println("@BeforeClass - oneTimeSetUp");
        }
    
        @AfterClass
        public static void oneTimeTearDown() {
            // one-time cleanup code
            System.out.println("@AfterClass - oneTimeTearDown");
        }
    
        @Before
        public void setUp() {
            // before every test
            driver = new FirefoxDriver();
            System.out.println("@Before - setUp");
        }
    
        @After
        public void tearDown() {
            // after every test
            driver.quit();
            System.out.println("@After - tearDown");
        }
    
        @Test
        public void testSmthOne() {
            // the test itself
            System.out.println("@Test - testSmth");
        }
    
        @Test
        public void testSmthTwo() {
            // the test itself
            System.out.println("@Test - testSmth");
        }
    }