PackageTrack
Sign in Get early access

symfony/panther

A browser testing and web scraping library for PHP and Symfony.

v2.4.0 17M downloads/mo #967 most downloaded on Packagist symfony/panther

What this package is like to depend on

Last release 7 months ago

08 Jan 2026

Release timing varies

gaps range from 4 weeks to 1.5 years

Nearly every release is documented

notes for 25 of 26 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

26 releases · first in 2018

2 releases in the last 12 months

see the full history below

Release timeline

26 releases · Jul 2018 to Jan 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 26
  1. v2.4.0 08 Jan 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v2.3.0...v2.4.0

    Open source →
  2. v2.3.0 21 Nov 2025
    Release notes
    • Add support for PHP 8.5
    • Add support for Symfony 8
    • Disable dev-tools by default
    Open source →
    Release notes
    • Add support for PHP 8.5
    • Add support for Symfony 8
    • Disable dev-tools by default
    Open source →
  3. v2.2.0 30 Jan 2025
    Release notes
    • Add support for PHP 8.4
    • Add support for using Selenium with the built-in web server
    • Add a PANTHER_NO_REDUCED_MOTION environment variable to instruct the website to disable the reduction of non-essential movement
    • Add the ability to pass options to HttpClient when using HttpBrowser
    • Use a custom exception hierarchy instead of native exceptions directly
    • The Firefox window-size option is not set by default anymore in headless mode
    • Add explicit error messages in wait* methods
    • Fix support for checkbox and radio buttons having 0 as value
    • Fix catching of WebDriver exceptions
    • Ignore curl exceptions when closing WebDriver inside the destructor
    • Documentation has been moved from the Git repository to https://symfony.com/doc/current/testing/end_to_end.html
    Open source →
    Release notes
    • Add support for PHP 8.4
    • Add support for using Selenium with the built-in web server
    • Add a PANTHER_NO_REDUCED_MOTION environment variable to instruct the website to disable the reduction of non-essential movement
    • Add the ability to pass options to HttpClient when using HttpBrowser
    • Use a custom exception hierarchy instead of native exceptions directly
    • The Firefox window-size option is not set by default anymore in headless mode
    • Add explicit error messages in wait* methods
    • Fix support for checkbox and radio buttons having 0 as value
    • Fix catching of WebDriver exceptions
    • Ignore curl exceptions when closing WebDriver inside the destructor
    • Documentation has been moved from the Git repository to https://symfony.com/doc/current/testing/end_to_end.html
    Open source →
  4. v2.1.1 03 Dec 2023
    Release notes
    • Allow Symfony 7
    • Improve DX when using the Symfony binary
    • Fix screenshot on test failure
    • Add missing arguments when calling the legacy PHPUnit extension
    Open source →
    Release notes
    • Allow Symfony 7
    • Improve DX when using the Symfony binary
    • Fix screenshot on test failure
    • Add missing arguments when calling the legacy PHPUnit extension
    Open source →
  5. v2.1.0 30 May 2023
    Release notes
    • Add support for PHPUnit 10
    • Add support for matches() and closest() in Crawler
    Open source →
    Release notes
    • Add support for PHPUnit 10
    • Add support for matches() and closest() in Crawler
    Open source →
  6. v2.0.1 02 Dec 2021
    Release notes

    What's Changed

    • Fix accessing PantherTestCaseTrait::$webServerDir before initialization by @kbond in #523

    Full Changelog: v2.0.0...v2.0.1

    Open source →
    Release notes
    • Fix accessing PantherTestCaseTrait::$webServerDir before initialization
    Open source →
  7. v2.0.0 30 Nov 2021
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.1.2...v2.0.0

    Open source →
    Release notes
    • Allow Symfony 6
    • Add type declarations everywhere possible
    • Remove Support for Symfony 4.4
    Open source →
  8. v1.1.2 30 Nov 2021
    Release notes

    What's Changed

    Full Changelog: v1.1.1...v1.1.2

    Open source →
    Release notes
    • Allow deprecation-contracts 3
    • Fix Form::offsetGet() return type
    Open source →
  9. v1.1.1 14 Jul 2021
    Release notes
    • Fix a bug preventing to disable the headless mode
    Open source →
    Release notes
    • Fix a bug preventing to disable the headless mode
    Open source →
  10. v1.1.0 13 Jul 2021
    Release notes
    • Add a PANTHER_DEVTOOLS environment variable to disable the dev tools
    • Add a PANTHER_ERROR_SCREENSHOT_ATTACH environment variable to attach screenshots to PHPUnit reports in the JUnit format
    • Add a chromedriver_arguments option to pass custom arguments to Chromedriver
    • Add an env option to pass custom environment variables to the built-in web server from PantherTestCase
    • Add the possibility to pass options to ChromeManager
    • Automatically find the Chromedriver binary installed by lanfest/binary-chromedriver
    • Symfony 5.3 compatibility
    • Fix assertions that were not working with clients other than PantherClient
    • Fix the ability to keep the window of the browser open when a test fail by using the --debug option
    • Fix the ServerExtension when registerClient() is called multiple times
    • Fix undefined constant errors when using PantherTestCaseTrait directly
    Open source →
    Release notes
    • Add a PANTHER_DEVTOOLS environment variable to disable the dev tools
    • Add a PANTHER_ERROR_SCREENSHOT_ATTACH environment variable to attach screenshots to PHPUnit reports in the JUnit format
    • Add a chromedriver_arguments option to pass custom arguments to Chromedriver
    • Add an env option to pass custom environment variables to the built-in web server from PantherTestCase
    • Add the possibility to pass options to ChromeManager
    • Automatically find the Chromedriver binary installed by lanfest/binary-chromedriver
    • Symfony 5.3 compatibility
    • Fix assertions that were not working with clients other than PantherClient
    • Fix the ability to keep the window of the browser open when a test fail by using the --debug option
    • Fix the ServerExtension when registerClient() is called multiple times
    • Fix undefined constant errors when using PantherTestCaseTrait directly
    Open source →
  11. v1.0.1 03 Feb 2021
    Release notes
    • Fix storing screenshots in the wrong directory when PANTHER_ERROR_SCREENSHOT_DIR is enabled
    Open source →
  12. v1.0.0 03 Feb 2021
    Release notes
    • Add Client::waitForEnabled(), Client::waitForDisabled(), Client::waitForAttributeToContain() and Client::waitForAttributeToNotContain() methods
    • Add PantherTestCase::assertSelectorAttributeContains(), PantherTestCase::assertSelectorAttributeNotContains(), PantherTestCase::assertSelectorWillExist(), PantherTestCase::assertSelectorWillNotExist(), PantherTestCase::assertSelectorWillBeVisible(), PantherTestCase::assertSelectorWillNotBeVisible(), PantherTestCase::assertSelectorWillContain(), PantherTestCase::assertSelectorWillNotContain(), PantherTestCase::assertSelectorWillBeEnabled(), PantherTestCase::assertSelectorWillBeDisabled, PantherTestCase::assertSelectorAttributeWillContain(), and PantherTestCase::assertSelectorAttributeWillNotContain() assertions
    • Automatically take a screenshot when a test fail and if the PANTHER_ERROR_SCREENSHOT_DIR environment variable is set
    • Add missing return types
    • Breaking Change: Remove the deprecated PHPUnit listener, use the PHPUnit extension instead
    • Breaking Change: Remove deprecated support for Goutte, use HttpBrowser instead
    • Breaking Change: Remove deprecated support for PANTHER_CHROME_DRIVER_BINARY and PANTHER_GECKO_DRIVER_BINARY environment variables, add the binaries in your PATH instead
    • Don't allow unserializing classes with a destructor
    Open source →
  13. v0.9.0 29 Dec 2020
    Release notes
    • Breaking Change: ChromeDriver and geckodriver binaries are not included in the archive anymore and must be installed separately, refer to the documentation
    • PHP 8 compatibility
    • Add Client::waitForStaleness() method to wait for an element to be removed from the DOM
    • Add Client::waitForInvisibility() method to wait for an element to be invisible
    • Add Client::waitForElementToContain() method to wait for an element containing the given parameter
    • Add Client::waitForElementToNotContain() method to wait for an element to not contain the given parameter
    • Add PantherTestCase::assertSelectorIsVisible(), PantherTestCase::assertSelectorIsNotVisible(), PantherTestCase::assertSelectorIsEnabled() and PantherTestCase::assertSelectorIsDisabled() assertions
    • Fix baseUri not taken into account when using Symfony HttpBrowser
    Open source →
  14. v0.8.0 03 Oct 2020
    Release notes
    • Upgrade ChromeDriver to version 85.0.4183.87
    • Upgrade geckodriver to version 0.27.0
    • Add a Client::waitForVisibility() method to wait for an element to appear
    • Allow passing options to the browser manager from PantherTestCase::createPantherClient()
    • Add a Client::ping() method to check if the WebDriver connection is still active
    • Fix setting a new value to an input field when there is an existing value
    • Improve the error message when the web server crashes
    • Throw an explanative LogicException when driver is not started yet
    • Prevent timeouts caused by the integrated web server
    • Fix the value of cookie secure flags
    • Throw an exception when getting history (unsupported feature)
    • Add docs to use Panther with GitHub Actions
    • Various bug fixes and documentation improvements
    Open source →
  15. v0.7.1 24 Feb 2020
    Release notes
    • Fix some inconsistencies between Chrome and Firefox
    Open source →
  16. v0.7.0 20 Feb 2020
    Release notes
    • Add built-in support for Firefox (using GeckoDriver)
    • Add support for Symfony HttpBrowser
    • Deprecate Goutte support (use HttpBrowser instead)
    • Allow configuring RemoteWebDriver timeouts when using Selenium
    • Allow passing custom environment variables to the built-in web server
    • Fix some compatibility issues with PHP WebDriver 1.8
    • Upgrade ChromeDriver to version 80.0.3987.106
    • Prevent access to fixture files even if the web server is misconfigured
    Open source →
  17. v0.6.1 20 Jan 2020
    Release notes
    • Upgrade ChromeDriver to version 79.0.3945.36
    • Allow passing custom timeouts as options of ChromeManager (connection_timeout_in_ms and request_timeout_in_ms)
    Open source →
  18. v0.6.0 28 Oct 2019
    Release notes
    • Add compatibility with Symfony 5
    • Allow using Client::waitFor() to wait for invisible elements
    • Add support to pass XPath expressions as parameters of Client::waitFor()
    • Fix Crawler::attr() signature (it can return null)
    • Deprecate ServerListener (use ServerExtension instead)
    • Upgrade ChromeDriver to version 78.0.3904.70
    • New logo
    • Various docs fixes and improvements
    Open source →
  19. v0.5.2 27 Aug 2019
    Release notes
    • Fix a bug occurring when using a non-fresh client
    Open source →
  20. v0.5.1 23 Aug 2019
    Release notes
    • Allow to override the APP_ENV environment variable passed to the web server by setting PANTHER_APP_ENV
    • Fix using assertions with a client created through PantherTestCase::createClient()
    • Don't call PantherTestCase::getClient() if this method isn't static
    • Fix remaining deprecations
    Open source →
  21. v0.5.0 22 Aug 2019
    Release notes
    • Add support for Crawler test assertions
    • Add the PantherTestCase::createAdditionalPantherClient() to retrieve additional isolated browsers, useful to test applications using Mercure or WebSocket
    • Improved support for non-standard web server directories
    • Allow the integrated web server to start even if the homepage doesn't return a 200 HTTP status code
    • Increase default timeouts from 5 seconds to 30 seconds
    • Improve error messages
    • Add compatibility with Symfony 4.3
    • Upgrade ChromeDriver to version 76.0.3809.68
    • Various quality improvements
    Open source →
  22. v0.4.1 11 Jun 2019
    Release notes
    • Remove the direct dependency to symfony/contracts
    Open source →
  23. v0.4.0 04 Jun 2019
    Release notes
    • Speed up the boot sequence
    • Add basic support for file uploads
    • Add a readinessPath option to use a custom path for server readiness detection
    • Fix the behavior of ChoiceFormField::getValue() to be consistent with other BrowserKit implementations
    • Ensure to clean the previous content of field when using TextareaFormField::setValue() and InputFormField::setValue()
    Open source →
  24. v0.3.0 27 Feb 2019
    Release notes
    • Add a new API to manipulate the mouse
    • Keep the browser window open on fail, when running in non-headless mode
    • Automatically open Chrome DevTools when running in non-headless mode
    • PHPUnit 8 compatibility
    • Add a PHPUnit extension to keep alive the web server, and the client between tests
    • Change the default port of the web server to 9080 to prevent a conflict with Xdebug
    • Allow to use an external web server instead of the built-in one for testing
    • Allow to use a custom router script
    • Allow to use a custom Chrome binary
    Open source →
  25. v0.2.0 26 Sep 2018
    Release notes
    • Add JS execution capabilities to Client
    • Allow keeping the web server and client active even after test teardown
    • Add a method to refresh the crawler (Client::refreshCrawler())
    • Add options to configure the web server and ChromeDriver
    • PHP 7.1 compatibility
    Open source →
  26. v0.1.0 17 Jul 2018

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive