guikingone / panther-extension
Panther extension for Mink
Installs: 1 847
Dependents: 0
Suggesters: 0
Security: 0
Stars: 23
Watchers: 2
Forks: 1
Open Issues: 2
Requires
- php: >=7.1
- ext-zip: *
- behat/behat: ^3.0.5
- behat/mink: ^1.5
- behat/mink-extension: ^2.0
- symfony/config: ^3.0|^4.0|^5.0
- symfony/panther: ^0.7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- infection/infection: ^0.13.6
- phpstan/phpstan: ^0.12.23
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-12-13 18:32:35 UTC
README
Mink extension for controlling Chrome | Firefox | Selenium
thanks to Symfony Panther.
Foreword:
This extension is experimental (even if stable at 95%), some features may be missing.
Installation:
First, you need to install Symfony Panther and it's required dependencies, then:
composer require guikingone/panther-extension
Usage:
default: suites: default: contexts: - PantherExtension\Context\PantherContext: - PantherExtension\Context\WaitContext: # Your contexts extensions: PantherExtension\Extension\PantherExtension: ~ Behat\MinkExtension: browser_name: chrome base_url: http://localhost sessions: default: panther: driver: 'chrome' # Or 'firefox', 'selenium', 'chrome' is the default value
WaitContext
has been introduced in 0.4
If you need to use Selenium
, just adapt the session configuration:
# ... extensions: PantherExtension\Extension\PantherExtension: ~ Behat\MinkExtension: browser_name: chrome base_url: http://localhost sessions: default: panther: driver: 'selenium' selenium: hub_url: 'http://127.0.0.1:4444/wd/hub'
Here's a simple example using a POC project which call API-Platform website
Feature: As a newbie in API-Platform, I want to document myself in many features Scenario: I should be able to see the main documentation Given I am on "/" And I should see "REST and GraphQL framework to build modern API-driven projects" Scenario: I should be able to see the main documentation Given I am on "/" And I go to "/docs/distribution/" Then I should see "API Platform is the most advanced API platform, in any framework or language." Scenario: I should be able to document myself about GraphQL support Given I am on "/" And I follow "Get started" When I follow "Adding GraphQL Support" Then I should be on "/docs/distribution/#adding-graphql-support" Then I should see "You now have a GraphQL API!" Scenario: I should be able to document myself about GraphQL support thanks to the search field Given I am on "/" When I fill in "SEARCH..." with "GraphQL" And I wait for "#algolia-autocomplete-listbox-0" Then I should see "Documentation" And I should see "Search by" And I should see "Enabling GraphQL" Scenario: I should be able to test the demo Given I am on "/" And I follow "Demo" Then I should be on "https://demo-client.api-platform.com/" When I follow "API" Then I should be on "https://demo.api-platform.com/" Scenario: I should be able to test the demo Given I am on "/" And I follow "Community" And I create a new client "test" using the "chrome" driver Then I switch to client "test" And I go to "/" Then I should see "REST and GraphQL framework to build modern API-driven projects" Then I remove the client "test" Then I should see "API Platform's community" 6 scenarios (6 passed) 29 steps (29 passed) 0m28.61s (20.63Mb)
Documentation
The full documentation can be found here
CI usage
Please refer to Symfony Panther documentation about using it in CI environments.
Development
The project can be launched using:
make boot
Every test can be launched using:
make tests
For more commands or help, please use:
make
Contributing
Just fork this repo and submit a new PR!