behat / mink
Browser controller/emulator abstraction for PHP
Installs: 68 784 637
Dependents: 688
Suggesters: 4
Security: 0
Stars: 1 600
Watchers: 39
Forks: 280
Open Issues: 78
Requires
- php: >=7.2
- symfony/css-selector: ^4.4 || ^5.0 || ^6.0 || ^7.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^8.5.22 || ^9.5.11
- symfony/error-handler: ^4.4 || ^5.0 || ^6.0 || ^7.0
- symfony/phpunit-bridge: ^5.4 || ^6.0 || ^7.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)
This package is auto-updated.
Last update: 2024-10-30 18:49:57 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
<?php 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