Releases: seleniumbase/SeleniumBase
SeleniumBase 2.0.0 with Selenium 4.0.0
SeleniumBase 2.0.0 with Selenium 4.0.0
- It's Party Time - We're upgrading to Selenium
4.0.0
. - Only Python versions >= 3.7 get the upgrade.
- (Python versions < 3.7 stay at Selenium
3.141.0
.) - Refresh Python dependencies:
selenium==4.0.0;python_version>="3.7"
trio==0.19.0;python_version>="3.7"
trio-websocket==0.9.2;python_version>="3.7"
pyopenssl==21.0.0;python_version>="3.7"
Wrap-up selenium3 code / transitional release
Wrap-up selenium3 code / transitional release
To make the upgrade process smoother to selenium 4.0.0
, we're making msedge-selenium-tools
optional right now before the transition to selenium 4.0.0
, which SeleniumBase will use in 2.0.0
. This will help prevent some possible error messages because the code for msedge-selenium-tools
is already included within selenium 4.0.0
, and therefore msedge-selenium-tools
cannot be installed separately while using selenium 4.0.0
. To transition safely from earlier SeleniumBase releases, install seleniumbase 1.67.1
, then you can uninstall msedge-selenium-tools
without any issues, and then you can safely transition to seleniumbase 2.0.0
, which should be coming in the next release.
Refactoring Edge Chromium
Refactoring Edge Chromium
- Edge Chromium must be version 80 or newer to run automation on:
-- (Earlier versions of Edge did not use Chromium)
-- (Only Edge Chromium is supported now -> January 2020 and newer) - Refresh dependencies:
--filelock==3.3.1;python_version>="3.6"
--Pillow==8.4.0;python_version>="3.6"
We're in the process of shipping leftover updates before upgrading to Selenium 4.
This release is still on Selenium 3.
Improvements to Recorder Mode assertions
Improvements to Recorder Mode assertions
🔴 SeleniumBase 1.66.14
improves the algorithm for converting recorded assertions into SeleniumBase code. Text assertions that contain the newline character will now be handled correctly. If a text assertion has a :contains
selector, then the text assertion will be changed to an element assertion. Asserted text from multi-line assertions will use self.assert_text()
on the first non-empty line. Asserted text from single-line assertions will use self.assert_exact_text()
. Element assertions will be handled with self.assert_element()
.
Recorder Mode assertions and more
Recorder Mode assertions and more
- New feature: Add test assertions directly from Recorder Mode.
🔴 SeleniumBase 1.66.13
lets you add assertions for elements and text while making a recording. To add an element assertion, press the [^]-key (SHIFT+6)
, (the border will become purple) then click on elements that you'd like to assert. To add a text assertion, press the [&]-key (SHIFT+7)
, (the border will become orange) then click on text elements that you'd like to assert. To go back to the regular Record Mode, press any other key. While in the special assertion modes, certain actions such as clicking on links won't have any effect. This lets you make assertions on elements without certain actions getting in the way.
Other changes:
- Add methods for activating and deactivating Demo Mode.
- Skip the time-limit feature while in Recorder Mode.
- Refresh Python dependencies
New console script: "sbase mkrec FILE.py" to make a recording
New console script: sbase mkrec FILE.py
to make a recording
🔴 SeleniumBase 1.66.12
adds the ability to instantly create a new test recording by running sbase mkrec FILE.py
. Once the browser spins up, you can open a new web page and start performing actions that will get recorded and saved to the file you specified.
Specify the driver executable_path as needed (and more)
Specify the driver executable_path as needed (and more)
-
Specify the chromedriver & geckodriver executable_path as needed:
-- This fixes a Windows issue where the local driver wasn't found, even though it was there.
-- The local driver inseleniumbase/drivers/
takes priority over a driver on the System PATH.
-- Unless using a Selenium-Grid, the local driver inseleniumbase/drivers/
is good enough.
-- The Selenium-Grid requires drivers to exist on the System PATH to be accessible by Grid tests.
-- For details, see: #1008 -
Add console output details for scripts that create files:
-- This either prints a file (for a single file) or a tree (for a directory structure).
-- For Python versions 3.6 and above, there will berich
syntax-highlighting. -
Refresh Python dependencies:
--certifi>=2021.10.8
Recorder updates and a fix for the edgedriver install script
Recorder updates and a fix for the edgedriver install script
- Add a console script option to create a file for Recorder Mode:
--sbase mkfile NEW_FILE.py -r
-- (Works with-r
,--rec
,--record
, or--recorder
) - Fail fast if using Recorder Mode without Chrome or Edge:
-- (It's a Chromium extension, so only Chromium is supported). - Fix the "msedgedriver" install script (a new file was added).
-- Usage:sbase install edgedriver
- Update Firefox settings and behavior:
-- Setbrowser.privatebrowsing.autostart
toFalse
.
-- Also fix a Firefox issue with the:contains()
selector. - Improve the script that detects and displays JS errors:
-- Simplify output, and only display one error per line. - Update the tool that scans for broken links on a page:
-- Ignore*://fonts.gstatic.com/*
- Refresh Python dependencies:
--rich==10.12.0;python_version>="3.6"
--coverage==6.0.1;python_version>="3.6"
Recorder Mode updates for downloads, classes, and forms
Recorder Mode updates for file downloads, classes, and form submissions
- Allow the Recorder to record methods for file downloads.
- Update Recorder-parsing of classes and form submissions.
Upgrade Recorder Mode, and more
Upgrade Recorder Mode, and more
🔴 SeleniumBase 1.66.8
generates better selectors in Recorder Mode and improves the algorithm for converting recorded actions into SeleniumBase code.
Also:
- Clicks that open new windows will only switch to them if not blank.
- Refresh Python dependencies.
- Upgrade the default Android emulator settings.