close() 및 quit() 메서드의 차이점은 다음과 같습니다. 간단히 말해서 두 방법 모두 브라우저를 닫고 매개변수가 필요하지 않습니다.
일련번호 | <일>닫기() ||
---|---|---|
1 | close() 메서드는 포커스가 있는 브라우저를 닫습니다. | quit() 메서드는 모든 브라우저를 닫습니다. |
2 | close() 메서드는 활성 WebDriver 인스턴스를 닫습니다. | quit() 메서드는 모든 활성 WebDriver 인스턴스를 닫습니다. |
예시
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(); } }