playwright_dart 3.4.0 copy "playwright_dart: ^3.4.0" to clipboard
playwright_dart: ^3.4.0 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.4.0 #

  • Feature: Added RegExp serialization/deserialization support in serialization.dart, enabling Pattern types to be properly converted to/from strings when communicating with the Playwright server.
  • Feature: Enhanced Locator with new utility methods: count(), all(), allInnerTexts(), allTextContents(), elementHandle(), elementHandles(), boundingBox(), scrollIntoViewIfNeeded(), selectText(), and screenshot().
  • Feature: Added fallback() method to Route for continuing route requests to the next handler in the chain.
  • Feature: Added web storage methods to Page: webStorageGetItem(), webStorageSetItem(), webStorageRemoveItem(), webStorageClear(), and webStorageItems().
  • Feature: Added virtual credential methods to BrowserContext: credentialsCreate(), credentialsDelete(), credentialsGet(), and credentialsInstall() for WebAuthn testing support.
  • Feature: Enhanced LocatorAssertions with 2 new assertion methods: toBeChecked() and toHaveCount().
  • Feature: Added Clock property to BrowserContext interface.
  • Feature: Added RouteHandler for improved network route management in BrowserContext.
  • Refactor: Improved ChannelOwner with enhanced EventEmitter integration and comprehensive documentation.
  • Refactor: Added timeout, strict, and other optional parameters to many Frame and Locator methods for better control over element interactions.
  • Refactor: Enhanced RouteFromHAR with improved logging and error handling for HAR file routing.
  • Refactor: Improved network routing in BrowserContext with RouteHandler for 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 EventEmitter into ChannelOwner for named event management. Added methods for event registration, deregistration, and emitting, with lifecycle cleanup in dispose.
  • Feature: Added a Playwright error hierarchy — PlaywrightError, TimeoutError, and TargetClosedError — with an error parsing utility for server-side error messages.
  • Feature: Implemented Waiter utility 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 Connection to use typed PlaywrightError subclasses; connection closure now throws TargetClosedError.
  • Refactor: Enhanced ElementHandle and JSHandle interfaces with generic type parameters for improved type safety in evaluateHandle and related methods.
  • Refactor: Updated download test cases to use temporary file paths with automatic artifact cleanup.
  • Chore: Added html package dependency for DOM manipulation support.

3.2.2 #

  • Documentation: Fix README

3.2.1 #

  • Fix: Updated protocol generator to automatically and recursively inject connection bindings 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.dart correctly targets the infrastructure directory.
  • Fix: Handled edge cases in header parsing for network Responses.
  • Test: Considerably expanded API test coverage across JSHandle, ElementHandle, and Response interfaces. Test suite is now 160+ strong.

3.2.0 #

  • Feature: Added a native Logger and a debug flag to PlaywrightDart.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 unstructured print calls.
  • 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 Locator query combinators including .and(), .or(), and .filter(), empowering complex semantic queries.
  • Feature: Enhanced Locator with utility selection methods .first(), .last(), and .nth().
  • Feature: Exposed timing properties (e.g., startTime, responseEnd) and failure message text mapping on intercepted network Request objects, aligning with the Playwright protocol spec.
  • Bug Fix: Fixed unclosed Connection leaks 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 fetch and isolated BrowserContext dispatches.

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> and String inputs. 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 strictly page.setViewportSize(PageSetViewportSizeViewportSize(width: 800, height: 600)).
    • All pointer event parameters like click, hover, and dblclick now require their specific enum types (e.g., FrameClickModifiersEnum instead of raw strings).
  • Tooling: Extended tool/cross_check_types.dart to 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 when toJson() is called. This fixes the runtime type 'X' is not a subtype of type 'Map<String, dynamic>' errors encountered when using page.setViewportSize or context.setStorageState with nested definitions.
  • Fix: Corrected argument mapping in wrapper classes (BrowserContext, Page, ElementHandle, Frame) to strictly parse standard Map<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, and AndroidDevice) to better align with the underlying protocol.
  • Tooling: Added tool/cross_check_types.dart to 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, and onPopup.
  • Feature: Implemented asynchronous wait methods on Page and Frame: waitForRequest, waitForResponse, waitForLoadState, waitForURL, and waitForNavigation.
  • Feature: Added new wrapper classes for advanced interactions: ConsoleMessage, FileChooser, and Video.
  • Bug Fix: Fixed protocol event routing issues where network and console events were missing because they are dispatched to the BrowserContext channel instead of the Page channel.

2.1.0 #

  • Feature: Officially exposed onWorker and onDownload events on the Page API, giving access to Worker and Artifact components.
  • Bug Fix: Fixed a critical crash in APIRequestContext.fetch() and Playwright.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 autoClose behavior to emulate Node.js driver lifecycle patterns. Playwright Dart now automatically closes the driver process when the last browser is closed. Set autoClose: false in PlaywrightDart.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.x line.

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
1
likes
0
points
683
downloads

Publisher

verified publishermrcrbrth.my.id

Weekly Downloads

A Dart port of Playwright — browser automation for Chromium, Firefox, and WebKit. Covers the core Playwright API targeting protocol v1.61.0.

Homepage
Repository (GitHub)
View/report issues

Topics

#testing #browser #automation #e2e #playwright

License

unknown (license)

Dependencies

archive, html, http, path, yaml

More

Packages that depend on playwright_dart