如何关闭Selenium Webdriver中的两个浏览器实例?

How to close two Browser instance in Selenium Webdriver?

提问人:Vaibhav Karkera 提问时间:9/28/2023 更新时间:9/29/2023 访问量:26

问:

        public void ECM_20245() throws Exception {
        String org = null;
        checkout = new CommonCheckoutModule();
        mini = new MiniCartModule();
        orderAction = new OrderActionsModule();
        ShoppingCartModule cart = new ShoppingCartModule();
        orderHist = new IntelligoStoreOrderHistoryLandingModule();
        order = new OrderHistoryLandingModule();
        org = ConfigurationLibrary.BuyingForData.get("Buy_InvoiceStore");
        OrgSelectorModule select = new OrgSelectorModule();
        String roleA = ConfigurationLibrary.prop.getProperty("ECCROLE_ADMIN_STORE");
        OrderConfirmationModule confirm = new OrderConfirmationModule();
        checkout.buyingForMyself();
        checkout.checkoutSingleIndividualCertificationPrdOrg();
        mini.validateMiniCart().viewCartClick();
        cart.validateShoppingCartPage();
        cart.getGrandTotalPriceFromCart();
        cart.ClickProductFromShoppingCart();
        mini.clearCart();
        select.orgBuyingFor(org);
        checkout.SingleIndividualCertificationoption();
        mini.validateMiniCart().viewCartClick();
        cart.validateShoppingCartPage();
        cart.checkoutSelection();
        confirm.chooseOrgFromConfirmation(org).selectConfirmation();
        checkout.enterPurchaseCodeForStore().selectInvoiceAndSubmit();
        checkout.orderSuccessValidation();
        String orderId = order.getOrderIDFromOrderConfirmationPage();
        orderHist.ctaLinkValOrderActivationPageForIC();


        CommonLibrary.newBrowserLaunch();
        ConfigurationLibrary.loginForAllEnv(roleA, "UserId1");
        orderAction.orderSearchInAdmin(orderId).storeOrderDetailsValForOrg();
        
    }

在上面的代码中,CommonLibrary.newBrowserLaunch();启动新的浏览器并执行一组代码。Testng after方法关闭最新打开的浏览器,但不关闭现有浏览器。我不能使用 driver.quit,因为 Testng 执行将是并行的。可以关闭两个浏览器实例吗?(一个可以用@aftermethods关闭)

selenium-webdriver 自动化 测试

评论


答:

0赞 Pradeep 9/29/2023 #1

设置 windowHandles = driver.getWindowHandles();

// Iterate through the window handles and close each window
for (String windowHandle : windowHandles) {
    driver.switchTo().window(windowHandle);
    driver.close();
}

您可以尝试上面的代码来关闭所有打开的窗口