Доброй ночи, Лоровцы. Пайтон знаю не очень хорошо, и недавно столкнулся с одной проблемой. В общем, есть следующий код:
#!/usr/bin/env python2.7
from multiprocessing import Pool
from termcolor import colored
from selenium import webdriver
#from pyvirtualdisplay import Display
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import random
import time
urls = ['http://linux.org.ru', 'http://opennet.ru'] # и куча остальных url
def bobo(url):
        bro = webdriver.Remote(
           command_executor='http://192.168.1.125:4444/wd/hub',
           desired_capabilities=DesiredCapabilities.FIREFOX)
        print colored('>>> Start browser', 'green')
        bro.get(url)
        print colored('>>> Get page: ', 'yellow')+colored(url, 'cyan')
        bro.save_screenshot('./screens/'+str(random.random())+'.png')
        print colored('>>> Make screenshot', 'magenta')
        bro.quit()
        print colored('>>> Exit ...', 'red')
if __name__ == '__main__':
    pool = Pool(processes=100)           
    result = pool.map_async(bobo, urls)   
    result.wait()
    print result
    print result.get(timeout=1)          
    print colored('*** END ***', 'red')
На другом компьютере запущен selenium-server, к которому из этого кода я и подключаюсь. Так вот, проблема в том, что через некоторое время начинается какая-то непонятная феерия, которая, выглядит, например, так:
<multiprocessing.pool.MapResult object at 0x7f957bf35390>
Traceback (most recent call last):
  File "./poo.py", line 51, in <module>
    print result.get(timeout=1)          
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 558, in get
    raise self._value
selenium.common.exceptions.WebDriverException: Message: Could not convert screenshot to base64 - Error: Invalid base64 data: data:,
Driver info: driver.version: unknown
Stacktrace:
    at <anonymous class>.FirefoxDriver.prototype.screenshot (file:///tmp/anonymous8234494257891062854webdriver-profile/extensions/fxdriver@googlecode.com/components/drive
r-component.js:9844:5)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_/h (file:///tmp/anonymous8234494257891062854webdriver-profile/extensions/fxdriver@googlecode.com/compone
nts/command-processor.js:11635:16)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_ (file:///tmp/anonymous8234494257891062854webdriver-profile/extensions/fxdriver@googlecode.com/component
s/command-processor.js:11640:7)
    at <anonymous class>.DelayedCommand.prototype.execute/< (file:///tmp/anonymous8234494257891062854webdriver-profile/extensions/fxdriver@googlecode.com/components/comma
nd-processor.js:11582:5)
Ну, и ещё бывают всякие разные ошибки. Например, когда я из этого же кода пытаюсь вызвать phantomjs много раз, без selenium remote, то например, эта программа вываливается со следующими ошибками:
>>> Start browser
<multiprocessing.pool.MapResult object at 0x7f4d9d36ed90>
Traceback (most recent call last):
  File "./poo.py", line 51, in <module>
    print result.get(timeout=1)
  File "/usr/lib/python2.7/multiprocessing/pool.py", line 558, in get
    raise self._value
selenium.common.exceptions.WebDriverException: Message: Can not connect to GhostDriver
Собственно, хочу спросить, как правильно можно использовать толпу браузеров совместно с python? Или я допустил в коде какую-то ошибку? Буду очень признателен за помощь.

