Download the PHP package integratedexperts/behat-screenshot without Composer
On this page you can find all versions of the php package integratedexperts/behat-screenshot. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download integratedexperts/behat-screenshot
More information about integratedexperts/behat-screenshot
Files in integratedexperts/behat-screenshot
Package behat-screenshot
Short Description Behat extension and step definitions to create HTML and image screenshots on demand or when tests fail
License GPL-2.0-or-later
Informations about the package behat-screenshot
Behat extension to create screenshots
[](https://github.com/drevops/behat-screenshot/issues)
[](https://github.com/drevops/behat-screenshot/pulls)
[](https://github.com/drevops/behat-screenshot/actions/workflows/test.yml)
[](https://codecov.io/gh/drevops/behat-screenshot)



[](https://packagist.org/packages/drevops/behat-screenshot)
Features
- Captures a screenshot using the
I save screenshot
step.
- Captures fullscreen screenshots with the
I save fullscreen screenshot
step.
- Automatically captures a screenshot when a test fails.
- Supports both HTML and PNG screenshots.
- Supports Selenium and Headless drivers.
- Configurable screenshot directory.
- Automatically purges screenshots after each test run.
- Adds additional information to screenshots.
Installation
Usage
I save screenshot
step.I save fullscreen screenshot
step.Example behat.yml
with default parameters:
or with parameters:
In your feature:
You can capture fullscreen screenshots:
There are two algorithms available for capturing fullscreen screenshots:
-
Resize (default): Temporarily resizes the browser window to the full height of the page to capture everything in one screenshot. This is faster, but may cause layout issues on some pages.
- Stitch: Takes multiple screenshots while scrolling the page and stitches them together. This produces high-quality results with proper content rendering but requires the GD extension.
You can configure which algorithm to use via the fullscreen_algorithm
option:
You may optionally specify the size of the browser window in the screenshot step:
or a file name:
To always capture fullscreen screenshots, even without explicitly using the
fullscreen
keyword, set the always_fullscreen
configuration option to
true
:
Options
Name | Default value | Description |
---|---|---|
dir |
%paths.base%/screenshots |
Path to directory to save screenshots. Directory structure will be created if the directory does not exist. Override with BEHAT_SCREENSHOT_DIR env var. |
on_failed |
true |
Capture screenshot on failed test. |
purge |
false |
Remove all files from the screenshots directory on each test run. Useful during debugging of tests. |
always_fullscreen |
false |
Always use fullscreen screenshot capture for all screenshot steps, including regular screenshot steps. When enabled, all I save screenshot steps will behave like I save fullscreen screenshot . |
fullscreen_algorithm |
resize |
Algorithm to use for fullscreen screenshots. Options: resize (temporarily resizes browser window to full page height) or stitch (captures multiple screenshots while scrolling and stitches them together). The stitch algorithm requires GD extension but produces higher quality results. |
info_types |
url , feature , step , datetime |
Show additional information on screenshots. Comma-separated list of url , feature , step , datetime , or remove to disable. Ordered as listed. |
failed_prefix |
failed_ |
Prefix failed screenshots with failed_ string. Useful to distinguish failed and intended screenshots. |
filename_pattern |
{datetime:u}.{feature_file}.feature_{step_line}.{ext} |
File name pattern for successful assertions. |
filename_pattern_failed |
{datetime:u}.{failed_prefix}{feature_file}.feature_{step_line}.{ext} |
File name pattern for failed assertions. |
File name tokens
Token | Substituted with | Example value(s) |
---|---|---|
{ext} |
The extension of the file captured | html or png |
{failed_prefix} |
The value of failed_prefix from configuration | failed_ , error_ (do include the _ suffix, if required) |
{url} |
Full URL | http_example_com_mypath_subpath_query_myquery_1_plus_2_fragment |
{url_origin} |
Scheme with domain | http_example_com |
{url_relative} |
Path + query + fragment | mypath_subpath_query_myquery_1_plus_2_fragment |
{url_domain} |
Domain | example_com |
{url_path} |
Path | mypath_subpath |
{url_query} |
Query | myquery_1_plus_2 |
{url_fragment} |
Fragment | somefragment |
{feature_file} |
The filename of the .feature file currently being executed, without extension |
my_example.feature -> my_example |
{step_line} |
Step line number | 1 , 10 , 100 |
{step_line:%03d} |
Step line number with leading zeros. Modifiers are from sprintf() . |
001 , 010 , 100 |
{step_name} |
Step name without Given/When/Then and lower-cased. |
i_am_on_the_test_page |
{datetime} |
Current date and time. defaults to Ymd_His format. |
20010310_171618 |
{datetime:U} |
Current date and time as microtime. Modifiers are from date() . |
1697490961192498 |
Auto-purge
By default, the purge
option is disabled. This means that the screenshot
directory will not be cleared after each test run. This is useful when you want
to keep the screenshots for debugging purposes.
If you want to clear the directory after each test run, you can enable the
purge
option in the configuration.
Alternatively, you can use BEHAT_SCREENSHOT_PURGE
environment variable to
enable the auto-purge feature for a specific test run.
Additional information on screenshots
You can enable additional information on screenshots by setting info_types
in
the configuration. The order of the types will be the order of the information
displayed on the screenshot.
By default, the information displayed is the URL, feature file name, step line:
More information can be added by setting the info_types
configuration option
and using addInfo()
method in your context class.
Maintenance
BDD tests
There are tests for Selenium and Headless drivers. Selenium requires a Docker container and headless requires a Chromium browser (we will make this more streamlined in the future).
Repository created using https://getscaffold.dev/ project scaffold template
All versions of behat-screenshot with dependencies
behat/behat Version ^3.13.0
friends-of-behat/mink-extension Version ^2.7
symfony/finder Version ^6.4 || ^7.0
symfony/http-client Version ^6.0 || ^7.0