он имитирует действия пользователя.
Технически я всегда строю это на HTTP/S-запросах, и никогда не использую браузерных движков вроде selenium или phantom.js.
Имитация только частичная, потому как пользователь не только сабмитит, но ещё и мышкой водит.