Skip to content

Releases: robotframework/SeleniumLibrary

SeleniumLibrary 6.6.1

08 Sep 23:46
Compare
Choose a tag to compare

SeleniumLibrary 6.6.1 is a new release which adds Python 3.12 support. SeleniumLibrary supports
Python 3.8 through 3.12, Selenium 4.21.0 through 4.24.0 and Robot Framework 6.1.1 and 7.0.1.

Most important enhancement (and only one)

Added support for Python 3.12 (#1906)
Support for Python 3.12 was added in this release. In addition we added Robot Framework 7.0.1
while dropping 5.0.1 which did not officially support Python 3.12. In addition with the almost
monthly releases of Selenium we have caught up testing against and supporting Selenium versions
4.21.0, 4.22.0, 4.23.1, and 4.24.0.

Acknowledgements

See full details in release notes

SeleniumLibrary 6.4.0

22 May 12:39
Compare
Choose a tag to compare

SeleniumLibrary 6.4.0 is a new release with enhancements around driver configuration and logging, printing pages as pdf, and some bug fixes. SeleniumLibrary supports Python 3.8 through 3.11, Selenium 4.16.0 through 4.21.0 and
Robot Framework 5.0.1, 6.1.1 and 7.0.

Most important enhancements

Add new selenium 4 print page as PDF functionality (#1824)
The print page as pdf functionality within Selenium 4 has been added into SeleniumLibrary
with a new keyword. See the keyword documentation for usage.

Add driver Service Class into Open Browser (#1900)
Selenium has shifted from a couple arguments for configuring the driver settings into the new
Service class. As with the options argument these changes allows for service class to be set
using a simlar string format. More information can be found in the Open Browser keyword
documentation and newly rearranged Introduction.

Add warning about frame deselection when using Page Should Contain keyword. (#1894)
In searching through the page, the Page Should Contain keyword will select and search
through frames. Thus it silently changes the frame context. Added warning within the keyword
documentation noting as such.

Wrong Type Hint on some keywords. (#1880)
Several type hints on locator arguments denoted the argument allowed for none when indeed
they did not. This corrects those type hints.

Deprecated features

Start Deprecation and Removal of Selenium2Library (deep) references/package (#1826)
Removed references and instructions regarding Selenium2Library; moving some to an archived
VERSIONS.rst top level documentation.

Acknowledgements

  • We would like to thank RenΓ© Rohner for discovering the incorrect type hints on some keywords. (locator: Union[WebElement, None, str]) (#1880)
  • SamMaksymyshyn, Yuri Verweij and Lisa Crispin for helping to model and design the new print page as PDF functionality (#1824)
  • Tatu Aalto for modeling and reviewing the added driver Service Class into Open Browser (#1900)
  • I want to thank Eman for pointing out that I wanted deprecate and not devalue the Selenium2Library. I also want to thank everyone in their persistence to push me to start deprecating the Selenium2Library package (#1826)
  • .. and Tatu for fixing the internal test run on Mac (#1899)

See full details in release notes

SeleniumLibrary 6.3.0

19 Apr 22:27
Compare
Choose a tag to compare

SeleniumLibrary 6.3.0 is a new release with enhancements including minimizing browser window, waiting on expected conditions, getting element attribute or properties and bug fixes. SeleniumLibrary supports Python 3.8 through 3.11, Selenium 4.14.0 through 4.19.0 and Robot Framework 5.0.1, 6.1.1 and 7.0.

Most important enhancements

Added Minimize Browser Window keyword (#1741)
New keyword which minimizes the current browser window.

Add keywords to fetch differentiated element Attribute or Property (#1822)
The older Get Element Attribute keyword uses the Selenium getAttribute() method which, as [this SauceLabs article (https://saucelabs.com/resources/blog/selenium-4-new-element-attribute-and-property-methods) describes "did not actually retrieve the Attribute value." Instead it "figured out what the user was most likely interested in between the Attribute value and the Property values and returned it." This would mean sometimes it might return an unexpected result. Selenium 4 introduced newer methods which returns either the attribute or the property as specifically asked for.

It is recommend that one transition to these newer Get DOM Attribute and Get Property keywords.

Incorporate the expected conditions of Selenium (#1827)
A new keyword that allows for one to wait on an expected condition.

Remove deprecation of Press Key keyword (#1892)
The Press Keys keyword was introduced to replace Press Key. Press Key in turn was deprecated but I (Ed Manlove) failed to remove. Its been noted that both keywords use different underlying methods for sending or pressing keys and either one will work in differing situations. So instead of removing Press Key, it has been reinstated as a library keyword.

Acknowledgements

  • Luciano Martorella for contributing the new minimize keyword (#1741)
  • Yuri Verweij and Lisa Crispin for reviewing changes and additions to Attribute or Property keywords (#1822)
  • Noam Manos for reporting the issues where the Open Browser 'Options' object has no attribute (#1877)
  • Yuri for helping update the contribution guide (#1881)
  • All those who have commented on the deprecation of Press Key keyword (#1892)
  • Yuri and Lisa for assisting with the addition of Wait For Expected Condition keyword and for the Robot Framework Foundation for the ecosystem support (#1827)

and Yuri Verweij, Lisa Crispin, and Tatu Aalto for their continued support of the library development.

See full details in release notes

SeleniumLibrary 6.2.0

25 Nov 02:30
Compare
Choose a tag to compare

SeleniumLibrary 6.2.0 is a new release with compatibility fixes for recent selenium versions and some bug fixes. SeleniumLibrary supports Python 3.8 through 3.11, Selenium 4.12.0 through 4.15.2 and Robot Framework 5.0.1 and 6.1.1.

Most important enhancements

Remove deprecated headless option for chrome and firefox. (#1858)

If one specified either headlesschrome or headlessfirefox as the browser within the Open Browser keyword, then the library would handle setting this option with the underlying Selenium driver. But the methods to do so were deprecated and then removed in Selenium v4.13.0. Thus one was not getting a headless browser in these instances. This resolves that issue.

Resolve issue with service log_path now log_output. (#1870)

Selenium changed the arguments for the service log within v4.13.0. This change allows for a seamless usage across versions before and after v4.13.0.

Execute JavaScript converts arguments to strings. (#1843)

If any ARGUMENTS were passed into either the Execute Javascript or Execute Async Javascript then they were converted to strings even if they were of some other type. This has been corrected within this release.

Acknowledgements

I want to thank the following for helping to get out this release,

  • RenΓ© Rohner for pointing out that Create Webdriver had a mutable default value (#1817)
  • Kieran Trautwein for resolving the issue with deprecated headless option for chrome and firefox. (#1858)
  • Nicholas Bollweg for assisting in resolving the issue with service log_path now log_output. (#1870)
  • Igor Kozyrenko for reporting the argument issue with Execute JavaScript and RenΓ© Rohner for resolving it. (#1843_)
  • Robin Matz for improving the documentation on page load timeout (#1821)
  • Dor Blayzer for reporting and fixing the SeleniumLibrary CI badge. ()

and Yuri Verweij, Lisa Crispin, and Tatu Aalto.

See full details in release notes

SeleniumLibrary 6.1.3

09 Nov 15:34
Compare
Choose a tag to compare

SeleniumLibrary 6.1.3 is a hotfix release that fixes an issue with remote browsers when options are not provided.

SeleniumLibrary 6.1.3 was released on Thursday October 12, 2023. SeleniumLibrary supports Python 3.8+, Selenium 4.3+ and Robot Framework 4.1.3 or higher.

Most important enhancements

Remote browser fails when no options provided (#1855)

For several of the remote browsers we need to initialize the options if none are provided. In addition the deprecated and removed from selenium desired_capabilities have been removed from SeleniumLibrary v6.1.3.

Acknowledgements

I want to thank Tero LempiΓ€inen for pointing out this issue (#1855)

See full details in release notes

SeleniumLibrary 6.1.2

09 Sep 21:19
Compare
Choose a tag to compare

SeleniumLibrary 6.1.2 is a hotfix release focused on bug fixes for setting configuration options when using a remote Edge or Safari Browser. More information is given below.

SeleniumLibrary 6.1.2 was released on Saturday September 9, 2023. SeleniumLibrary supports Python 3.7+, Selenium 4.3+ and Robot Framework 4.1.3 or higher.

Most important enhancements

Missing "Options" setup in EDGE browser for remote url execution

The browser options if given within the Open Browser or Create WebDriver keyword were not being passed to either a remote Edge or remote Safari browser. This has been fixed within this release.

See full details in release notes

SeleniumLibrary 6.1.1

04 Aug 13:38
Compare
Choose a tag to compare

SeleniumLibrary 6.1.1 is a hotfix release with one bug fix - the incompatablitilty with Selenium v4.10.0+. More information is given below.

SeleniumLibrary 6.1.1 was released on Friday August 4, 2023. SeleniumLibrary supports Python 3.7+, Selenium 4.3.0 or higher and Robot Framework 4.1.3 or higher.

Most important enhancements

Fixed Selenium v4.10.0+ Incompatibility
Selenium v4.10.0 removed code that was labeled as deprecated which we did not catch before the release. As such it broke code particular around how the Open Browser keyword calls into selenium. This release is a targeted change to resolve that conflict. In particular if one is using a few particular arguments with the Open Browser keyword then it is recommended you verify you get the same results as before. Some of these you should not need to make any changes as we make those internally. But others we completely removed and you with need to update to get the same functionality. Let me walk through those argument now ..

If you use the service_log_path and/or executable_path argument, these are now passed different to the webdriver creation. We have strong confidence this was done properly but still want to be transparent a change was made there. If you find something amiss please open a support ticket.

If you use Firefox and the ff_profile_dir argument, this is now attached first to the options structure and passed along to the webdriver creation via options. Again for most users you should not see any issues. If, by chance, you are already setting the profile via options (ie Open Browser None Firefox options=profile=/path/to/profile/dir) and through the ff_profile_dir then you will get unexpected operation. I suspect the ff_profile_dir will overwride the other; but that is just a guess. Don't try to set it in two places at once. I recognize the change of profile into the options structure complicates the argument structure here (for example what is you want to pass a profile object?). It is not my intention nor do I even attempt to address that here. If you do use Firefox profiles and have some thoughts on how we can improve this, please reach out.

If you use desired_capabilities they are deprecated and removed completely by Selenium. SeleniumLibrary just ignores that you passed them in. We will, most likely in the next release just remove that argument, but I wanted to ease you into this as best as I could. This is not the place for a tutorial on what has been the way to do this but you can find plenty about that on either Selenium Grid documentation or vendors like SauceLabs or BrowserStack.

Finally if you do do anything beyond the basic Open Browser someUrl someBrowser it would be worthwhile that with this release you get similar expected results as with the previous 6.1.0 release. If you see some browser configuration settings that are not resulting in previous usage and can prove this release has something in error please raise a ticket.

See full details in release notes

SeleniumLibrary 6.1.0

06 May 11:16
Compare
Choose a tag to compare

SeleniumLibrary 6.1.0 is a new release with some enhancements around timeouts, broadening edge support and removing deprecated Opera support, and bug fixes.

SeleniumLibrary 6.1.0 was released on Wednesday May 3, 2023. SeleniumLibrary supports Python 3.7+, Selenium 4.0+ and Robot Framework 4.1.3 or higher.

Most important enhancements

Set Page Load Timeout
The ability to set the page load timeout value was added (#1535). This can be done on the Library import. For example, one could set it to ten seconds, as in,

*** Setting ***
Library           SeleniumLibrary    page_load_timeout=10 seconds

In addition there are two addition keywords (Set Selenium Page Load Timeout and Get Selenium Page Load Timeout) which allow for changing the page load timeout within a script. See the keyword documentation for more information.

Duration of mouse movements within Action Chains
Actions chains allow for building up a series of interactions including mouse movements. As to simulate an actual user moving the mouse a default duration (250ms) for pointer movements is set. This change (#1768) allows for the action chain duration to be modified. This can be done on the Library import, as in,

*** Setting ***
Library           SeleniumLibrary    action_chain_delay=100 milliseconds

or with the setter keyword Set Action Chain Delay. In addition one can get the current duration with the new keyword Get Action Chain Delay. See the keyword documentation for more information.

Timeout documentation updated
The keyword documentation around timeouts was enhanced (#1738) to clarify what the default timeout is and that the default is used if None is specified. The changes are, as shown in italics here,

The default timeout these keywords use can be set globally either by using the Set Selenium Timeout keyword or with the timeout argument when importing the library. If no default timeout is set globally, the default is 5 seconds. If None is specified for the timeout argument in the keywords, the default is used. See time format below for supported timeout syntax.

Edge webdriver under Linux
The executable path to the edge browser has been changed (#1698) so as to support both Windows and Linux/Unix/MacOS OSes. One should not notice any difference under Windows but under Linux/*nix one will no longer get an error message saying the Windows executable is missing.

Upcoming Deprecation of Selenium2Library

Please Take Note - The SeleniumLibrary Team will be deprecating and removing the Selenium2Library package in an upcoming release. When the underlying Selenium project transitioned, over six years ago, from distinguishing between the "old" selenium (Selenium 1) and the "new" WebDriver Selenium 2 into a numerically increasing versioning, this project decided to use the original SeleniumLibrary package name. As a convenience the Selenium2Library package was made a wrapper around the SeleniumLibrary package. Due to the issues around upgrading packages and the simple passage of time, it is time to deprecate and remove the Selenium2Library package.

If you are still installing the Selenium2Libary package please transition over, as soon as possible, to installing the SeleniumLibrary package instead.

See full details in release notes

SeleniumLibrary 6.0.0

09 Jan 18:51
Compare
Choose a tag to compare

SeleniumLibrary is a web testing library for Robot Framework that utilizes the Selenium tool internally. SeleniumLibrary 6.0.0 is a new release with enhancements to locators and bug fixes on how run on failure functionality is executed. Starting with version 6.0 SeleniumLibrary requires Selenium 4.0+. If you wish to use Selenium version 3.x you must use SeleniumLibrary version 5 or prior.

See release notes for full details.

SeleniumLibrary 5.1.3

23 Mar 21:32
Compare
Choose a tag to compare

SeleniumLibrary is a web testing library for Robot Framework that utilizes the Selenium_ tool internally. SeleniumLibrary 5.1.3 is a new release with bug fixes to Execute JavaScript and Execute Async JavaScript type hints with RF 4.0.

For more details see the release notes