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

Behat Chrome Extension Laravel Package

sylius-labs/behat-chrome-extension

Behat extension for controlling Chrome without Selenium, communicating directly over HTTP and WebSockets for speed at least twice as fast. Supports headless Chrome 59+, with configurable SSL validation, socket timeout, and download behavior.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. syliuslabs/behat-chrome-extension is a Behat extension that wires the Chrome Mink driver into a Behat acceptance-test suite — it lets Behat scenarios drive a real Chrome/Chromium instance (typically headless in CI) via the DevTools protocol. It is not a Laravel package and has no relationship to Laravel's service container, HTTP kernel, or Dusk. It is relevant only if the target system runs a Behat/Mink suite — most commonly Sylius storefronts, but in principle any PHP application with a behat.yml. For a Laravel-first portfolio, the architecture fit is low unless we have inherited Behat suites (Sylius migrations, legacy e-commerce platforms). It is a developer/QA-tooling dependency, never a runtime/production dependency, which bounds the blast radius considerably.

Integration feasibility. Straightforward: composer require --dev syliuslabs/behat-chrome-extension, register the extension in behat.yml under extensions:, and configure the Mink driver to point at a running Chrome/Chromedriver. The real integration cost is not the Composer package — it is the infrastructure: Chrome binary, matching chromedriver, headless flags, --no-sandbox in containerised CI, and a stable lifecycle wrapper in pipelines. Expect a day or two of pipeline work for a team already comfortable with Behat; significantly more for a team that has only used Dusk/Pest browser testing.

Technical risk. Moderate and mostly confined to the test harness. v1.5.1 is a single-change patch: it adds a Composer conflict against dmore/chrome-mink-driver 2.11.0 (PR #5, first contribution from @TheMilek). That is a defensive pin — it strongly implies 2.11.0 broke this extension. The risk profile is therefore: (a) we cannot adopt chrome-mink-driver 2.11.0 while on this version, which may collide with another package requiring ^2.11; (b) the pin is a workaround rather than a fix, so the underlying incompatibility still exists and will resurface in 2.12+; (c) Composer will silently resolve to an older driver, which can produce confusing behaviour rather than a clean error. There is no new feature, no API change, no deprecation, and no removal in this release — the public surface is unchanged, so a patch-level upgrade from v1.5.0 is low risk if the current lockfile already sits below 2.11.0.

Key questions.

  • What specifically fails with chrome-mink-driver 2.11.0 — a runtime error, a capability negotiation failure, or a behavioural regression? Is there an upstream issue?
  • Is a fixed release of the extension imminent, or is the pin intended to persist? This determines whether we track it or work around it.
  • Do we currently resolve chrome-mink-driver at 2.11.0 anywhere? If so, v1.5.1 is a forced downgrade, not a routine bump.
  • Which Chrome/chromedriver versions are validated against v1.5.1, and is there a CI matrix upstream?
  • Is this package actively maintained (release cadence, maintainer count), given the current maintainer set appears small?

Integration Approach

Stack fit. Only applicable to Behat-based suites. If our services are Laravel + Dusk or Pest browser tests, this package should not be introduced — it solves a problem we do not have. If we operate Sylius or another Behat/Mink estate, it is close to the default choice for Chrome driving and fits naturally alongside behat/mink-extension and behat/mink-browserkit-driver (the latter for fast non-JS scenarios, with this extension reserved for JS-required ones).

Migration path. Nothing to migrate at the application level; v1.5.1 changes only the dependency graph. For existing consumers: composer update syliuslabs/behat-chrome-extension --with-dependencies, then inspect composer.lock to confirm which chrome-mink-driver version actually resolved — do not assume Composer picked 2.10.x. For new adopters: install the extension and the driver together in one step so the conflict constraint is evaluated during initial resolution rather than as a surprise later.

Compatibility. The conflict entry is the entire compatibility story of this release. Practically, that means the supported window is chrome-mink-driver ≤ 2.10.x until further notice. Verify this against any other dev dependency that pins or requires chrome-mink-driver (some Behat/Mink bundles do) — a hard conflict there will block the upgrade entirely, and Composer's error is unhelpful. Also confirm PHP and Behat version bounds are unchanged; nothing in the changelog suggests otherwise, but the patch should be validated against our exact PHP and Behat majors in CI.

Sequencing.

  1. Land v1.5.1 on a branch, run composer why dmore/chrome-mink-driver and diff the lockfile.
  2. Execute the full Behat acceptance suite in the CI container to confirm the downgraded driver behaves correctly.
  3. Verify Chrome and chromedriver versions in CI still satisfy the resolved driver — the pin changes driver code, not the browser, so this is a re-validation, not a re-provisioning.
  4. Roll out to remaining Behat suites only after one green end-to-end run.
  5. Open a tracking item to remove the pin when upstream resolves the 2.11.0 incompatibility; do not let it become permanent folklore.

Operational Impact

Maintenance. Low. This is dev-only tooling with one release in the period under review and a single-line diff. The ongoing cost is not the package itself but the surrounding surface: Chrome upgrades, chromedriver pairing, and Behat/Drupal-Mink transitive updates. Budget a small recurring allowance for that, not for this library.

Support. Upstream is a small-maintainer project; this release is a first contribution, which is a mild signal of a thin contributor base. Escalation paths are GitHub issues. Internal ownership should sit with the QA/developer-experience function that owns the acceptance suite, not with an application team — otherwise nobody owns the pin and it silently ages.

Scaling. Irrelevant in the horizontal-scaling sense; this does not touch production traffic. It scales with suite size and parallelism: each Behat process needs its own Chrome instance, so CI cost grows roughly linearly with worker count. Teams running large Sylius suites should plan for browser-pool sizing and container memory, which dwarfs any consideration about this package's version.

Failure modes.

  • Dependency deadlock: another package demands chrome-mink-driver ^2.11, hard-blocking our upgrade path until this extension lifts its conflict. Highest-probability failure.
  • Silent version regression: Composer downgrades the driver without a loud error, changing browser behaviour in ways that surface as flaky scenarios rather than clear faults.
  • Flaky/hanging scenarios: headless Chrome timeouts, stray processes, and port contention — the classic Behat-Chrome symptom, unrelated to v1.5.1 but the most common operational complaint in practice.
  • Environment drift: Chrome auto-updates in CI images and outpaces the pinned driver, producing opaque session-creation errors.
  • Abandonment: a conflict-only patch with no follow-up is a common precursor to dormancy; if no fix lands within a reasonable window, plan a contingency (direct chrome-mink-driver usage or migration to a Playwright-backed approach).

Ramp-up. Low for anyone already writing Behat features — the extension is declarative configuration, not an API to learn. For teams coming from Dusk or Pest browser testing, the learning curve is Behat itself (Gherkin, step definitions, Mink abstractions), not this package, and that is a multi-week investment that should be justified by the suite's value rather than by this dependency. Document the behat.yml block and the CI browser setup in the repo README; that artefact, not the library, is what makes onboarding cheap.

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.
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table