Python Selenium未关闭docker内部的浏览器进程

Python Selenium未关闭docker内部的浏览器进程,python,selenium,docker,google-chrome,docker-compose,Python,Selenium,Docker,Google Chrome,Docker Compose,我有一个docker容器: ... web: build: context: . dockerfile: Dockerfile command: python /code/manage.py migrate --noinput command: python /code/manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports:

我有一个docker容器:

    ...
    web:
     build:
      context: .
      dockerfile: Dockerfile
     command: python /code/manage.py migrate --noinput
     command: python /code/manage.py runserver 0.0.0.0:8000
     volumes:
      - .:/code
     ports:
      - 80:8000
     environment:
      - SECRET_KEY=changemeinprod
     depends_on:
      - db
      - redis
     ...
Selenium scrape在此容器中运行(docker中的django项目):


尽管我用命令
driver.quit()
关闭了
driver
,chrome进程仍然在运行。此脚本的每次执行都会保留chrome进程,并使下一次执行变慢,因为有多个chrome进程正在运行。如何在docker内部实现关闭chrome?即使我需要在django项目运行的地方重新启动容器,您能告诉我如何使用python脚本(docker容器使用python脚本重新启动本身)。

尝试使用
driver.close()
而不是
driver.quit()
。另外,尝试将超时添加到您的呼叫中。。。可能是链接下载时间太长

@LinPy是的,当然
     ...
     chrome_options = Options()
     chrome_options.add_argument("--headless")
     chrome_options.add_argument('--no-sandbox')
     chrome_options.add_argument('--disable-dev-shm-usage')
     prefs = {"profile.managed_default_content_settings.images": 2}
     chrome_options.add_experimental_option("prefs", prefs)

     driver = webdriver.Chrome(executable_path=chrome_driver_path, 
     options=chrome_options)
     driver.get(link)
     ...
     ...
     pid = driver.service.process.pid

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