Releases: seleniumbase/SeleniumBase
Update the xpath-to-css selector converter
Update the xpath-to-css selector converter
- Handle special xpath edge cases that weren't covered by the main converter
Update methods that click visible elements
Update methods that click visible elements
- Add a custom timeout to methods that click visible elements:
self.click_visible_elements(selector, by=By.CSS_SELECTOR, limit=0, timeout=None)
self.click_nth_visible_element(selector, number, by=By.CSS_SELECTOR, timeout=None)
- Also update the
pip
requirement:pip>=20.2.3
Fix autofill issues
Fix autofill issues
- Fix #683
- Also update presentation metadata when creating presentations
- Also update Python dependencies:
--traitlets==5.0.4;python_version>="3.7"
--rich==6.1.1;python_version>="3.6"
Update Python dependencies
Update Python dependencies
setuptools>=50.3.0;python_version>="3.5"
attrs>=20.2.0
Add support for the ":contains()" selector
Add support for the :contains()
selector
- Add method:
convert_css_to_xpath(CSS)
- Update the XPath-to-CSS converter
- Update Python dependencies:
--setuptools>=50.2.0;python_version>="3.5"
--cssselect==1.1.0
--traitlets==5.0.3;python_version>="3.7"
Upgrade the "setuptools" dependency
Upgrade the "setuptools" dependency
setuptools>=50.1.0;python_version>="3.5"
Updates to Selenium Grid and WebDriver installation
Updates to Selenium Grid and WebDriver installation
- Add option to change "timeout" for idle Selenium Grid tests
- Install the latest EdgeDriver if not specifying a specific version
- Update Chrome options for tests running on a Selenium Grid
- Use the same GeckoDriver version for all operating systems
- Update Python dependencies ("setuptools" and "traitlets")
Update default EdgeDriver (Chromium) version
Set default EdgeDriver (Chromium) version to 85.0.564.44
- Changed from
85.0.564.41
to85.0.564.44
- See https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- This improves automation running on Edge
Update Python dependencies
Update Python dependencies:
setuptools>=44.1.1;python_version<"3.5"
setuptools>=50.0.0;python_version>="3.5"
traitlets==4.3.3;python_version<"3.7"
traitlets==5.0.0;python_version>="3.7"
prompt-toolkit==1.0.18;python_version<"3.6"
prompt-toolkit==3.0.7;python_version>="3.6"
ipython==5.10.0;python_version<"3.5"
ipython==6.5.0;python_version>="3.5" and python_version<"3.6"
ipython==7.16.1;python_version>="3.6" and python_version<"3.7"
ipython==7.18.1;python_version>="3.7"
If anyone is wondering how I know which dependencies to update, there is a simple command for it:
pip list --outdated
Sometimes it's safe to keep Python dependencies on the latest version, and sometimes that causes conflicts. Here's an example of running that command:
$ pip list --outdated
Package Version Latest Type
----------- ------- ------ -----
parso 0.7.1 0.8.0 wheel
pytest-html 2.0.1 2.1.1 wheel
setuptools 49.6.0 50.0.0 wheel
traitlets 4.3.3 5.0.0 wheel
When possible, I try to keep SeleniumBase Python dependencies up-to-date when it is safe to do so. Also note that not all Python dependencies support the latest version of Python. Many of the latest dependencies have dropped support for older Python versions such as 2.7, 3.5, etc. Since SeleniumBase currently supports the following Python versions: 2.7, 3.5, 3.6, 3.7, and 3.8, I run unit tests to make sure that SeleniumBase still works on all those versions. That involves pinning Python dependencies to specific versions based on the version of Python installed.
Fix edge case with iframe switching
Fix edge case with iframe switching
- Only scroll to iframes before switching to them if the identifier is a string
- An iframe identifier can be a string (selector, name, or id), an int (index), or a web element, but the
self.scroll_to(selector)
method expects a string selector for finding the element first. self.switch_to_frame(frame)
is the method for switching to an iframe.
(The iframe identifier can be a selector, an index, an id, a name, or a web element, but scrolling to the iframe first will only occur for visible iframes with a string selector.)