PHP Wraith is a screenshot comparison tool using Selenium - written in PHP.

1.0.0 2021-02-04 16:17 UTC

This package is auto-updated.

Last update: 2024-06-29 04:53:16 UTC


README

Packagist Release Packagist Downloads GitHub License

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:

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