dmore/chrome-mink-driver package provides a lightweight alternative to Selenium for Chrome automation via Mink, leveraging Chrome DevTools Protocol (CDP) instead of Selenium WebDriver. This is ideal for:
Http\Testing\BrowserKit) are DOM-focused, but this package enables real browser automation for:
BrowserKit can extend (via Mink\Driver\Goutte or custom drivers).laravel-dusk).Session can be injected).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Chrome version drift | High | Pin Chrome version in CI (e.g., Docker image). |
| CDP API instability | Medium | Monitor Chrome releases; test against LTS. |
| Mink learning curve | Medium | Document patterns (e.g., Session reuse). |
| Debugging complexity | High | Integrate with Laravel’s dd() or Xdebug. |
| Performance bottlenecks | Medium | Benchmark vs. Selenium; optimize test suites. |
Testing\TestCase extended to use Mink’s Session.chromium:latest) or pre-built images.--remote-debugging-port).Mink\Element\NodeElement for DOM interaction.dmore/chrome-mink-driver to composer.json.Session wrapper for Laravel’s TestCase:
use Mink\Mink;
use Mink\Driver\ChromeDriver;
class ChromeTestCase extends \Tests\TestCase {
protected function createApplication(): void {
parent::createApplication();
$this->mink = new Mink(new ChromeDriver());
}
}
docker-compose.yml or CI config.Session for real browser interactions.Http tests for API).chrome-launcher or Docker to manage versions.--remote-debugging-port for live inspection.Mink\Session::getDriver()->getStatus() for CDP errors.dd($session->getPage()->getContent()) for DOM inspection.--headless=new (Chrome 112+) or disable for debugging.$session->close()) to avoid zombie processes.SessionPool for concurrent tests (like Dusk).puppeteer-core).parallel-laravel).--disable-gpu and --single-process flags.| Failure Scenario | Impact | Recovery Strategy |
|---|---|---|
| Chrome crashes | Test flakiness | Retry with exponential backoff. |
| CDP API deprecation | Broken tests | Update to Chrome LTS; refactor tests. |
| Docker/Chrome version mismatch | Tests hang | Pin versions in docker-compose.yml. |
| Mink session leaks | OOM crashes | Use afterEach to close sessions. |
| Network issues (CI) | Timeouts | Use --no-sandbox + local Chrome binary. |
Session, Element, and CDP commands.How can I help you explore Laravel packages today?