playwright_dart 3.7.2
playwright_dart: ^3.7.2 copied to clipboard
A Dart port of Playwright — browser automation for Chromium, Firefox, and WebKit. Covers the core Playwright API targeting protocol v1.61.0.
3.7.2 #
- Fix: Automatically install Linux OS-level browser dependencies (
install-deps) during the initial browser download step indriver_downloader.dart. This removes the need to manually runinstall-depson Linux machines.
3.7.1 #
- Fix: Replaced platform-specific shell extraction commands (
powershell Expand-Archiveon Windows,unzipon Linux/macOS) with the cross-platformextractFileToDiskAPI from thearchivepackage indriver_downloader.dart. This removes external process dependencies and makes driver extraction more reliable and portable.
3.7.0 #
- Feature: Added comprehensive HTML test reporter with asset copying support. Generates interactive HTML reports with embedded CSS/JavaScript and dynamic data loading.
- Feature: Added PlaywrightConfig with YAML and JSON configuration file support. Supports loading config from
playwright.config.yamlandplaywright.config.jsonfiles. - Feature: Added PlaywrightConfig using pre-existing
LaunchOptionsandContextOptionsclasses from the protocol. - Feature: Added HTML reporter asset copying for screenshots, videos, traces, and attachments to organized subdirectories.
- Refactor: Simplified PlaywrightConfig to use YAML and JSON parsing instead of complex Dart file parsing.
- Test: Added comprehensive test suite for PlaywrightConfig with YAML and JSON file loading.
- Test: Added comprehensive test suite for HTML reporter with meaningful test results.
3.6.0 #
- Feature: Added typesafe function parameters and shorthand command in
KeyboardandMousefunctionalities. - Documentation: Added comprehensive analysis of official Playwright v1.62.0-next protocol changes in
comprehensive_gaps_analysis.md. - Documentation: Identified new protocol features available in v1.62.0-next: AbortSignal support for wait operations and removeAllListeners behavior option.
- Documentation: Updated protocol version references to reflect official Playwright repo status (v1.61.0 with official at v1.62.0-next).
- Documentation: Added implementation guidance for new v1.62.0 features including file locations and code examples.
3.5.0 #
- Feature: Added
page.routeWebSocket()method for WebSocket connection interception and routing. Supports both glob patterns and RegExp for URL matching. - Documentation: Updated
connect()method documentation to clarify it's for Playwright servers launched withlaunchServer(), whileconnectOverCDP()should be used for remote browser connections via WebSocket (cloud-hosted browsers). - Documentation: Updated README with clearer guidance on when to use
connect()vsconnectOverCDP()for different connection scenarios. - Documentation: Verified and documented that all API-level gaps have been addressed in
comprehensive_gaps_analysis.md. All Priority 1, 2, and 3 tasks are now implemented. - Documentation: Updated
comprehensive_gaps_analysis.mdto reflect completion status of all API-level gaps.
3.4.0 #
- Feature: Added RegExp serialization/deserialization support in
serialization.dart, enablingPatterntypes to be properly converted to/from strings when communicating with the Playwright server. - Feature: Enhanced
Locatorwith new utility methods:count(),all(),allInnerTexts(),allTextContents(),elementHandle(),elementHandles(),boundingBox(),scrollIntoViewIfNeeded(),selectText(), andscreenshot(). - Feature: Added
fallback()method toRoutefor continuing route requests to the next handler in the chain. - Feature: Added web storage methods to
Page:webStorageGetItem(),webStorageSetItem(),webStorageRemoveItem(),webStorageClear(), andwebStorageItems(). - Feature: Added virtual credential methods to
BrowserContext:credentialsCreate(),credentialsDelete(),credentialsGet(), andcredentialsInstall()for WebAuthn testing support. - Feature: Enhanced
LocatorAssertionswith 2 new assertion methods:toBeChecked()andtoHaveCount(). - Feature: Added
Clockproperty toBrowserContextinterface. - Feature: Added
RouteHandlerfor improved network route management inBrowserContext. - Refactor: Improved
ChannelOwnerwith enhanced EventEmitter integration and comprehensive documentation. - Refactor: Added
timeout,strict, and other optional parameters to manyFrameandLocatormethods for better control over element interactions. - Refactor: Enhanced
RouteFromHARwith improved logging and error handling for HAR file routing. - Refactor: Improved network routing in
BrowserContextwithRouteHandlerfor better pattern matching and handler management. - Fix: Fixed network test cases to use proper CORS headers and navigate to real pages before making fetch requests.
3.3.0 #
- Feature: Introduced
EventEmitterintoChannelOwnerfor named event management. Added methods for event registration, deregistration, and emitting, with lifecycle cleanup indispose. - Feature: Added a Playwright error hierarchy —
PlaywrightError,TimeoutError, andTargetClosedError— with an error parsing utility for server-side error messages. - Feature: Implemented
Waiterutility class for managing event waiting with configurable timeouts and rejection conditions. - Feature: Added locator utilities for test ID attribute handling, including encoding and escaping helpers used by
getByTestId. - Refactor: Improved error handling in
Connectionto use typedPlaywrightErrorsubclasses; connection closure now throwsTargetClosedError. - Refactor: Enhanced
ElementHandleandJSHandleinterfaces with generic type parameters for improved type safety inevaluateHandleand related methods. - Refactor: Updated download test cases to use temporary file paths with automatic artifact cleanup.
- Chore: Added
htmlpackage dependency for DOM manipulation support.
3.2.2 #
- Documentation: Fix README
3.2.1 #
- Fix: Updated protocol generator to automatically and recursively inject
connectionbindings into nested object.fromJson()factories. This resolves initialization crashes caused by nested objects failing to obtain a valid channel connection. - Fix: Corrected import paths in generated output so that
channel_owner.dartcorrectly targets theinfrastructuredirectory. - Fix: Handled edge cases in header parsing for network Responses.
- Test: Considerably expanded API test coverage across
JSHandle,ElementHandle, andResponseinterfaces. Test suite is now 160+ strong.
3.2.0 #
- Feature: Added a native
Loggerand adebugflag toPlaywrightDart.create(debug: true). When enabled, it natively intercepts and logs all raw protocol JSON messages sent to and received from the Playwright driver directly to the terminal stdout. - Feature: Introduced
Logger.info()to clearly print CLI operations like background driver extraction without relying on unstructuredprintcalls. - Refactor: Completely reorganized the internal repository architecture. Flattened the massive
lib/src/directory into cleanly isolated logic domains (core/,network/,interaction/,infrastructure/,utils/,platform/,debugging/). - Refactor: Updated all internal tools and scripts inside
tool/to target the newly mapped architecture while achieving zero static analysis warnings and a perfectly green test suite.
3.1.0 #
- Feature: Completed full isolation of internal implementation classes (e.g.
ElementHandleImpl,PageImpl), exclusively exposing pure interface types across the entire public API boundary. This vastly improves the developer experience by preventing unintentional access to underlying channel mechanisms. - Feature: Added advanced
Locatorquery combinators including.and(),.or(), and.filter(), empowering complex semantic queries. - Feature: Enhanced
Locatorwith utility selection methods.first(),.last(), and.nth(). - Feature: Exposed
timingproperties (e.g.,startTime,responseEnd) andfailuremessage text mapping on intercepted networkRequestobjects, aligning with the Playwright protocol spec. - Bug Fix: Fixed unclosed
Connectionleaks in skipped WebSocket and CDP connection environments which previously orphaned Node.js background driver processes. - Bug Fix: Addressed null timing object assignments in advanced network events during
fetchand isolatedBrowserContextdispatches.
3.0.0 #
- Breaking: Migrated the public API to use strongly-typed data structures and enums for method parameters rather than untyped
Map<String, dynamic>andStringinputs. This aligns parameter types with the underlying Playwright channel protocol and enables IDE type-checking for users.- E.g.,
page.setViewportSize({'width': 800, 'height': 600})is now strictlypage.setViewportSize(PageSetViewportSizeViewportSize(width: 800, height: 600)). - All pointer event parameters like
click,hover, anddblclicknow require their specific enum types (e.g.,FrameClickModifiersEnuminstead of raw strings).
- E.g.,
- Tooling: Extended
tool/cross_check_types.dartto validate strongly-typed inputs against generated protocol schemas, reducing the risk of parameter type mismatches.
2.3.1 #
- Fix: Generated structs (
BrowserNewContextStorageState,BrowserNewContextProxy, etc.) now recursively serialize deep object properties and arrays whentoJson()is called. This fixes the runtimetype 'X' is not a subtype of type 'Map<String, dynamic>'errors encountered when usingpage.setViewportSizeorcontext.setStorageStatewith nested definitions. - Fix: Corrected argument mapping in wrapper classes (
BrowserContext,Page,ElementHandle,Frame) to strictly parse standardMap<String, dynamic>maps to their corresponding generated structs automatically.
2.3.0 #
- Feature: Expanded parameter coverage for Playwright Node.js
v1.60.0. Added over 200 missing parameters across core classes (Page,Frame,ElementHandle,BrowserContext,APIRequestContext,Electron,Worker,DebugController,Tracing, andAndroidDevice) to better align with the underlying protocol. - Tooling: Added
tool/cross_check_types.dartto automatically verify API parameter and method parity between Dart wrapper classes and generated protocol channels. - Bug Fix: Addressed various missing enum mappings and type mappings in method signatures.
2.2.0 #
- Feature: Implemented missing page events:
onConsole,onRequest,onResponse,onRequestFinished,onRequestFailed,onFileChooser,onWebSocket,onCrash,onClose,onPageError, andonPopup. - Feature: Implemented asynchronous wait methods on
PageandFrame:waitForRequest,waitForResponse,waitForLoadState,waitForURL, andwaitForNavigation. - Feature: Added new wrapper classes for advanced interactions:
ConsoleMessage,FileChooser, andVideo. - Bug Fix: Fixed protocol event routing issues where network and console events were missing because they are dispatched to the
BrowserContextchannel instead of thePagechannel.
2.1.0 #
- Feature: Officially exposed
onWorkerandonDownloadevents on thePageAPI, giving access toWorkerandArtifactcomponents. - Bug Fix: Fixed a critical crash in
APIRequestContext.fetch()andPlaywright.newRequest()preventing raw HTTP requests from working. - Documentation: Emphasized that Node.js is automatically bundled by the driver downloader, requiring zero manual installation by users for a seamless out-of-the-box experience.
2.0.0 #
- Feature (Breaking): Introduced
autoClosebehavior to emulate Node.js driver lifecycle patterns. Playwright Dart now automatically closes the driver process when the last browser is closed. SetautoClose: falseinPlaywrightDart.create()to disable this behavior and manage the lifecycle manually. - Feature: Added WebSocket CDP connection support (
connectOverCDP) for integrating with remote providers like Browserless. - Documentation: Substantial inline API documentation added across all core modules to improve auto-completion and Developer Experience.
1.0.1 #
Update supported platform
1.0.0 #
First stable major release.
- Promoted package version to
1.0.0. - Includes all features and fixes delivered in the
0.1.xline.
0.1.2 #
Update pubspec information
0.1.1 #
Dependencies bump
0.1.0 #
Initial release — a Dart port of Playwright targeting Node.js v1.60.0.
Features #
-
Browser Automation: Launch and control Chromium, Firefox, and WebKit browsers
-
Page Interactions: Navigate, evaluate JavaScript, take screenshots, generate PDFs
-
Locator API: 30+ interaction methods with 7 sub-locator strategies (
getByRole,getByText,getByLabel,getByPlaceholder,getByAltText,getByTitle,getByTestId) -
Network Interception: Intercept, mock, and modify network requests with
route.abort(),route.fulfill(),route.continue_() -
Input Simulation: Full keyboard and mouse input support (
keyboard.type(),mouse.click(), etc.) -
Tracing: Record and export traces for debugging with the Playwright Trace Viewer
-
CDP Session: Direct Chrome DevTools Protocol access for advanced manipulation
-
35 wrapper classes covering a broad range of the Playwright protocol (308 channel methods)
-
Auto-download: Automatic Playwright driver and browser binary management
Platform Support #
- Windows, macOS, Linux
- Dart SDK
^3.12.0