如何关闭Python selenium webdriver窗口

问题描述 投票:0回答:7

我有一个Python脚本,可以每小时从网站上抓取数据。它目前存储在服务器上并且运行良好,因为我正在使用任务计划程序来安排它每小时执行脚本。

我正在使用此代码

driver.quit()

退出浏览器窗口

我的问题是,每当我不登录服务器时,它就会开始堆积 webdriver 窗口,因为当我登录服务器时,driver.quit() 函数不起作用。每天早上我上班时,我都有大量的窗口需要从服务器关闭。

我尝试过退出、关闭、处置,但都没有帮助。我还能尝试什么?

python selenium webdriver
7个回答
48
投票

在使用 chromedriver 的 python 中,我使用以下命令退出 Chrome 进程:

driver.close()

16
投票

对于 Python 和 chromedriver,我发现这两种方法很有用(注意区别):

driver.close()
- 关闭浏览器活动窗口。

driver.quit()
- 关闭所有浏览器窗口并结束驱动程序的会话/进程。


3
投票

对于 2021 年仍然认为这个问题相关的人(哎呀,这对我来说!)。

对我来说

driver.quit()
绝对是正确的方法。主要问题是测试没有正确清理,这意味着
driver.quit()
从未被调用过。

  • 无论测试是否崩溃,都确保运行清理步骤。例如在
    unittest
    中使用
    tearDown
    tearDownClass
    方法(在
    setUp
    中设置驱动程序。
  • 如果你做不到这一点,请将你对
    driver
    对象所做的任何事情包装在 try / catch 中,并在
    driver.quit()
    块中执行
    finally

2
投票

你不能在无头模式下刮擦吗? (以铬为例)

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.headless = True
...
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.create_options()

0
投票

我使用linux命令关闭所有。这是我在完成所有抓取工作后运行的两个命令:

  • pkill 火狐
  • pkill Xcfb

0
投票

您可以通过调用 JavaScript 关闭方法来关闭浏览器,如下所示。

driver.execute_script("window.close();")

-4
投票

我认为

webDriver.Dispose()
应该可以工作,它会关闭所有浏览器窗口。这是一篇SO 帖子,介绍了关闭网络驱动程序的 3 种不同方法

© www.soinside.com 2019 - 2024. All rights reserved.