本文介绍webdriver中关于浏览器退出操作。driver中有两个方法是关于浏览器关闭,一个叫quit,一个叫close。先来看看看两者的声明描述,请看下面声明文档。
/**
* Close the current window, quitting the browser if it's the last window currently open.
*/
void close();
/**
* Quits this driver, closing every associated window.
*/
void quit();从上面描述,可以知道,close方法是,关闭当前窗口,这个当前,如何理解,就是driver实例操作的页面,叫当前。如果当前窗口只有一个tab,那么这个close方法就相当于关闭了浏览器。quit方法就是直接退出并关闭所有关联的tab窗口。所以,close方法一般关闭一个tab,quit方法才是我们认为的完全关闭浏览器方法。为了证明这个,我们用一个例子去演示。
package lessons;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class FindElement_LinkText {
public static void main(String[] args) throws Exception {
System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.baidu.com");
//By linkText 查找元素
driver.findElement(By.partialLinkText("设为主页")).click();
Thread.sleep(1000);
driver.close();
//driver.quit();
}
}通过切换注销最后两行代码,分别运行,观察这两种方法的实际效果。当使用close方法的时候,由于driver停留在百度首页,所以这个时候关闭了百度首页这个tab,如何设置首页并没有关闭。因为如何设置首页,driver并没有切换到这个页面,所以不影响。如果使用quit方法,整个浏览器都直接关闭。
一般来说,我们在自动化测试脚本运行完之后,需要恢复到干净环境,所以,一般都采用driver.quit()来直接关闭浏览器。