如何关闭Python Selenium Web驱动程序窗口

9rygscc1  于 2022-12-26  发布在  Python
关注(0)|答案(6)|浏览(197)

我有一个python脚本,它可以每小时从网站上收集数据。目前它存储在服务器上,运行良好,因为我正在使用任务调度程序来调度它每小时执行脚本。
我正在使用这个代码

driver.quit()

退出浏览器窗口
我的问题是,每当我不登录到服务器,它会开始堆叠的webdriver窗口作为不知何故的驱动程序。退出()函数不工作时,我登录到服务器。每天早上当我来工作,我有吨的窗口从服务器关闭。
我试过退出,关闭,处理,但都没用。我还能试什么?

knpiaxh1

knpiaxh11#

在python中使用chromedriver,我退出Chrome进程:

driver.close()
xkrw2x1b

xkrw2x1b2#

对于Python和chromedriver,我发现这两种方法很有用(注意区别):
driver.close()-关闭浏览器活动窗口。
driver.quit()-关闭所有浏览器窗口并结束驱动程序的会话/进程。

egdjgwm8

egdjgwm83#

你不能在无头模式下刮吗?(例如 chrome )

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

qncylg1j4#

对于任何在2021年仍然觉得这个问题相关的人(见鬼,对我来说!)。
对我来说driver.quit()绝对是正确的方法。主要问题是测试没有被正确清理,这意味着driver.quit()从未被调用过。

  • 确保无论测试是否崩溃都运行清理步骤。例如,在unittest中使用tearDowntearDownClass方法(在setUp中设置驱动程序。
  • 如果你不能做到这一点, Package 你正在做的任何事情与driver对象在一个尝试/捕捉和做的driver.quit()finally块。
8dtrkrch

8dtrkrch5#

我使用linux命令来关闭所有。这里有两个命令,我运行后,所有的刮工作完成:

  • pkill火狐
  • p杀死Xcfb
c0vxltue

c0vxltue6#

我认为webDriver.Dispose()应该工作,它关闭所有浏览器窗口。这里是一个SO post about the 3 different ways to close a webdriver

相关问题