Использовать встраиваемый браузер - Phantom.js и Selenium предназначенные специально для этого,
либо просто "движки" - IE, Gecko, WebKit, Awesomium и CEF.
Другой вариант, вместо взаимодействия с браузером работать непосредственно с сервером, с помощью Fiddler, Wireshark, Charles, Web Inspector (DevTools) и т.п. сниффера отследить какие HTTP-запросы отправляются при тех или иных действиях, и их симитировать с помощью curl и т.п.