SeleniumLibrary is a web testing library for Robot Framework that utilizes the Selenium tool internally. SeleniumLibrary 3.0.0b3 is a new release with Python 3 support and rewritten architecture. The new architecture should be mostly invisible from the Robot Framework test date point of view. But there are many changes in internal methods and classes, which may affect users who have written libraries extending SeleniumLibrary private methods and classes. There are also many other smaller bigger enhancements.
All issues targeted for SeleniumLibrary v3.0.0 can be found from the issue tracker.
If you have pip installed, just run
pip install --pre --upgrade robotframework-seleniumlibrary
to install the latest available release or use
pip install robotframework-seleniumlibrary==3.0.0b3
to install exactly this version. Alternatively you can download the source distribution from PyPI and install it manually.
SeleniumLibrary 3.0.0b3 was released on Thursday September 28, 2017.
- Most important enhancements
- Python 3 support (#479, alpha 1)
- Change library name from Selenium2Library to SeleniumLibrary (#777, alpha 1)
- Create better architecture for Selenium2Library (#771, alpha 1)
- Enhance project documentation in README (#873, beta 1)
- Document that Jython and PyPy are supported but IronPython is not (#879, beta 3)
- New
strategy:valuesyntax to specify locator strategy in addition to currentstrategy=value(#908, beta 3) - Tables should be located using same logic as other elements (#923, beta 3)
- Enhance general library documentation in keyword docs (#924, beta 3)
- Backwards incompatible changes
- Create better architecture for Selenium2Library (#771, alpha 1)
- Return value of
Register keyword to run on failurecannot always be used to restore original state (#176, beta 3) - Capture Page Screenshot should not overwrite if file already exist (#502, alpha 1)
- Update required Robot Framework version to 2.8 (#703, alpha 1)
- Increase the required selenium version to latest selenium 2 version (#704, alpha 1)
- Use booleans arguments like in Robot Framework (#719, alpha 1)
- Remove SeleniumLibrary profile for Firefox (#883, beta 3)
- Other backwards incompatible changes
- Deprecated features
- Acknowledgements
- Full list of fixes and enhancements
Python 3 support (#479, alpha 1)
The SeleniunLibrary was was enhanced to support Python 3.3 or newer. More precisely, the currently supported Python versions are 2.7, 3.3 and newer. Installation on Python 3 works exactly as it does for Python 2, and the recommended installation method is with pip.
To ease support for Python 3.3, the support for Python 2.6 was dropped.
Change library name from Selenium2Library to SeleniumLibrary (#777, alpha 1)
Because Selenium moved from version 2 to version 3, we felt that the old name, Selenium2Library, did not anymore describe what the library supports and helps user to achieve. Therefore we renamed the original SeleniumLibrary to OldSeleniumLibrary. Then the Selenium2Libary was renamed to SeleniumLibrary and new Selenium2Library was created. The new Selenium2Library is just a wrapper for the SeleniumLibrary and is meant only to ease migration from Selenium2Library to SeleniumLibrary.
Create better architecture for Selenium2Library (#771, alpha 1)
The old architecture did contained many practices which are against good coding practices and made the development of the library slower or more difficult. The old architecture made also hard to define clear API interface for the user who are building their own libraries on top of the SeleniumLibrary.
The new architecture relies on the Robot Framework Dynamic library API, PythonLibCore and using context object to share common methods between different classes and methods. Because of the new architecture, many
private methods or classes have been changed or removed totally.
Enhance project documentation in README (#873, beta 1)
The project documentation, expect keyword documentation, has been rewritten to better serve user of the SeleniumLibrary.
Document that Jython and PyPy are supported but IronPython is not (#879, beta 3)
The current release was automatically tested with Python 2.7, Python 3.3 and Python 3.6. The Jython, PyPy and IronPython compatibility was tested manually. We found that SeleniumLibrary supports Jython and PyPy, but IronPython is not supported.
Next steps are add the Jython and PyPy testing in CI.
New strategy:value syntax to specify locator strategy in addition to current strategy=value (#908, beta 3)
New strategy:value syntax to specify locator strategy in addition to
current strategy=value. The current locator strategy causes problems with
Robot Framework keyword argument syntax, because then the equal sing must
be escaped, example xpath\=//div | &{kw_args} |. The locator syntax is
aimed to ease the transition when the keyword arguments are in future taken
in use.
Tables should be located using same logic as other elements (#923, beta 3)
The previous releases, the table keywords locator strategy did differ greatly from the rest of keywords which did interact with elements in the browsers. This is now changed and tables can be located with same locator strategies which can be used for the rest of the library.
Enhance general library documentation in keyword docs (#924, beta 3)
Library documentation, excluding individual keyword documentation, has been rewritten.
Create better architecture for Selenium2Library (#771, alpha 1)
The new architecture should not change how the keywords are used in Robot Framework test data. But causes changes how the SeleniumLibrary can be used to build new libraries. We have deprecated many private methods and have created many new public methods or attributes which should make the extending more easier in the future.
Return value of Register keyword to run on failure cannot always be used to restore original state (#176, beta 3)
In this release the keyword returned by the Register keyword to run on
failure keyword can be always used to restore the original state. User
do not anymore need to have special logic in Robot Framework test data
to restore the Run On Failure keyword.
Capture Page Screenshot should not overwrite if file already exist (#502, alpha 1)
The Capture Page Screenshot keyword now verifies from the file system
that screenshot file does not exist in the file system. If the file
exist, it will create new index in the file name until it find a file
name which does not exist.
If the filename does not contain index, the filename is always overwritten.
Update required Robot Framework version to 2.8 (#703, alpha 1)
The minimum requires Robot Framework version is now updated to 2.8.7
Increase the required selenium version to latest selenium 2 version (#704, alpha 1)
The minimum required Selenium version is now updated to 2.53.6, which is the latest Selenium 2 release.
Use booleans arguments like in Robot Framework (#719, alpha 1)
The boolean arguments are handled in similar way as in Robot Framework. More details in library Boolean arguments documentation.
Remove SeleniumLibrary profile for Firefox (#883, beta 3)
The Firefox profile was removed from the SeleniumLibrary and Selenium default profile is used instead. Although this should not cause any problems, there is low risk for some backwards incompatible change.
- New
strategy:valuesyntax to specify locator strategy in addition to currentstrategy=value(#908, beta 3) - Drop Python 2.6 support (#620, alpha 1)
- Remove unused expiry argument from
Add Cookiekeyword (#847, alpha 1) - Modify Get Webelements not to raise exception when no elements are found (#805, beta 3)
- Drop Python 2.6 support (#620, alpha 1)
- Change library name from Selenium2Library to SeleniumLibrary (#777, alpha 1)
- Externally useful attributes should be declared public and not start with an underscore (#882, beta 3)
Many thanks to "thaffenden" to add Get Locations keyword. "davidshepherd7" to fixing issue
when getting window information and switching windows on browsers that do not support javascript.
Many thanks to many other contributors who have helped to make this release.
| ID | Type | Priority | Summary | Added |
|---|---|---|---|---|
| #479 | enhancement | critical | Python 3 support | alpha 1 |
| #777 | enhancement | critical | Change library name from Selenium2Library to SeleniumLibrary | alpha 1 |
| #620 | enhancement | high | Drop Python 2.6 support | alpha 1 |
| #771 | enhancement | high | Create better architecture for Selenium2Library | alpha 1 |
| #873 | enhancement | high | Enhance project documentation in README | beta 1 |
| #879 | enhancement | high | Document that Jython and PyPy are supported but IronPython is not | beta 3 |
| #908 | enhancement | high | New strategy:value syntax to specify locator strategy in addition to current strategy=value |
beta 3 |
| #923 | enhancement | high | Tables should be located using same logic as other elements | beta 3 |
| #924 | enhancement | high | Enhance general library documentation in keyword docs | beta 3 |
| #176 | bug | medium | Return value of Register keyword to run on failure cannot always be used to restore original state |
beta 3 |
| #435 | bug | medium | Note version added to recently added keywords. | beta 2 |
| #546 | bug | medium | HTML5 specialized text fields not recognized as text fields | alpha 1 |
| #652 | bug | medium | Handling alerts sometimes fails with Chrome | alpha 1 |
| #779 | bug | medium | Acceptance test do not work in windows | alpha 1 |
| #790 | bug | medium | Cannot switch windows on browsers which don't support javascript | alpha 1 |
| #816 | bug | medium | Modify Capture Page Screenshot keyword not fail if browser is not open. | beta 3 |
| #898 | bug | medium | "Set Selenium Speed" doesn't work when called before opening browser in release 3.0.0b1 | beta 3 |
| #502 | enhancement | medium | Capture Page Screenshot should not overwrite if file already exist | alpha 1 |
| #574 | enhancement | medium | Add function to capture console logs from selenium browser. | alpha 1 |
| #673 | enhancement | medium | Support locating elements using element class | alpha 1 |
| #703 | enhancement | medium | Update required Robot Framework version to 2.8 | alpha 1 |
| #704 | enhancement | medium | Increase the required selenium version to latest selenium 2 version | alpha 1 |
| #719 | enhancement | medium | Use booleans arguments like in Robot Framework | alpha 1 |
| #722 | enhancement | medium | Enhance Get List Items to support returning values or labels |
alpha 1 |
| #851 | enhancement | medium | Add keyword that checks focus | alpha 1 |
| #882 | enhancement | medium | Externally useful attributes should be declared public and not start with an underscore | beta 3 |
| #883 | enhancement | medium | Remove SeleniumLibrary profile for Firefox | beta 3 |
| #592 | bug | low | Deprecation warning from Selenium when using Select/Unselect Frame |
alpha 1 |
| #759 | bug | low | Change link in help Get Alert Message to Dismiss Alert |
alpha 1 |
| #847 | bug | low | Remove unused expiry argument from Add Cookie keyword |
alpha 1 |
| #794 | enhancement | low | Extend xpath detection to support xpath starting with (// | alpha 1 |
| #920 | enhancement | low | Better names for Current Frame Contains, Focus and Simulate |
beta 3 |
| #805 | enhancement | --- | Modify Get Webelements not to raise exception when no elements are found | beta 3 |
Altogether 33 issues. View on the issue tracker.