📌  相关文章
📜  如何阻止 Selenium 关闭我的浏览器 - Python (1)

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

如何阻止 Selenium 关闭我的浏览器 - Python

Selenium 是一个常用的自动化测试工具,但是有时候我们不希望它在执行完任务后自动关闭浏览器。本文将介绍如何阻止 Selenium 关闭浏览器。

方法一:使用 driver.quit() 替换 driver.close()

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 总是只关闭当前窗口,而不会彻底关闭浏览器。

方法二:使用 with 语句

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 语句。在 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 的其他语言版本,也可以采用类似的方法阻止它关闭浏览器。