{"id":23024,"library":"zope-testbrowser","title":"zope.testbrowser","description":"Programmable web browser for functional black-box testing of WSGI and HTTP applications. Current version 8.0, supports Python >=3.9. Released under Zope Foundation, follows a rolling release cadence.","status":"active","version":"8.0","language":"python","source_language":"en","source_url":"https://github.com/zopefoundation/zope.testbrowser","tags":["testing","web","functional-testing","zope","browser"],"install":[{"cmd":"pip install zope.testbrowser","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core dependency for browser interfaces","package":"zope.interface","optional":false},{"reason":"HTML/XML parsing and form handling","package":"lxml","optional":false},{"reason":"HTTP cookie handling and browser mechanics (deprecated in newer versions, still used for some features)","package":"mechanize","optional":true}],"imports":[{"wrong":"from zope.testbrowser import Browser","symbol":"Browser","correct":"from zope.testbrowser.browser import Browser"}],"quickstart":{"code":"import os\nfrom zope.testbrowser import Browser\n\nbrowser = Browser()\nbrowser.open('http://example.com')\nprint(browser.title)\nbrowser.getControl('search').value = 'zope'\nbrowser.getControl('Go').click()","lang":"python","description":"Create a Browser instance, open a URL, interact with forms."},"warnings":[{"fix":"Update imports: from zope.testbrowser import Browser for HTTP, from zope.testbrowser.wsgi import Browser for WSGI.","message":"In version 8.0, dropped support for Python <3.9. Also removed the old zope.testbrowser.browser module; use zope.testbrowser or zope.testbrowser.wsgi.","severity":"breaking","affected_versions":">=8.0"},{"fix":"Use browser = Browser(); browser.clear() before a new test scenario.","message":"Browser is stateful. Multiple requests share cookies and history. Clear state with browser.clear() or create a new Browser instance.","severity":"gotcha","affected_versions":"all"},{"fix":"Switch to from zope.testbrowser.wsgi import Browser for faster, more reliable tests.","message":"The mechanize backend is deprecated. Future versions may rely on requests or similar. Use WSGI browser if possible.","severity":"deprecated","affected_versions":"<9.0 (future)"}],"env_vars":null,"search_vec":"'3.9':21 '8.0':18 'applic':15 'black':8 'black-box':7 'box':9 'browser':4,37 'cadenc':30 'current':16 'follow':26 'foundat':25 'function':6,34 'functional-test':33 'http':14 'programm':2 'python':20 'releas':22,29 'roll':28 'support':19 'test':10,31,35 'version':17 'web':3,32 'wsgi':12 'zope':24,36 'zope.testbrowser':1","created_at":"2026-04-27T17:08:19.956888+00:00","updated_at":"2026-04-27T17:08:19.956888+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"8.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/zopefoundation/zope.testbrowser","docs":"https://zopetestbrowser.readthedocs.io/","changelog":null,"pypi":"https://pypi.org/project/zope-testbrowser/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing","web-framework","http-networking"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-30","last_verified":"2026-06-30","next_check":"2026-07-30","install_tag":null}}