Functional testing without Selenium