i want to run the same set of functional tests using both phantomjs and selenium. is there an abstraction layer that makes this easy?