behat / mink
Browser controller/emulator abstraction for PHP
v1.13.0
2025-11-22 12:18 UTC
Requires
- php: >=7.2
- symfony/css-selector: ^4.4 || ^5.0 || ^6.0 || ^7.0 || ^8.0
Requires (Dev)
- jetbrains/phpstorm-attributes: *
- phpstan/phpstan: ^1.12.32
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^8.5.22 || ^9.5.11
- symfony/error-handler: ^4.4 || ^5.0 || ^6.0 || ^7.0 || ^8.0
- symfony/phpunit-bridge: ^5.4 || ^6.0 || ^7.0 || ^8.0
Suggests
- behat/mink-browserkit-driver: fast headless driver for any app without JS emulation
- behat/mink-selenium2-driver: slow, but JS-enabled driver for any app (requires Selenium2)
- behat/mink-zombie-driver: fast and JS-enabled headless driver for any app (requires node.js)
- dmore/chrome-mink-driver: fast and JS-enabled driver for any app (requires chromium or google chrome)
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-30 03:41:32 UTC
README
Useful Links
- The main website with documentation is at https://mink.behat.org
- Official Google Group is at https://groups.google.com/group/behat
- Note on Patches/Pull Requests
Usage Example
use Behat\Mink\Mink,
Behat\Mink\Session,
Behat\Mink\Driver\GoutteDriver,
Behat\Mink\Driver\Goutte\Client as GoutteClient;
$startUrl = 'http://example.com';
// init Mink and register sessions
$mink = new Mink(array(
'goutte1' => new Session(new GoutteDriver(new GoutteClient())),
'goutte2' => new Session(new GoutteDriver(new GoutteClient())),
'custom' => new Session(new MyCustomDriver($startUrl))
));
// set the default session name
$mink->setDefaultSessionName('goutte2');
// visit a page
$mink->getSession()->visit($startUrl);
// call to getSession() without argument will always return a default session if has one (goutte2 here)
$mink->getSession()->getPage()->findLink('Downloads')->click();
echo $mink->getSession()->getPage()->getContent();
// call to getSession() with argument will return session by its name
$mink->getSession('custom')->getPage()->findLink('Downloads')->click();
echo $mink->getSession('custom')->getPage()->getContent();
// this all is done to make possible mixing sessions
$mink->getSession('goutte1')->getPage()->findLink('Chat')->click();
$mink->getSession('goutte2')->getPage()->findLink('Chat')->click();
Install Dependencies
$> curl -sS https://getcomposer.org/installer | php $> php composer.phar install
Contributors
- Konstantin Kudryashov everzet [lead developer]
- Christophe Coevoet stof [lead developer]
- Alexander Obuhovich aik099 [lead developer]
- Other awesome developers