I'm not actually seeing much code controlling the flow of the program.
What is the advantage of it being declarative? At least for the example, the equivalent imperative code is about the same length.
on edit: although the web interfaces being what they are some things need to be order dependent - like INPUT(google, 'input[name="q"]', "ferret") CLICK(google, 'input[name="btnK"]'), I mean you need to click the button after you fill out the input.