Robot Framework Browser library powered by Playwright. Aiming for speed, reliability and visibility.
Project description
robotframework-browser
Robot Framework Browser library powered by Playwright. Moving browser automation to year 2020 (or 2021)!
Aiming for :rocket: speed, :white_check_mark: reliability and :microscope: visibility.
Installation instructions
Only Python 3.7 or newer is supported.
- Install node.js e.g. from https://nodejs.org/en/download/
- Install robotframework-browser from the commandline:
pip install robotframework-browser
- Install the node dependencies: run
rfbrowser init
in your shell
Or use the docker images. Documented at DOCKER.md.
Examples
Testing with Robot Framework
*** Settings ***
Library Browser
*** Test Cases ***
Example Test
New Page https://playwright.dev
Get Text h1 == 🎭 Playwright
and testing with Python.
import Browser
browser = Browser.Browser()
browser.new_page("https://playwright.dev")
assert browser.get_text("h1") == '🎭 Playwright'
browser.close_browser()
and extending with JavaScript
async function myGoToKeyword(page, args) {
return await page.goto(args[0]);
}
exports.__esModule = true;
exports.myGoToKeyword = myGoToKeyword;
*** Settings ***
Library Browser jsextension=mymodule.js
*** Test Cases ***
Example Test
myGoToKeyword https://www.robotframework.org
Ergonomic selector syntax, supports chaining of text
, css
and xpath
selectors
# Select element containing text "Login" with text selector strategy
# and select it's parent `input` element with xpath
Click "Login" >> xpath=../input
# Select element with CSS strategy and select button in it with text strategy
Click div.dialog >> "Ok"
Evaluate in browser page
New Page ${LOGIN_URL}
${ref}= Get Element h1
Get Property ${ref} innerText == Login Page
Execute JavaScript (elem) => elem.innerText = "abc" ${ref}
Get Property ${ref} innerText == abc
Asynchronously waiting for HTTP requests and responses
# The button with id `delayed_request` fires a delayed request. We use a promise to capture it.
${promise}= Promise To Wait For Response matcher= timeout=3s
Click \#delayed_request
${body}= Wait For ${promise}
Device Descriptors
${device}= Get Device iPhone X
New Context &{device}
New Page
Get Viewport Size # returns { "width": 375, "height": 812 }
Sending HTTP requests and parsing their responses
&{response}= HTTP /api/post POST {"name": "John"}
Should Be Equal ${response.status} ${200}
Development
See CONTRIBUTING.md for development instructions.
Core team
In order of appearance.
- Mikko Korpela
- Tatu Aalto
- Janne Härkönen (Alumnus)
- Kerkko Pelttari
- René Rohner
Contributors
This project is community driven and becomes a reality only through the work of all the people who contribute. Supported by Robocorp through Robot Framework Foundation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for robotframework-browser-2.3.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7aba74bb60673a43e0b5ad6f819e9f2cc7d5f001d29e9f184741b424a7625d33 |
|
MD5 | a0640cf704630169ac0f25e2a775448f |
|
BLAKE2b-256 | 256e30d3f401f2fce645021db8661830876c056d3f5acba046529ff7a59fdd30 |
Close
Hashes for robotframework_browser-2.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e448687f0892a23e901294ab7a2827a5514b9418177d2027420dc7ed328f9658 |
|
MD5 | e07ec144c5aff93a14e9dd7eab03d8f5 |
|
BLAKE2b-256 | cced6014a8d0d7038086efc7629c92d808e7e53f8b461cdfc9af38ca55210ee5 |