Bird
Raised Fist0
Selenium Javatesting~5 mins

Closing browser (close vs quit) in Selenium Java

Choose your learning style10 modes available
Introduction

We close browsers in tests to free up resources and avoid leftover windows. Knowing the difference between close() and quit() helps control browser behavior properly.

When you want to close only the current browser tab or window.
When you want to end the entire browser session and close all windows.
When cleaning up after a test to avoid leftover browser processes.
When running multiple tests and you want to keep the browser open between tests.
When debugging and you want to close just one window but keep others open.
Syntax
Selenium Java
driver.close();
driver.quit();

close() closes the current browser window or tab.

quit() closes all browser windows and ends the WebDriver session.

Examples
This closes only the current browser window or tab that the WebDriver is controlling.
Selenium Java
driver.close();
This closes all browser windows opened by the WebDriver and ends the session.
Selenium Java
driver.quit();
Opens a page and then closes the current window only.
Selenium Java
driver.get("https://example.com");
driver.close();
Opens a page and then closes all windows and ends the session.
Selenium Java
driver.get("https://example.com");
driver.quit();
Sample Program

This program shows the difference between close() and quit(). After close(), the driver session still exists but the current window is closed. After quit(), the driver session ends and cannot be used.

Selenium Java
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class BrowserCloseVsQuit {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        WebDriver driver = new ChromeDriver();

        driver.get("https://example.com");
        System.out.println("Title before close: " + driver.getTitle());

        driver.close();

        try {
            driver.getTitle();
        } catch (Exception e) {
            System.out.println("After close(), driver session is still alive but current window is closed.");
        }

        // Start new driver for quit demo
        driver = new ChromeDriver();
        driver.get("https://example.com");
        System.out.println("Title before quit: " + driver.getTitle());

        driver.quit();

        try {
            driver.getTitle();
        } catch (Exception e) {
            System.out.println("After quit(), driver session is closed and unusable.");
        }
    }
}
OutputSuccess
Important Notes

Use close() when you want to close one window but keep the session alive.

Use quit() to end the session and close all windows to free resources.

Calling close() on the last window may also end the session depending on the browser.

Summary

close() closes the current browser window or tab.

quit() closes all browser windows and ends the WebDriver session.

Choose the method based on whether you want to keep the session alive or end it completely.

Practice

(1/5)
1. What does the close() method do in Selenium WebDriver?
easy
A. Closes the current browser window or tab only
B. Closes all browser windows and ends the WebDriver session
C. Keeps the browser open but clears cookies
D. Minimizes the browser window

Solution

  1. Step 1: Understand the purpose of close()

    The close() method is designed to close only the current browser window or tab that the WebDriver is controlling.
  2. Step 2: Differentiate from quit()

    Unlike quit(), which closes all windows and ends the session, close() affects only one window or tab.
  3. Final Answer:

    Closes the current browser window or tab only -> Option A
  4. Quick Check:

    close() closes one window [OK]
Hint: Close closes one window; quit closes all [OK]
Common Mistakes:
  • Confusing close() with quit()
  • Thinking close() ends the WebDriver session
  • Assuming close() clears cookies
2. Which of the following is the correct syntax to close all browser windows and end the WebDriver session in Java Selenium?
easy
A. driver.close();
B. driver.quit();
C. driver.exit();
D. driver.shutdown();

Solution

  1. Step 1: Recall the method to end WebDriver session

    The method quit() is used to close all browser windows and end the WebDriver session.
  2. Step 2: Check syntax correctness

    The correct syntax in Java Selenium is driver.quit();. Other options like exit() or shutdown() do not exist in WebDriver API.
  3. Final Answer:

    driver.quit(); -> Option B
  4. Quick Check:

    Use quit() to close all windows [OK]
Hint: Use quit() to close all windows and end session [OK]
Common Mistakes:
  • Using close() instead of quit() to end session
  • Using non-existent methods like exit() or shutdown()
  • Missing parentheses in method call
3. Consider the following Java Selenium code snippet:
WebDriver driver = new ChromeDriver();
driver.get("https://example.com");
driver.close();
driver.get("https://google.com");

What will happen when this code runs?
medium
A. The browser opens example.com and google.com in the same tab without closing
B. The browser opens example.com, closes the tab, then opens google.com in a new window
C. The browser opens example.com and google.com in two tabs without closing any
D. The browser opens example.com, closes the tab, then throws an exception on the next get() call

Solution

  1. Step 1: Analyze the effect of driver.close()

    The close() method closes the current browser window or tab but does not end the WebDriver session. However, if it is the only window, the session becomes invalid.
  2. Step 2: Understand the next get() call after close()

    After closing the only window, calling driver.get() will cause a NoSuchWindowException or similar because there is no open window to navigate.
  3. Final Answer:

    The browser opens example.com, closes the tab, then throws an exception on the next get() call -> Option D
  4. Quick Check:

    close() closes window; next get() fails if no window [OK]
Hint: Close closes tab; next commands fail if no window open [OK]
Common Mistakes:
  • Assuming get() opens new window after close()
  • Thinking close() ends session like quit()
  • Ignoring exceptions after closing last window
4. You have this Java Selenium code:
driver.close();
driver.quit();

What is the problem with this code?
medium
A. No problem; calling close() before quit() works without throwing exceptions
B. close() and quit() do the same thing, so one is redundant
C. Calling quit() before close() is required to avoid errors
D. Calling close() before quit() may cause quit() to throw an exception if no windows remain

Solution

  1. Step 1: Understand the effect of close()

    Calling close() closes the current window. If it is the last window, no windows remain open, but the WebDriver session remains active.
  2. Step 2: Analyze quit() after close()

    Calling quit() after close() safely terminates the session even with no windows left; no exception is thrown.
  3. Final Answer:

    No problem; calling close() before quit() works without throwing exceptions -> Option A
  4. Quick Check:

    close() then quit() succeeds [OK]
Hint: close() followed by quit() is safe; no exceptions [OK]
Common Mistakes:
  • Thinking close() before quit() throws exception
  • Confusing close() and quit() effects
  • Believing quit() must precede close()
5. You want to close only the current tab but keep the WebDriver session active to open a new tab later. Which method should you use and why?
hard
A. Use driver.quit() because it closes all tabs and ends session cleanly
B. Use driver.quit() and then create a new WebDriver instance
C. Use driver.close() because it closes only the current tab and keeps session alive
D. Use driver.close() and then call driver.quit() immediately

Solution

  1. Step 1: Identify the requirement to keep session alive

    To keep the WebDriver session active, you must not call quit() because it ends the session and closes all windows.
  2. Step 2: Choose method that closes only current tab

    The close() method closes only the current tab or window but keeps the WebDriver session alive, allowing further commands like opening new tabs.
  3. Final Answer:

    Use driver.close() because it closes only the current tab and keeps session alive -> Option C
  4. Quick Check:

    close() closes tab; quit() ends session [OK]
Hint: Close closes tab; quit ends session completely [OK]
Common Mistakes:
  • Using quit() and losing session
  • Calling quit() then expecting to open new tabs
  • Confusing close() with quit() effects
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard