Robocorp browser automation library
Project description
robocorp-browser
The robocorp-browser package is a light wrapper for the Playwright -project, with quality-of-life improvements, such as automatic lifecycle management for Playwright objects (meant to be used with robocorp-tasks).
Usage
👉 Check that you have added the dependency in your configuration; this library is not part of the robocorp bundle.
- conda.yaml for automation Task Packages
- package.yaml for automation Action Packages
- requirements.txt, pyproject.toml, setup.py|cfg etc. for the rest
from robocorp import browser, vault
from robocorp.tasks import task
@task
def automate_browser():
"""Start a browser to login in the surfed page."""
# The configuration is used to set the basic `robocorp.browser` settings.
# It must be called before calling APIs that create Playwright objects.
browser.configure(
# NOTE: `screenshot="only-on-failure"` is the default.
# If this function finishes with an exception, it will make a screenshot and
# embed it into the logs.
screenshot="only-on-failure",
# By default, `headless` is False, unless running in a Linux container
# without a DISPLAY/WAYLAND_DISPLAY environment variable, but it
# can also be manually overridden.
headless=True, # won't display the browser window
# Interactions may be run in slow motion (given in milliseconds).
slowmo=100,
)
# The `browser.goto()` call may be used as a shortcut to get the current page and
# surf some URL (it may create the browser if not created already).
browser.goto("https://example.com>")
_login() # call the login instructions
def _login():
# APIs in `robocorp.browser` return the same browser instance, which is
# automatically closed when the task finishes.
page = browser.page()
# `robocorp.vault` is recommended for managing secrets.
account = vault.get_secret("default-account")
# Use the Playwright Browser API as usual to interact with the web elements.
page.fill('//input[@ng-reflect-name="password"]', account["password"])
page.click("input:text('Submit')")
🚀 Get started with our template now!
Guides
API Reference
Explore our API for extensive documentation.
Changelog
A list of releases and corresponding changes can be found in the changelog.