PHPackages                             robertfausk/behat-panther-extension - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. robertfausk/behat-panther-extension

ActiveBehat-extension[Testing &amp; Quality](/categories/testing)

robertfausk/behat-panther-extension
===================================

Symfony Panther extension for Behat

v1.2.0(1y ago)341.7M—8%8[2 issues](https://github.com/robertfausk/behat-panther-extension/issues)[5 PRs](https://github.com/robertfausk/behat-panther-extension/pulls)20MITPHPPHP &gt;=7.2CI failing

Since Aug 16Pushed 1y ago3 watchersCompare

[ Source](https://github.com/robertfausk/behat-panther-extension)[ Packagist](https://packagist.org/packages/robertfausk/behat-panther-extension)[ RSS](/packages/robertfausk-behat-panther-extension/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (8)Versions (13)Used By (20)

BehatPantherExtension
=====================

[](#behatpantherextension)

[![Latest Stable Version](https://camo.githubusercontent.com/041c4aecf01868b81d9b8d6beb4fe1ffb4493a7e97d974effcfbc2e95dd50ec5/68747470733a2f2f706f7365722e707567782e6f72672f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e2f762f737461626c652e737667)](https://packagist.org/packages/robertfausk/behat-panther-extension)[![Latest Unstable Version](https://camo.githubusercontent.com/2e1bf812cc3a370f294f5557accd5e599d7c06558f3e5334859ca7081941af8d/68747470733a2f2f706f7365722e707567782e6f72672f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e2f762f756e737461626c652e737667)](https://packagist.org/packages/robertfausk/behat-panther-extension)[![Total Downloads](https://camo.githubusercontent.com/ff1f1f88598927cf194e4bf018bb87d78e2d7ebeb63be884b5aab804ac6496ad/68747470733a2f2f706f7365722e707567782e6f72672f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e2f646f776e6c6f6164732e737667)](https://packagist.org/packages/robertfausk/behat-panther-extension)[![Monhtly Downloads](https://camo.githubusercontent.com/5d532100dc5af52a43a9afaa2e289d7573cd1ce56118c279941205625b7a4323/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e3f7374796c653d666c617426636f6c6f723d626c7565)](https://img.shields.io/packagist/dm/robertfausk/behat-panther-extension)[![Daily Downloads](https://camo.githubusercontent.com/0bc57c0fbdd9c90fa6a72d5c24f51cb85ed3dfc08bfa6161aa0ea339d35a9c21/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64642f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e3f7374796c653d666c617426636f6c6f723d626c7565)](https://img.shields.io/packagist/dm/robertfausk/behat-panther-extension)[![Tests](https://github.com/robertfausk/behat-panther-extension/actions/workflows/ci.yml/badge.svg)](https://github.com/robertfausk/behat-panther-extension/actions/workflows/ci.yml)[![Scrutinizer Quality Score](https://camo.githubusercontent.com/0928a2bea17da889c3ce4999cfcd6c90cfb6a7956c14be96bff0ba56f9e35564/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e2f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/robertfausk/behat-panther-extension/)[![Code Coverage](https://camo.githubusercontent.com/6bb639b6fad81325d81176f4d62d7d37a48393afcfe678013a0afd12c2b7f44e/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e2f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/robertfausk/behat-panther-extension/)[![Software License](https://camo.githubusercontent.com/f251623e510f5909f16ae3f4e6e548dac11340b9fde1a99be26b015b39272c00/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c6174)](LICENSE)[![PHP Version Require](https://camo.githubusercontent.com/7692de2de6c7b72527a16a257d0e9dbf387b8cf1ea060d20e91ea00e0c104eb4/687474703a2f2f706f7365722e707567782e6f72672f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e2f726571756972652f706870)](https://packagist.org/packages/robertfausk/behat-panther-extension)[![Open Issues](https://camo.githubusercontent.com/8b89e6cc14f3853edb49e55b657f2d11a530d48e0f862a320670712914fae2d6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d7261772f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e3f7374796c653d666c6174)](https://github.com/robertfausk/behat-panther-extension/issues)[![Closed Issues](https://camo.githubusercontent.com/300884ddb147f5ba484292b040f32d9f128131b69367dfce189e30072417bc25/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d636c6f7365642d7261772f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e3f7374796c653d666c6174)](https://github.com/robertfausk/behat-panther-extension/issues?q=is%3Aissue+is%3Aclosed)[![Contributors](https://camo.githubusercontent.com/00c24f06b70ccd150a1c08dc92625b464a0f57a47c240587da88134d48fe3f47/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e3f7374796c653d666c6174)](https://github.com/robertfausk/behat-panther-extension/graphs/contributors)[![Contributors](https://camo.githubusercontent.com/d0f14f23a778f21780565957d8df9d15d8150f642a5a899f1676657f23cfe36b/68747470733a2f2f696d672e736869656c64732e696f2f6d61696e74656e616e63652f7965732f323032373f7374796c653d666c6174)](https://camo.githubusercontent.com/d0f14f23a778f21780565957d8df9d15d8150f642a5a899f1676657f23cfe36b/68747470733a2f2f696d672e736869656c64732e696f2f6d61696e74656e616e63652f7965732f323032373f7374796c653d666c6174)[![Dependents](https://camo.githubusercontent.com/33384ba3a59c5ef4efeaa528d2f2052d0b2cad9d5b76669c8dbf4f2e5c1375a6/687474703a2f2f706f7365722e707567782e6f72672f726f62657274666175736b2f62656861742d70616e746865722d657874656e73696f6e2f646570656e64656e7473)](https://packagist.org/packages/robertfausk/behat-panther-extension/dependents)

Symfony Panther extension for Behat

Install
-------

[](#install)

```
composer require --dev robertfausk/behat-panther-extension
```

Usage example
-------------

[](#usage-example)

- Add `Robertfausk\Behat\PantherExtension: ~` to your behat.yml.
- Use `panther` session in `Behat\MinkExtension`.
- The extension will use options of `symfony/panther` by default. Have a look at `PantherTestCaseTrait::$defaultOptions` for this.
- Following are some examples with all sessions using mink-panther-driver: ```
    # in behat.yml
        extensions:
            Robertfausk\Behat\PantherExtension: ~ # no configuration here
            Behat\MinkExtension:
               javascript_session: javascript_chrome
               sessions:
                   default:
                       panther: ~
                   javascript:
                       panther:
                           options: ~
                   javascript_chrome:
                       panther:
                           options:
                               browser: 'chrome'
                               webServerDir: '%paths.base%/public' # your custom public dir
                   javascript_firefox:
                       panther:
                           options:
                               browser: 'firefox'
                   javascript_with_all_options:
                       panther:
                           options:
                               env:
                                   APP_ENV: 'dev'
                               hostname: '127.0.0.1'
                           kernel_options: ~ # unused by behat-panther-extension cause it does not extend KernelTestCase
                           manager_options:
                               connection_timeout_in_ms: 5000
                               request_timeout_in_ms: 120000
    ```

#### Example on how to pass arguments to ChromeDriver binary

[](#example-on-how-to-pass-arguments-to-chromedriver-binary)

See also

```
# in behat.yml enable logging
    extensions:
        Robertfausk\Behat\PantherExtension: ~
        Behat\MinkExtension:
           javascript_session: javascript
           sessions:
               javascript:
                   panther:
                       manager_options:
                           chromedriver_arguments:
                               - --log-path=/var/www/html/chromedriver.log
                               - --verbose
```

#### Example on how to test for a downloaded file

[](#example-on-how-to-test-for-a-downloaded-file)

```
# in behat.yml ensure that chrome saves files to the destination you want
    extensions:
        Robertfausk\Behat\PantherExtension: ~
        Behat\MinkExtension:
           javascript_session: javascript
           files_path: '%paths.base%/tests/files'
           sessions:
               javascript:
                   panther:
                       manager_options:
                           capabilities:
                                goog:chromeOptions:
                                    prefs:
                                        download.default_directory: '/var/www/html/tests/files/Downloads'
```

```
# acme_download.feature
Feature: Acme files can be downloaded

  Background:
    Given there is no file in download directory
    # additionally setup your database entries etc. if needed

  @javascript
  Scenario: As an user with role Admin i can download an existing acme file
    Given I am authenticated as "admin@acme.de"
    And I am on "/acme-file-list"
    Then I wait for "acme.pdf" to appear
    When I click on test element "button-acme-download"
    Then I can find file "acme.pdf" in download directory
```

```
