2014-11-11 2 views
1

Вот только о самом простом открыть и закрыть вы можете сделать с WebDriver и фантомом: from selenium import webdriver crawler = webdriver.PhantomJS() crawler.set_window_size(1024,768) crawler.get('https://www.google.com/') crawler.quit() Селен WebDriver + PhantomJS процессы не закрывающие

На окнах (7), каждый раз, когда я запускаю мой код, чтобы проверить что-то, новый экземпляры процессов conhost.exe и phantomjs.exe начинаются и никогда не завершаются. Я делаю что-то глупое здесь? Я решил, что процессы прекратятся, когда crawler.quit() сделал ...

ответ

0

Перезагрузка не является решением проблемы. Я экспериментировал с этим взломом в системе LINUX. Попробуйте изменить функцию stop(), определенную в service.py

def stop(self): 
    """ 
    Cleans up the process 
    """ 
    if self._log: 
     self._log.close() 
     self._log = None 
    #If its dead dont worry 
    if self.process is None: 
     return 

    #Tell the Server to properly die in case 
    try: 
     if self.process: 
      self.process.stdin.close() 
      #self.process.kill() 
      self.process.send_signal(signal.SIGTERM) 
      self.process.wait() 
      self.process = None 
    except OSError: 
     # kill may not be available under windows environment 
     pass 

Добавлена ​​линия send_signal явно дать сигнал для выхода phantomjs процесса. Не забудьте добавить инструкцию import signal в начале этого файла.

Смежные вопросы