# php-webdriver/php-webdriver

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/php-webdriver-php-webdriver).**

5,203 stars · 845 forks · PHP · MIT

## Links

- GitHub: https://github.com/php-webdriver/php-webdriver
- awesome-repositories: https://awesome-repositories.com/repository/php-webdriver-php-webdriver.md

## Topics

`php-webdriver` `selenium` `selenium-php` `selenium-webdriver` `w3c-webdriver` `webdriver`

## Description

php-webdriver is a WebDriver PHP client and browser automation framework that implements the W3C WebDriver standard. It serves as a programmatic interface for controlling web browsers, executing JavaScript, and managing browser sessions in both headed and headless environments.

The library functions as a Selenium protocol implementation, allowing PHP applications to communicate with browser drivers such as ChromeDriver or GeckoDriver. It provides the ability to automate user actions, navigate pages, and validate DOM elements for web UI testing.

Its capabilities cover broad areas of browser interaction, including page element location, form management, and window control. The tool also supports advanced browser configurations, such as managing cookies, routing traffic through proxies, accessing the shadow DOM, and executing low-level DevTools commands.

The framework includes utilities for synchronizing with page states and capturing screenshots of both full pages and individual elements.

## Tags

### Testing & Quality Assurance

- [WebDriver Implementations](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/webdriver-implementations.md) — Provides a full implementation of the W3C WebDriver protocol for controlling browsers via PHP.
- [Browser Automation Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/browser-and-ui-testing/browser-automation-frameworks.md) — Provides a programmatic framework for controlling web browsers to automate user interactions and verify UI states.
- [Browser Automation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/browser-automation.md) — Simulates user interactions such as clicking and typing to verify frontend behavior. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/CHANGELOG.md))
- [Element Interaction](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/element-interaction.md) — Simulates user inputs on web elements, including clicking, typing, and triggering mouse events. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [WebDriver Protocol Implementations](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/webdriver-implementations/selenium-webdriver-automations/webdriver-protocol-implementations.md) — Implements the W3C WebDriver standard to enable communication between PHP applications and browser drivers like ChromeDriver.
- [WebDriver Client Libraries](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/webdriver-implementations/webdriver-client-libraries.md) — Provides a PHP client library for automating web browser interactions via the WebDriver protocol.
- [Element State Verifications](https://awesome-repositories.com/f/testing-quality-assurance/element-state-verifications.md) — Verifies if elements are displayed or if selectable options like checkboxes are currently selected. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [Page Condition Synchronization](https://awesome-repositories.com/f/testing-quality-assurance/page-condition-synchronization.md) — Pauses script execution until specific DOM conditions are met, ensuring automation stability. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/example.php))
- [Headless Browser Controllers](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/browser-and-ui-testing/browser-automation-frameworks/headless-browser-controllers.md) — Acts as a controller for managing the lifecycle and execution of browser sessions in both headless and headed modes.
- [UI Element Interactions](https://awesome-repositories.com/f/testing-quality-assurance/ui-element-interactions.md) — Performs direct actions on interface objects such as checking boxes and selecting radio buttons. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/CHANGELOG.md))
- [Automatic Frame Switching](https://awesome-repositories.com/f/testing-quality-assurance/automatic-frame-switching.md) — Moves the driver focus between the main document and various iframes to interact with nested content. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [Automated End-to-End Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/end-to-end-testing-suites/automated-end-to-end-testing.md) — Enables automated validation of complex user flows and interface interactions through programmatic browser control.

### Development Tools & Productivity

- [Browser Instance Management](https://awesome-repositories.com/f/development-tools-productivity/browser-instance-management.md) — Programmatically starts, configures, and terminates web browser sessions locally or remotely. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Chrome))
- [Automation Wait Conditions](https://awesome-repositories.com/f/development-tools-productivity/automation-wait-conditions.md) — Provides mechanisms to block execution until specific DOM elements, text, or JavaScript conditions are met during browser automation. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/CHANGELOG.md))
- [Browser Capability Configuration](https://awesome-repositories.com/f/development-tools-productivity/browser-capability-configuration.md) — Configures browser behavior, preferences, and custom profiles for automated sessions. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Firefox))
- [Browser Driver Management](https://awesome-repositories.com/f/development-tools-productivity/browser-driver-management.md) — Manages the startup and shutdown of local browser driver executables automatically. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/CHANGELOG.md))
- [Process Lifecycle Management](https://awesome-repositories.com/f/development-tools-productivity/browser-driver-management/process-lifecycle-management.md) — Automatically manages the lifecycle of local browser driver binaries as child processes.
- [Driver Integration](https://awesome-repositories.com/f/development-tools-productivity/firefox-configuration/driver-integration.md) — Provides specific support for launching and managing Firefox browser instances. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Firefox))
- [Window Management](https://awesome-repositories.com/f/development-tools-productivity/window-managers/interactive-window-manipulation/window-resizing-operations/browser-window-resizing/window-management.md) — Adjusts window size, toggles fullscreen mode, and switches between different browser window handles. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/CHANGELOG.md))

### Networking & Communication

- [JSON-RPC Implementations](https://awesome-repositories.com/f/networking-communication/json-rpc-implementations.md) — Implements the JSON-RPC protocol over HTTP to communicate with the WebDriver wire protocol server.
- [Session State Management](https://awesome-repositories.com/f/networking-communication/session-state-management.md) — Maintains unique session identifiers to track and control specific browser instances across requests.

### User Interface & Experience

- [Element Locators](https://awesome-repositories.com/f/user-interface-experience/element-locators.md) — Identifies and selects specific page elements using various selectors such as CSS and ID. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))

### Web Development

- [Browser Automation](https://awesome-repositories.com/f/web-development/browser-automation.md) — Provides programmatic control of web browsers for tasks like end-to-end testing and data extraction. ([source](https://github.com/php-webdriver/php-webdriver#readme))
- [JavaScript Execution Bridges](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-infrastructure/javascript-execution-bridges.md) — Enables the execution of arbitrary JavaScript snippets within the browser context and retrieves the results. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [Browser Navigations](https://awesome-repositories.com/f/web-development/browser-navigations.md) — Directs the browser to open specific webpages via the provided URL address. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [Data Extractions](https://awesome-repositories.com/f/web-development/dom-element-selectors/data-extractions.md) — Retrieves text content, HTML attributes, and DOM properties from specific elements using selectors. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [Browser Navigation](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-interaction-primitives/browser-navigation.md) — Controls browser navigation to specific URLs and manages page load events. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/example.php))
- [Browser Session Managers](https://awesome-repositories.com/f/web-development/web-automation-scraping/web-scraping-automation/browser-automation/browser-session-managers.md) — Starts and manages remote browser sessions by connecting to a WebDriver server with specific capabilities. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/README.md))
- [Browser Cookie Management](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-apis/browser-storage/browser-cookie-management.md) — Creates, deletes, and retrieves browser cookies to manage session state and user preferences. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/example.php))
- [Form Management](https://awesome-repositories.com/f/web-development/form-management.md) — Handles complex form interactions, including dropdown selections and radio button groups. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [Form Submission Clients](https://awesome-repositories.com/f/web-development/form-submission-clients.md) — Triggers form submissions by calling the submit method or clicking the submit button. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [Shadow DOM Traversal](https://awesome-repositories.com/f/web-development/shadow-dom-traversal.md) — Allows navigation into and interaction with elements inside encapsulated shadow roots. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
- [Chrome DevTools Protocols](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-control-protocols/chrome-devtools-protocols.md) — Provides the ability to send low-level commands via the Chrome DevTools Protocol for advanced browser manipulation. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Chrome))
- [Browser Configuration Profiles](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-environment-configurations/browser-configuration-profiles.md) — Defines and manages distinct browser environments and settings via configuration profiles before launching sessions. ([source](https://github.com/php-webdriver/php-webdriver/blob/main/CHANGELOG.md))

### Education & Learning Resources

- [Capability Negotiation Protocols](https://awesome-repositories.com/f/education-learning-resources/educational-resources/systems-applied-computing/infrastructure-architecture/computer-networks/networking-protocols/negotiation-extension-frameworks/capability-negotiation-protocols.md) — Handles the negotiation of browser capabilities and versions during the session handshake.

### Graphics & Multimedia

- [Browser Screenshot Capture](https://awesome-repositories.com/f/graphics-multimedia/web-page-screenshot-tools/browser-screenshot-capture.md) — Captures screenshots of the current browser view or specific page elements. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))

### Software Engineering & Architecture

- [Client-Server Architectures](https://awesome-repositories.com/f/software-engineering-architecture/client-server-architectures.md) — Uses a client-server architecture to translate high-level PHP commands into driver-level API calls.
- [Command Patterns](https://awesome-repositories.com/f/software-engineering-architecture/command-patterns.md) — Encapsulates browser actions as command objects for serialization and transmission to remote drivers.
- [DOM Presence Polling](https://awesome-repositories.com/f/software-engineering-architecture/element-presence-verifications/dom-presence-polling.md) — Implements polling loops to verify the presence of DOM elements before continuing execution.

### System Administration & Monitoring

- [Alert Handling](https://awesome-repositories.com/f/system-administration-monitoring/alert-handling.md) — Interacts with browser-native JavaScript alerts, confirmations, and prompts by accepting or dismissing them. ([source](https://github.com/php-webdriver/php-webdriver/wiki/Example-command-reference))
