Как создать иммитацию действий бота, заполнения формы?
1. Никакой проблемы в нескольких потоках создавать несколько драйверов нет. Если умеешь в многопоточность как концепцию, конечно.
2. PhantomJS работает без гуя и требует относительно мало ресурсов - в этом его преимущество. В headless mode умеет еще geckodriver (firefox), но он более прожорливый. Зато можно всегда этот headless mode отключить и посмотреть, что происходит.
3. В целом все это работает примерно так: ваша программа -> библиотека selenium -> selenium server(открывается на локалхосте) -> драйвер браузера -> браузер. Соответственно язык может быть любой из тех, для которых есть библиотека, а браузер любой из тех, для которых написан драйвер.
1. Селениум - это драйвер для браузера. Инструмент, с помощью которого вы посылаете команду браузеру
2. Фантом - это браузер без графики. Селениум с ним тоже может работать. Фантом меньше ресурсов жрет (просто консольное приложение)
Дальше
Вам нужно UI протестить или серверную логику? Если у вас UI посылает запрос на сервер для регистрации и вам нужно проверить именно сервер, то проще сразу POST-запросы слать - тут вам ни селениум, ни браузер не нужны будут (просто на вашем любимом языке пишете отправку запросов)Если, все же, надо UI проверить - используйте селениум и любой подходящий браузер.