Weave Code
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
Php Webdriver

Php Webdriver Laravel Package

instaclick/php-webdriver

PHP client for Selenium WebDriver, enabling browser automation and end-to-end testing from PHP. Control Chrome/Firefox/RemoteWebDriver, manage sessions, elements, waits, and actions, with support for Selenium Grid and popular testing frameworks.

View on GitHub
Deep Wiki
Context7

W3C and Selenium 2 webdriver "thin client" for php 5.3+ and namespaces.

Frequently asked questions about Php Webdriver
Can I use instaclick/php-webdriver to replace Laravel Dusk in my project?
Yes, this package can replace Dusk for cross-browser testing, but Dusk is Laravel-specific and tied to Selenium 2, while this package supports W3C WebDriver (Selenium 3/4). If you need Laravel-native features like Blade testing, Dusk may still be preferable. For broader browser compatibility, this package is a solid alternative.
What Laravel versions does instaclick/php-webdriver support?
This package works with Laravel 5.3+ due to its PHP 5.3+ requirement, but PHP 8.x may need polyfills for deprecated features. Laravel 10/11 should function, but test thoroughly, especially if using newer PHP features like named arguments or attributes.
How do I set up Selenium Server for local Laravel testing?
Use Docker for consistency: run `docker run -d -p 4444:4444 selenium/standalone-chrome`. Configure the WebDriver client to point to `http://localhost:4444/wd/hub`. For CI/CD, use cloud providers like BrowserStack or Sauce Labs to avoid self-hosting overhead.
Is this package compatible with Laravel’s Pest or PHPUnit for testing?
Yes, integrate it with Pest or PHPUnit by creating test classes that instantiate the WebDriver client. Use Laravel’s service container to manage sessions. For async testing, offload tasks to Laravel queues with `php artisan queue:work`. Example: `new RemoteWebDriver('http://localhost:4444/wd/hub', DesiredCapabilities::chrome())`.
Why is this package abandoned, and should I still use it?
The package is no longer maintained (last release 2023), but it remains functional for W3C WebDriver. For active development, consider `facebook/webdriver`, which is more modern and maintained. If you’re locked into this package, monitor for forks or plan to migrate to an alternative if issues arise.
How do I handle flaky tests in Laravel with this WebDriver client?
Implement retry logic using a package like `php-retry` or Laravel’s built-in retry mechanisms. Log errors to Laravel’s log system by wrapping WebDriver calls in try-catch blocks. For example: `try { $driver->findElement(WebDriverBy::id('element'))->click(); } catch (Exception $e) { Log::error($e->getMessage()); }`.
Can I use this package for headless browser automation in Laravel?
Yes, configure Chrome or Firefox in headless mode via capabilities: `$capabilities = DesiredCapabilities::chrome(); $capabilities->setCapability('goog:chromeOptions', ['args' => ['--headless']]);`. This is ideal for CI/CD pipelines or background tasks where UI interaction isn’t needed.
What are the performance implications of using WebDriver in Laravel?
WebDriver adds overhead due to browser spin-up time. Mitigate this by reusing sessions (cache the WebDriver instance) and running tests in parallel with Pest’s `--parallel` or PHPUnit’s `--parallel`. For long-running tasks, offload to Laravel queues to avoid timeouts.
Does this package support parallel testing in Laravel?
Yes, but you’ll need to manage Selenium Grid or a cloud provider (e.g., BrowserStack) for parallel sessions. Configure multiple hubs or use a tool like `laravel-parallel-testing` to distribute tests. Note that this package itself doesn’t handle parallelization—it’s a client for Selenium’s capabilities.
How do I debug WebDriver errors in a Laravel application?
Enable verbose logging by setting the WebDriver client’s logger to Laravel’s log system. For example: `$driver->setLogger(new WebDriverLogger());` where `WebDriverLogger` extends `MonologHandler`. Check Laravel’s `storage/logs` for detailed error messages, including stale element or timeout issues.
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.
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views