butterbee

Package Version Hex Docs

Control the browser with gleam code using butterbee!

Butterbee is a webdriver bidi client written in Gleam. Webdriver bidi is a protocol that allows for controlling the browser via code. It’s primary usage is to write tests that automate user behavior on a web page

Getting started

gleam add --dev butterbee

Example

Getting started with butterbee is easy! make sure Firefox is on your $PATH, add the code below to your test and run gleam test.

import butterbee
import butterbee/by
import butterbee/config/browser
import butterbee/input
import butterbee/nodes
import butterbee/query
import butterbee/webdriver
import gleeunit

pub fn main() {
  butterbee.init()
  gleeunit.main()
}

pub fn minimal_example_test_() {
  let assert Ok(output) =
    driver.new(browser.Firefox)
    |> driver.goto("https://gleam.run/")
    |> get.node(by.xpath(
      "//div[@class='hero']//a[@href='https://tour.gleam.run/']",
    ))
    |> node.do(action.click(key.LeftClick))
    |> get.node(by.css("pre.log"))
    |> node.get(node.text())
    |> driver.close()
  assert output == "Hello, Joe!\n"
}

NOTE: Because of test runner limitations, butterbee does not close the browser automatically when the test panics. If tests start randomly failing, check for any open browser processes in your system manager.

Guides

Search Document