Skip to content

Releases: seleniumbase/SeleniumBase

Update the xpath-to-css selector converter

09 Sep 01:57
56cf4aa
Compare
Choose a tag to compare

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

08 Sep 21:32
edb593d
Compare
Choose a tag to compare

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

08 Sep 05:52
388cbee
Compare
Choose a tag to compare

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

07 Sep 02:01
b75b1ce
Compare
Choose a tag to compare

Update Python dependencies

  • setuptools>=50.3.0;python_version>="3.5"
  • attrs>=20.2.0

Add support for the ":contains()" selector

05 Sep 02:47
00a181d
Compare
Choose a tag to compare

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

03 Sep 05:01
ea28ff2
Compare
Choose a tag to compare

Upgrade the "setuptools" dependency

  • setuptools>=50.1.0;python_version>="3.5"

Updates to Selenium Grid and WebDriver installation

02 Sep 23:55
86a6466
Compare
Choose a tag to compare

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

01 Sep 17:32
7c931aa
Compare
Choose a tag to compare

Set default EdgeDriver (Chromium) version to 85.0.564.44

Update Python dependencies

31 Aug 19:07
efd257b
Compare
Choose a tag to compare

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

30 Aug 18:32
2972209
Compare
Choose a tag to compare

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.)