📅  最后修改于: 2023-12-03 15:05:08.888000             🧑  作者: Mango
在Selenium中,WebDriver是操作浏览器的核心,而driver则是WebDriver的实例对象。当我们使用完WebDriver后,需要关闭它,以便及时释放系统的资源。在关闭driver时,我们可以使用driver.close()
和driver.quit()
方法来实现,然而它们之间有着不同的功能和使用场景。
driver.close()
driver.close()
方法用于关闭当前窗口或标签页,如果当前窗口是浏览器中的唯一窗口,则会关闭整个浏览器。此方法不会关闭整个WebDriver对象,只会关闭当前使用的窗口。如果在关闭当前窗口后还有其他窗口未被关闭,则可以通过driver.switch_to.window()
方法切换到其他窗口,继续对它们进行操作。
以下是通过driver.close()
关闭当前窗口的示例代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.google.com")
# ... 对页面进行操作 ...
driver.close()
driver.quit()
driver.quit()
方法用于完全退出WebDriver对象,并关闭所有与之相关联的窗口和标签页,释放所有系统资源。此方法使用频率更高,因为它可以有效地避免WebDriver占用系统资源,在测试完成后及时释放系统资源。另外,此方法同样会将内存中的WebElements清空,如果有长时间的测试运行,此方法也可以清空内存,避免Out Of Memory错误。
以下是通过driver.quit()
完全退出WebDriver的示例代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.google.com")
# ... 对页面进行操作 ...
driver.quit()
总的来说,driver.close()
与driver.quit()
的区别在于,前者只会关闭当前窗口或标签页,后者会完全退出WebDriver对象,并关闭所有与之相关联的窗口和标签页。需要根据具体需求选择使用哪个方法来关闭WebDriver对象。