Проблема с параллельным запуском тестов через Selenium Hub

Всем привет!
Знаю, что эта тема поднималась неоднократно, в том числе на этом форуме, но ответа на свой вопрос я так и не нашла.

В целях самообучения пытаюсь запустить свои тесты параллельно в нескольких браузерах.
Для этого локально подняла грид и зарегистрировала в нем ноды для основных браузеров.
Параметры запуска задаются в testng.xml, проект собирается на maven.

Изначально тесты писались без учета возможности параллельного запуска, поэтому пришлось немного модифицировать подход к работе с драйвером:

class BaseTest {
private static ThreadLocal<WebDriver> driver = new ThreadLocal<WebDriver>();
protected ThreadLocal<WebDriver> setWebDriver(String browser) throws MalformedURLException {
//тут инициализируется драйвер
}

@BeforeClass
@Parameters("browser")
protected void setUp(String browser) throws Exception {
    driver = setWebDriver(browser);
    driver.get().manage().window().maximize();
    System.setProperty(ESCAPE_PROPERTY, "false");
}
}

Если запускать тесты для одного бразуера - все ок.
Но когда пытаюсь запустить для 2 и более, начинаются проблемы:
в одном из браузеров тесты начинают прогоняться, но падают со странными ошибками, которых нет при непараллельном запуске, во втором браузере - даже не запускаются.

Как я понимаю, проблема явно с использованием драйвера, потоки не могут “поделить” его между собой. Но разве использование контейнера ThreadLocal не должно решить эту проблему?

Ну как минимум покажите:

  • xml
  • код очистки контейнера
  • код закрытия драйвера

как вариант можно использовать GitHub - barancev/webdriver-factory: An utility to manage WebDriver instances что бы не изобретать свое