Web testing library for Robot Framework
Project description
Introduction
SeleniumLibrary is a web testing library for Robot Framework that utilizes the Selenium tool internally. The project is hosted on GitHub and downloads can be found from PyPI.
SeleniumLibrary currently works with Selenium 4. It supports Python 3.8 through 3.12. In addition to the normal Python interpreter, it works also with PyPy.
SeleniumLibrary is based on the “old SeleniumLibrary” that was forked to Selenium2Library and then later renamed back to SeleniumLibrary. See the VERSIONS.rst for more information about different versions and the overall project history.
Keyword Documentation
See keyword documentation for available keywords and more information about the library in general.
Installation
The recommended installation method is using pip:
pip install --upgrade robotframework-seleniumlibrary
Running this command installs also the latest Selenium and Robot Framework versions, but you still need to install browser drivers separately. The --upgrade option can be omitted when installing the library for the first time.
It is possible to install directly from the GitHub repository. To install latest source from the master branch, use this command:
pip install git+https://github.com/robotframework/SeleniumLibrary.git
Please note that installation will take some time, because pip will clone the SeleniumLibrary project to a temporary directory and then perform the installation.
See Robot Framework installation instructions for detailed information about installing Python and Robot Framework itself. For more details about using pip see its own documentation.
Browser drivers
After installing the library, you still need to install browser and operating system specific browser drivers for all those browsers you want to use in tests. These are the exact same drivers you need to use with Selenium also when not using SeleniumLibrary. More information about drivers can be found from Selenium documentation.
The general approach to install a browser driver is downloading a right driver, such as chromedriver for Chrome, and placing it into a directory that is in PATH. Drivers for different browsers can be found via Selenium documentation or by using your favorite search engine with a search term like selenium chrome browser driver. New browser driver versions are released to support features in new browsers, fix bug, or otherwise, and you need to keep an eye on them to know when to update drivers you use.
Alternatively, you can use a tool called WebdriverManager which can find the latest version or when required, any version of appropriate webdrivers for you and then download and link/copy it into right location. Tool can run on all major operating systems and supports downloading of Chrome, Firefox, Opera & Edge webdrivers.
Here’s an example:
pip install webdrivermanager
webdrivermanager firefox chrome --linkpath /usr/local/bin
Usage
To use SeleniumLibrary in Robot Framework tests, the library needs to first be imported using the Library setting as any other library. The library accepts some import time arguments, which are documented in the keyword documentation along with all the keywords provided by the library.
When using Robot Framework, it is generally recommended to write as easy-to-understand tests as possible. The keywords provided by SeleniumLibrary is pretty low level, though, and often require implementation-specific arguments like element locators to be passed as arguments. It is thus typically a good idea to write tests using Robot Framework’s higher-level keywords that utilize SeleniumLibrary keywords internally. This is illustrated by the following example where SeleniumLibrary keywords like Input Text are primarily used by higher-level keywords like Input Username.
*** Settings ***
Documentation Simple example using SeleniumLibrary.
Library SeleniumLibrary
*** Variables ***
${LOGIN URL} http://localhost:7272
${BROWSER} Chrome
*** Test Cases ***
Valid Login
Open Browser To Login Page
Input Username demo
Input Password mode
Submit Credentials
Welcome Page Should Be Open
[Teardown] Close Browser
*** Keywords ***
Open Browser To Login Page
Open Browser ${LOGIN URL} ${BROWSER}
Title Should Be Login Page
Input Username
[Arguments] ${username}
Input Text username_field ${username}
Input Password
[Arguments] ${password}
Input Text password_field ${password}
Submit Credentials
Click Button login_button
Welcome Page Should Be Open
Title Should Be Welcome Page
The above example is a slightly modified version of an example in a demo project that illustrates using Robot Framework and SeleniumLibrary. See the demo for more examples that you can also execute on your own machine. For more information about Robot Framework test data syntax in general see the Robot Framework User Guide.
Extending SeleniumLibrary
Before creating your own library which extends the SeleniumLibrary, please consider would the extension be also useful also for general usage. If it could be useful also for general usage, please create a new issue describing the enhancement request and even better if the issue is backed up by a pull request.
If the enhancement is not generally useful, example solution is domain specific, then the SeleniumLibrary offers public APIs which can be used to build its own plugins and libraries. Plugin API allows us to add new keywords, modify existing keywords and modify the internal functionality of the library. Also new libraries can be built on top of the SeleniumLibrary. Please see extending documentation for more details about the available methods and for examples how the library can be extended.
Community
If the provided documentation is not enough, there are various community channels available:
#seleniumlibrary and #seleniumlibrary-dev channels in Robot Framework Slack community
Robot Framework forum has channel for SeleniumLibrary.
SeleniumLibrary issue tracker for bug reports and concrete enhancement requests
Other community channels including paid support
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
File details
Details for the file robotframework_seleniumlibrary-6.6.0.tar.gz
.
File metadata
- Download URL: robotframework_seleniumlibrary-6.6.0.tar.gz
- Upload date:
- Size: 171.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f0cf2e5cc8e7b05b9b1f1834ac73d75967e4407daf0834c06834461ccb2bc86 |
|
MD5 | f63dae4ada7ae51aed47a0be3982afe4 |
|
BLAKE2b-256 | 9eb93d85999031b5afd48e3348e55b93f3705d4f64fa1824d998de9d502559ff |
File details
Details for the file robotframework_seleniumlibrary-6.6.0-py2.py3-none-any.whl
.
File metadata
- Download URL: robotframework_seleniumlibrary-6.6.0-py2.py3-none-any.whl
- Upload date:
- Size: 104.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1e39f78ace54bb1b3d9d2ba633360878429840ff40d167871681c0a51efbe39 |
|
MD5 | f9f27ad5ffadf2d9c0c7edb672deffb3 |
|
BLAKE2b-256 | 5fbf64c6967d768b3836be38fc71e6a83445d88c3c83785212eb396959c558fc |