如何通过保持webDriver处于活动状态来关闭整个浏览器窗口?
通过在Seleniumwebdriver的帮助下保持webdriver处于活动状态,我们可以关闭整个浏览器。为此,我们必须使用close方法。如果有多个浏览器打开,则close方法只能关闭焦点对准的浏览器,但webdriver会话仍保持活动状态。
还有另一种方法称为quit。它关闭所有打开的浏览器并终止浏览器会话。在测试执行结束时,始终最好使用quit方法正确终止会话并避免内存泄漏。
如果仅打开了一个浏览器窗口,则可以使用close方法终止驱动程序会话并释放所有资源。
示例
用.NET实现代码close()
。
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import java.util.List; import java.util.Set; import java.util.Iterator; public class CloseWindow { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("https://secure.indeed.com/account/login"); //隐式等待 driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); driver.findElement(By.id("login-google-button")).click(); //窗把手 Set w = driver.getWindowHandles(); //窗把手 iterate Iterator t = w.iterator(); String ch = t.next(); String pw = t.next(); //切换子窗口 driver.switchTo().window(ch); //仅关闭子浏览器窗口 driver.close(); } }
用.NET实现代码quit()
。
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; import java.util.List; import java.util.Set; import java.util.Iterator; public class QuitWindow { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("https://secure.indeed.com/account/login"); //隐式等待 driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); driver.findElement(By.id("login-google-button")).click(); //窗把手 Set w = driver.getWindowHandles(); //窗把手 iterate Iterator t = w.iterator(); String ch = t.next(); String pw = t.next(); //切换子窗口 driver.switchTo().window(ch); //切换父窗口 driver.switchTo().window(pw); //终止驱动程序会话并关闭所有窗口 driver.quit(); } }