Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Mink Selenium2 Driver Laravel Package

lullabot/mink-selenium2-driver

A Selenium 2 (WebDriver) browser driver for Mink, letting PHP acceptance tests control real browsers via WebDriver. Maintained by Lullabot for Drupal and Behat testing, it runs JavaScript-driven scenarios and integrates with Mink sessions and selectors.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is test infrastructure, not application code. lullabot/mink-selenium2-driver is a WebDriver backend for the Mink browser-abstraction layer — it sits below Behat or Codeception and above a Selenium Grid. It ships no service provider, no config publish, no facade, and nothing touches the request lifecycle. Critically, Mink is not Laravel's testing story: Laravel's first-party browser testing is Dusk, which uses php-webdriver directly and never touches Mink. The only legitimate integration path in a Laravel codebase is a pre-existing Codeception/Behat acceptance suite using the Mink module. For a Drupal-adjacent shop, the calculus changes — Lullabot's fork exists to serve that ecosystem, not Laravel's.

Integration feasibility. Mechanically trivial: one Composer require, then instantiate the driver with a Selenium endpoint and browser capabilities. The real integration cost is environmental — a Java Selenium Grid or the selenium/hub + browser-node container pair in CI, plus artifact capture. That cost exists with or without this package; the package itself is a thin adapter.

Technical risk. The adoption signal is the headline: 2 stars, 0 dependents, a 0.43 quality score. This is a fork maintained for a narrow consumer, and forks create a second source of truth against upstream behat/mink-selenium2-driver. That means security and protocol fixes may land upstream and never reach this package. Secondary risks: single-maintainer/organizational dependency on Lullabot's priorities, and protocol drift — Selenium 4, strict W3C capability negotiation, Chrome-for-Testing download endpoints, and BiDi adoption have all broken drivers that lag. Because failures surface only in CI, they are expensive to attribute and easy to misread as flaky tests.

Key questions. What is the actual delta versus upstream — a one-line patch, or substantive divergence? Can that delta be expressed as cweagans/composer-patches against upstream instead? Who releases this package and what triggers a release? Does it track Selenium 4 and current Chrome/Firefox, or does it silently fall back to legacy JSON Wire semantics? What is the supported PHP matrix, and does it match our runtime? Is it already transitively pinned in our lockfile — i.e., is this a new decision or a review of an existing one?

Assessment. Do not adopt this ab initio. It is defensible only as a continuation of an existing dependency where the fork's specific patch is load-bearing.

Integration Approach

Stack fit. Adopt only if Mink is already the abstraction layer in an existing acceptance suite. Greenfield Laravel E2E should use Dusk, Symfony Panther, or Playwright — all have clearer maintenance and better browser-vendor alignment. Introducing Mink into a Laravel app to justify this driver is backwards.

Migration path. Treat the fork as a temporary patch carrier, not a strategic dependency. Confirm the divergent commits, then prefer upstream behat/mink-selenium2-driver plus a pinned patch file. If the delta is too large to patch, keep the fork but constrain it to an exact version and record it in the dependency inventory with an owner and a reassessment date. Keep the Mink DSL surface actually used narrow so the driver remains a config-level swap.

Compatibility. Verify against the project's Mink version, Codeception/Behat version, PHP version, and the Selenium Grid image tag. Confirm W3C-mode behavior on both Chrome and Firefox; capability rejection is the most common silent break. Pin the browser node image, not just the package — version skew there is the failure that actually bites.

Sequencing. (1) Diff the fork against upstream — this is a 30-minute investigation that likely resolves the decision. (2) If the delta is small, replace with upstream plus a composer-patches entry. (3) If not, pin the fork exactly and document why. (4) Validate end-to-end against a Selenium 4 grid in a non-blocking CI job. (5) Only then standardize across suites.

Operational Impact

Maintenance. Day-to-day cost is near zero — the package is passive. The carrying cost is orphan risk: an unmaintained driver fails at the moment a browser vendor ships a breaking change, and the fix is not ours to merge. Budget a twice-yearly fork audit and a security/upstream-delta review.

Support. No SLA, no vendor. Support is a GitHub issue queue on a 2-star repository and whatever goodwill exists toward Lullabot's Drupal work. Assign an internal owner before adoption; an unowned test dependency is how CI rots.

Scaling. This package does not scale — the grid does. Parallelism is a function of Selenium node count and session quotas, and contention/flakiness grows superlinearly past a few dozen concurrent sessions. Plan capacity at the grid layer.

Failure modes. Browser/driver version mismatch after an unattended image pull; W3C capability rejection producing opaque session-creation errors; timeouts that manifest as flaky tests rather than infrastructure faults; silent protocol fallback degrading behavior versus what tests assume; broken screenshot and log capture, which destroys debuggability exactly when you need it. Blast radius is confined to CI — no production exposure — which is the single strongest argument in this package's favor.

Ramp-up. Low. Engineers write Mink DSL (visit, fillField, clickLink), not driver code, so the package is invisible to most of the team. Onboarding cost is Selenium Grid operations and debugging discipline, not this library. Estimate under a day of ramp for a developer already fluent in the suite, and treat grid troubleshooting as a separate infrastructure competency.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console