在 Selenium WebDriver 中,quit() 和 close()方法主要有以下区别:
一、作用范围
• close():
• 作用于当前的浏览器窗口。如果只打开了一个窗口,调用这个方法会关闭这个窗口。
• 如果是在多个窗口的情况下,只关闭当前聚焦的窗口,而不会影响其他窗口。
• quit():
• 会关闭所有由 WebDriver 启动的浏览器窗口,并且会结束浏览器进程以及相关的驱动进程(例如 ChromeDriver、GeckoDriver 等)。
二、内存释放
• close():可能不会完全释放与当前窗口相关的资源,特别是在多窗口场景下,如果没有正确管理窗口句柄,可能会导致一些资源泄漏。
• quit():通常会更彻底地释放与 WebDriver 会话相关的所有资源,确保系统资源得到较好的清理。
例如:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
# 关闭当前窗口
driver.close()
driver = webdriver.Chrome()
driver.get("https://www.example.com")
# 关闭所有窗口并退出驱动
driver.quit()