2017-01-18 7 views
0

У меня есть программа многопроцессорной обработки, которая создает новые экземпляры хром-веб-драйвера, но через некоторое время я вижу, что количество процессов chrome становится очень высоким (2300 !!) :Selenium: Слишком много процессов Chrome повышаются, когда я запускаю экземпляры веб-драйвера

opt/google/chrome/chrome --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-infobars --disable-popup-blocking --disable-prompt-on-repost 

Я пытался убить любой процесс, хром, которые все еще живы после выхода драйвера, используя этот код:

mydisplay = Display(visible=0, size=(1024, 768)) 
mydisplay.start() 
mydriver = webdriver.Chrome('driver path') 
PIDs = psutil.Process(mydriver.service.process.pid).children(recursive=True) 
self.driver.quit() 
self.display.stop() 
for p in PIDs: 
    try: 
      p.kill() 
    except: 
      print 'no process to kill' 

Но когда он работает, есть еще какие-то процессы «хром» остались позади. Любая идея о первопричине проблемы и ее разрешении?

ответ

1

У меня была такая же проблема, и решение было убить все процессы chromedriver.exe по имени на TestCleanup. Поскольку я не привык к python, я нашел this вопрос, который может помочь вам в этом.

0

Предполагая, что вы используете Linux, вы можете испытывать это: Chromedriver frequently hangs when attempting to start a new session

Решение добавить DBUS_SESSION_BUS_ADDRESS=/dev/null ваших переменных окружения:

  • export DBUS_SESSION_BUS_ADDRESS=/dev/null
  • $ DBUS_SESSION_BUS_ADDRESS=/dev/null python myscript.py