Spynner is a stateful programmatic web browser module for Python with Javascript/AJAX support based upon the QtWebKit framework. Refer to the README for more info.
import spynner
browser =
... [More]
spynner.Browser()
browser.load("http://www.wordreference.com")
browser.runjs("console.log('I can run Javascript!')")
browser.runjs("_jQuery('div').css('border', 'solid red')") # and jQuery!
browser.select("#esen")
browser.fill("input[name=enit]", "hola")
browser.click("input[name=b]")
browser.wait_page_load()
print browser.url, len(browser.html)
browser.close() [Less]