robertfausk/mink-panther-driver

Symfony Panther driver for Mink framework

Installs: 2 001 476

Dependents: 1

Suggesters: 0

Security: 0

Stars: 10

Watchers: 2

Forks: 8

Open Issues: 8

Type:mink-driver

v1.1.1 2024-04-18 10:43 UTC

README

Latest Stable Version Latest Unstable Version Total Downloads Monhtly Downloads Daily Downloads Tests Scrutinizer Quality Score Code Coverage Software License PHP Version Require Open Issues Closed Issues Contributors Contributors Dependents

Symfony Panther driver for Mink framework

Install

composer require --dev robertfausk/mink-panther-driver

Usage Example

<?php

use Behat\Mink\Mink;
use Behat\Mink\Session;
use Behat\Mink\Driver\PantherDriver;
use Symfony\Component\Panther\PantherTestCase;

// These are the same options passed as in PantherTestCaseTrait::createPantherClient client constructor. 
protected static $defaultOptions = [
    'webServerDir' => __DIR__.'/../../../../public', // the Flex directory structure
    'hostname' => '127.0.0.1',
    'port' => 9080,
    'router' => '',
    'external_base_uri' => null,
    'readinessPath' => '',
    'browser' => PantherTestCase::CHROME,
];
$kernelOptions = []; # unused cause we do not extend class KernelTestCase
$managerOptions = [];

$mink = new Mink(array(
    'panther' => new Session(new PantherDriver($defaultOptions, $kernelOptions, $managerOptions)),
));

$mink->getSession('panther')->getPage()->findLink('Chat')->click();

Please refer to MinkExtension-example for an executable example.

Documentation

Since MinkPantherDriver is just glue between Mink and Symfony Panther, it already has an extensive documentation:

How to upgrade?

Have a look at CHANGELOG for detailed information.

How to contribute?

Start docker-compose with php web driver by using one of the prepared docker setups with php7.2, php7.3, php7.4, php8.0, php8.1 or php8.2.

docker-compose up php8.2

Run phpunit tests

docker-compose exec php8.2 vendor/bin/phpunit

If you run into issues of type session not created: This version of ChromeDriver only supports Chrome version 79 then it is because of mismatched versions between installed chrome driver and chromium. Best way to bypass this problem is to update them to their newest version.

docker-compose exec php8.2 vendor/bin/bdi detect drivers

Credits

Created by Robert Freigang robertfausk.

MinkPantherDriver is built on top of Panther and for usage with Behat and Mink. It has been inspired by MinkBrowserKitDriver and MinkSelenium2Driver.