【问题标题】:Selenium python web driver doesnt closeSelenium python webdriver不关闭
【发布时间】:2018-03-09 20:48:48
【问题描述】:

我在测试拆解时调用driver.quit(),但 chromedriver 进程保持活动状态并且不会关闭。 所以在执行之间有时 Chrome 根本没有打开,我需要手动关闭进程。 有人熟悉这个问题吗?

我正在使用硒 3.5

【问题讨论】:

  • 一直或有时?你也确定退出被正确调用
  • 有时,我确定
  • 如果我正在调试并且经常关闭浏览器会话或停止执行,我最终会得到很多 chromedriver.exe 进程,它从来没有给我带来任何问题。发布拆解代码。将日志消息放入拆解中,并确保每次您认为它都会执行它。除了额外的进程之外,这会导致什么实际问题?

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

将您的代码更改为以下代码,以确保退出后该进程不存在

import signal
import os
pid = driver.service.process.pid

driver.quit()
try:
    os.kill(int(pid), signal.SIGTERM)
    print("Killed chrome using process")
except ProcessLookupError as ex:
    pass

【讨论】:

  • import signal 不见了
  • 另外我会在这里使用signal.SIGKILL,因为这是驱动程序不退出时的后备
  • @Steinfeld,SIGKILL 可能有点野蛮,这就是为什么你应该先使用 SIGTERM
  • 这仍然对您有用吗?我在 Chrome 89 上,它不会关闭窗口(也不会抛出异常)
  • @EvanHessler,正常的driver.quit() 应该可以工作,这段代码只是用于处理意外情况
猜你喜欢
  • 1970-01-01
  • 2017-07-24
  • 2015-03-02
  • 1970-01-01
  • 2022-10-07
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多