📅  最后修改于: 2023-12-03 15:24:57.655000             🧑  作者: Mango
Selenium 是一个常用的自动化测试工具,但是有时候我们不希望它在执行完任务后自动关闭浏览器。本文将介绍如何阻止 Selenium 关闭浏览器。
Selenium 有两种关闭浏览器的方法:driver.quit()
和 driver.close()
。其中,driver.quit()
会彻底关闭浏览器和 WebDriver,而 driver.close()
只关闭当前窗口。
如果您使用的是 driver.quit()
,则需要将其替换为 driver.close()
:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://www.google.com')
element = driver.find_element_by_name('q')
element.send_keys('Hello Selenium!')
element.submit()
driver.close() # 替换 driver.quit() 为 driver.close()
此时,Selenium 总是只关闭当前窗口,而不会彻底关闭浏览器。
Python 中的 with 语句可以帮助我们在代码块执行完毕后,自动执行某些清理操作。因此,我们可以使用 with 语句来实现在任务完成后关闭浏览器的目的。
from selenium import webdriver
with webdriver.Firefox() as driver:
driver.get('http://www.google.com')
element = driver.find_element_by_name('q')
element.send_keys('Hello Selenium!')
element.submit()
# 代码块执行完毕后,with 语句会自动 close() 浏览器
使用 with 语句,即使发生异常情况,浏览器也会被正确关闭。
还有一种方法是使用 try...finally 语句。在 try 语句块中执行任务,然后在 finally 语句块中关闭浏览器。
from selenium import webdriver
driver = webdriver.Firefox()
try:
driver.get('http://www.google.com')
element = driver.find_element_by_name('q')
element.send_keys('Hello Selenium!')
element.submit()
finally:
driver.quit() # 使用 try...finally 语句关闭浏览器
这种方法会在 try 语句块代码执行完毕后,无论是否发生异常,都会执行 finally 语句块中的操作。
如果您使用的是 Selenium 的其他语言版本,也可以采用类似的方法阻止它关闭浏览器。