📜  driver.close (1)

📅  最后修改于: 2023-12-03 15:14:47.878000             🧑  作者: Mango

Python 中的 driver.close()

在 Web 自动化测试中,浏览器是很重要的工具之一,如果不能很好地管理浏览器的话,会有可能会导致测试失败,或是造成其他问题。因此,应该要更好地了解浏览器的生命周期,以便在之后的测试中开展更加高效的自动化测试。在 Python 语言中,通过执行 driver.close() 语句来关闭浏览器的窗口或标签页,下面将详细介绍这个步骤。

driver.close() 的作用

driver.close() 语句用于关闭由 Selenium WebDriver 实例管理的浏览器的当前窗口或标签页。当我们使用的是 WebDriver 实例中的 driver 对象来访问网页的时候,每一个浏览器窗口或是标签页都会以一个窗口句柄 window handle 的形式存在。当我们在 Python 测试代码中使用了 driver.close() 语句的时候,WebDriver 就会关闭当前浏览器窗口,并且释放其中对应的资源;同时,Python 独立的进程将继续运行。

driver.close() vs. driver.quit()

在停止资源的执行的时候,有两种方法可以关闭 WebDriver 实例中的浏览器窗口。第一种方法是使用 driver.close() 语句,这个方法只会关闭当前的窗口,而不会停止应用中的 WebDriver 实例。也就是说,如果当前 WebDriver 实例中有其他窗口或标签页是打开的,那么这些窗口会继续在当前运行时保持打开状态。相反地,使用 driver.quit() 语句时,WebDriver 实例会在测试完成后完全关闭,应用也会终止,并且没有进一步的测试代码执行。

为了避免因为调用 driver.close() 方法而出现的执行错误,应该始终确认自己正在处理的是正确的窗口句柄。如果不希望在执行完测试时需要手动退出浏览器标签页或窗口,则建议使用 driver.quit()。

使用 driver.close() 的 Python 示例代码

下面,是使用 driver.close() 方法的 Python 示例代码:

from selenium import webdriver

driver = webdriver.Chrome()

# 打开百度首页
driver.get('https://www.baidu.com')

# 这里执行测试应用程序的代码

# 关闭浏览器窗口/标签页
driver.close()

# 结束 Python 进程
exit(0)

在上面的代码中,我们首先使用 webdriver.Chrome() 创建了一个新的 Chrome 浏览器的实例,然后我们使用 driver.get('https://www.baidu.com') 命令打开了百度首页。在这个过程中,我们可以通过 driver 对象来实现对页面的一系列调用或操作。在这里,我们演示了使用 driver.close() 命令来关闭当前活跃的浏览器窗口。最后,使用 exit(0) 命令关闭所有浏览器窗口并结束 Python 进程,以确保整个应用程序的成功关闭。