PHPackages                             turgutsaricam/webdriver-tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. turgutsaricam/webdriver-tools

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

turgutsaricam/webdriver-tools
=============================

General-purpose classes for facebook/webdriver

v0.3.0(4y ago)0626PHPPHP &gt;=7.2CI failing

Since Aug 9Pushed 4y agoCompare

[ Source](https://github.com/turgutsaricam/webdriver-tools)[ Packagist](https://packagist.org/packages/turgutsaricam/webdriver-tools)[ RSS](/packages/turgutsaricam-webdriver-tools/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (1)Versions (9)Used By (0)

webdriver-tools
===============

[](#webdriver-tools)

This repository contains general-purpose classes that are commonly needed when working with [`facebook/webdriver`](https://github.com/facebook/php-webdriver), when running Selenium tests for PHP.

WebDriver Package
=================

[](#webdriver-package)

This package requires [`facebook/webdriver`](https://github.com/facebook/php-webdriver). Basically, this should be used for Selenium tests. This package provides an `AbstractDriverManager` that handles loading different URLs in different tabs, switching to a tab if a URL is already loaded in a tab, adding a parameter for each URL to hint code coverage (the same hint explained in `CoverageHandler`), modifying `window.ajaxurl` JavaScript variable (which is the default variable for WordPress sites) to enable code coverage for AJAX requests, closing excessive browser tabs, setting up the driver and logging into the site-under-test, and other things like refreshing, closing, opening tabs.

To use this package, create a class that extends `AbstractDriverManager`, implement the required methods (or use `DefaultDriverManager`). `AbstractDriverManager` requires an `AbstractSetupStrategy` that will setup the driver and login to the site. To provide a strategy, simply create a class and extend it to `AbstractSetupStrategy`, and implement the required methods. The package comes with `WordPressSetupStrategy`. If you are testing a WordPress site, you can directly use it.

In your tests, instead of using the webdriver directly, perform every driver action through an `AbstractDriverManager`. Otherwise, there is no point using a driver manager.

Development
===========

[](#development)

To test this project, include it in another project using a local repository by defining the following in that other project's `composer.json`:

```
{
  "repositories": [
        {
            "type": "path",
            "url": "path/to/local/directory/of/webdriver-tools",
            "options": {
                "symlink": false
            }
        }
    ],
}
```

After this, delete `vendor/turgutsaricam/webdriver-tools` directory from that other project's `vendor` directory, optionally set the version of `turgutsaricam/webdriver-tools` under `require(-dev)` item of `composer.json` to `@dev`, and then run `composer update turgutsaricam/webdriver-tools`. This will copy the files in the local development repository to that other project's `vendor` directory. By this way, the changes can be tested prior to committing the changes to `git`.

TODO
====

[](#todo)

- Write tests

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~123 days

Recently: every ~170 days

Total

7

Last Release

1730d ago

PHP version history (2 changes)v0.1.0PHP ~7.2

v0.3.0PHP &gt;=7.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/ec951c537a6636e10f725285292b8a15a65c65d2fa88c5402dc3aebf3e32f34c?d=identicon)[turgutsaricam](/maintainers/turgutsaricam)

---

Top Contributors

[![turgutsaricam](https://avatars.githubusercontent.com/u/5666595?v=4)](https://github.com/turgutsaricam "turgutsaricam (16 commits)")

### Embed Badge

![Health badge](/badges/turgutsaricam-webdriver-tools/health.svg)

```
[![Health](https://phpackages.com/badges/turgutsaricam-webdriver-tools/health.svg)](https://phpackages.com/packages/turgutsaricam-webdriver-tools)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
