The differences between close() and quit() methods are listed below. In short, both the methods closes the browser and does not require any parameters.
Serial No. | close() | quit() |
---|---|---|
1 | close() method shall close the browser which is in focus. | quit() method closes all the browsers. |
2 | close() method closes the active WebDriver instance. | quit() method closes all the active WebDriver instances. |
Example
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import java.util.Set; import java.util.Iterator; import org.testng.annotations.Test public class WindowHandles{ @Test public void Browserclose_quit() throws Exception { System.setProperty("webdriver.chrome.driver", "C:\\Selenium\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.get("https://www.tutorialspoint.com/index.htm"); String currentwindow = driver.getWindowHandle(); Set<String> allWindows = driver.getWindowHandles(); Iterator<String> i = allWindows.iterator(); while(i.hasNext()){ String childwindow = i.next(); if(!childwindow.equalsIgnoreCase(currentWindow)){ driver.switchTo().window(childwindow); System.out.println("The child window is "+childwindow); // close() method shall the close the child window which //is the browser in focus //the parent window shall still be open driver.close() } else { System.out.println("There are no children"); } } // quit() will close all the active webdriver instances, so now the parent //window will close driver.quit(); } }