different-technology / wraith-php
PHP Wraith is a screenshot comparison tool using Selenium - written in PHP.
Requires
- php: ^7.4
- ext-imagick: *
- ext-json: *
- php-webdriver/webdriver: ^1.9
- symfony/yaml: ^5.2
README
PHP Wraith
PHP Wraith is a website crawler & screenshot comparison tool using Selenium - written in PHP.
This tool is based on the ideas of bbc/wraith.
Installation
Prerequisites
System requirements:
- PHP version (> 7.4) with PHP extensions
imagick
andjson
(see composer.json) - Composer
Install sources
Either install this package via composer:
composer require different-technology/wraith-php
Or clone the code from GitHub:
git clone git@github.com:different-technology/wraith-php.git
cd wraith-php
composer install
Chromedriver
Download the chromedriver for your Chrome version: https://chromedriver.chromium.org/downloads
Place the chromedriver here (optional): bin/chromedriver
Setup
Configure your website in your own YAML config file in /configs
.
See example in /configs/example.yml
Start
Run chromedriver (optional)
The chromedriver
has to run on configured port (default: 4444
) while executing the commands.
Start the chromedriver
bin/chromedriver --port=4444
You can also use the autostart option to start the chromedriver automatically if it's not available.
Screenshots
Call the screenshot
command with your config name (file name without .yml
extension).
php app.php screenshot {{your-config-name}} {{threads-count(optional)}}
The results are store in the directory /data/screenshots/{{your-config-name}}/{{current-date-time}}
.
Feel free to rename the last directory name from {{current-date-time}}
to something meaningful.
Example:
# Take screenshots php app.php screenshot example 3 # Rename screenshots to "before-update" mv data/screenshots/example/2021-02-04_10-10-55 data/screenshots/example/before-update
Compare
Call the compare
command with your config name (file name without .yml
extension).
Provide the two directory names to compare.
php app.php compare {{your-config-name}} {{directory1}} {{directory2}}
Example:
php app.php compare example 2021-02-04_00-05-35 2021-02-04_00-38-37
Join
Cou can join a running job to work in threads on a single task (the task has to support jobs).
Just lookup the job-id in the directory /data/jobs/
.
php app.php join {{your-config-name}} {{job-id}}
Example:
php app.php join example d6f7f694f8563362e17ae6ab64d1578f
List commands
Cou can list all available commands with the help
command of symfony:
php app.php list
Show results
Open this file in your browser to see the results: public/index.html