我有一个Python脚本,可以每小时从网站上抓取数据。它目前存储在服务器上并且运行良好,因为我正在使用任务计划程序来安排它每小时执行脚本。
我正在使用此代码
driver.quit()
退出浏览器窗口
我的问题是,每当我不登录服务器时,它就会开始堆积 webdriver 窗口,因为当我登录服务器时,driver.quit() 函数不起作用。每天早上我上班时,我都有大量的窗口需要从服务器关闭。
我尝试过退出、关闭、处置,但都没有帮助。我还能尝试什么?
在使用 chromedriver 的 python 中,我使用以下命令退出 Chrome 进程:
driver.close()
对于 Python 和 chromedriver,我发现这两种方法很有用(注意区别):
driver.close()
- 关闭浏览器活动窗口。
driver.quit()
- 关闭所有浏览器窗口并结束驱动程序的会话/进程。
对于 2021 年仍然认为这个问题相关的人(哎呀,这对我来说!)。
对我来说
driver.quit()
绝对是正确的方法。主要问题是测试没有正确清理,这意味着 driver.quit()
从未被调用过。
unittest
中使用 tearDown
或 tearDownClass
方法(在 setUp
中设置驱动程序。driver
对象所做的任何事情包装在 try / catch 中,并在 driver.quit()
块中执行 finally
。你不能在无头模式下刮擦吗? (以铬为例)
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.headless = True
...
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.create_options()
我使用linux命令关闭所有。这是我在完成所有抓取工作后运行的两个命令:
您可以通过调用 JavaScript 关闭方法来关闭浏览器,如下所示。
driver.execute_script("window.close();")