mechanical-orchard / playwright-elixir

An Elixir library for Playwright web automation
MIT License
119 stars 23 forks source link

Playwright for Elixir

NOTE: This package is currently in "preview" (or "alpha"). The features are not yet at parity with other Playwright implementations. Once playwright-elixir is at or near parity with playwright, the version number will be updated to mirror the supported version of playwright.

Overview

Playwright is an Elixir library to automate Chromium, Firefox and WebKit with a single API. Playwright is built to enable cross-browser web automation that is ever-green, capable, reliable and fast. See how Playwright is better.

Installation

The package can be installed by adding playwright to your list of dependencies in mix.exs:

def deps do
  [
    {:playwright, "~> 1.44.0-alpha.4"}
  ]
end

Usage

Example

defmodule Test.ExampleTest do
  use ExUnit.Case, async: true
  use PlaywrightTest.Case

  describe "Navigating to playwright.dev" do
    test "works", %{browser: browser} do
      page = Playwright.Browser.new_page(browser)

      Playwright.Page.goto(page, "https://playwright.dev")
      text = Playwright.Page.text_content(page, ".navbar__title")

      assert text == "Playwright"
      Playwright.Page.close(page)
    end
  end
end

Releases

This project aims to track the release versioning found in Playwright proper.

Contributing

Getting started

  1. Clone the repo
  2. Run bin/dev/doctor and for each problem, either use the suggested remedies or fix it some other way
  3. Run bin/dev/test to run the test suite make sure everything is working

Day-to-day

Releasing

  1. Update the version in mix.exs a. Search for and update the version anywhere it appears in the repo, such as this README
  2. git tag -a v${version_number} such that the tag look like v1.44.0-alpha.3 or v1.44.0
  3. git push --tags
  4. mix hex.publish