NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2688 most downloaded on PyPI
SeleniumBase is a framework for web crawling, scraping, and testing. Supports pytest. CDP Mode adds stealth. Includes many tools.
Last release today
17 Sep 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
8 versions withdrawn
withdrawn after publishing
11 years old
1219 releases · first in 2015
Update CDP Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/4018 --> This resolves https://github.com/seleniumbase/SeleniumB
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.42.4...v4.42.5
Fix Edge in Wire Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/4013
One column per quarter.
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.42.3...v4.42.4
Add command-line shortcuts for Pure CDP Mode (sb_cdp) --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/4008
<div> and <input> elementsFor Pure CDP Mode (sb_cdp), we're adding the ability to set options via command-line args. Here's what to expect, with examples:
python SCRIPT.py --incognito
python SCRIPT.py --guest
python SCRIPT.py --headless
python SCRIPT.py --ad-block
python SCRIPT.py --agent="MY NEW USER AGENT"
python SCRIPT.py --geolocation="(31.774390, 35.222450)"
python SCRIPT.py --timezone=="Asia/Kolkata"
python SCRIPT.py --platform="MacIntel"
python SCRIPT.py --lang="fr"
python SCRIPT.py --proxy="USER:PASS@SERVER:PORT"
python SCRIPT.py --binary-location="/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
There are a few additional options on Linux, such as --gui/--headed, (which overrides the default Linux headless mode). And there's --xvfb on Linux for the special virtual display (which may already be set by default if not using other options).
This aims to simplify option-handling, as you will no longer need to modify a script itself in order to change how it runs.
Note that all these options were already available via method args passed into sb_cdp.Chrome(). Method args always take priority over command-line options. For example, if you set the binary_location / browser_executable_path via method arg, but set a different one on the command-line, then the method arg takes priority.
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.42.2...v4.42.3
Here are the new methods added to CDP Mode:
Here are the new methods added to CDP Mode:
sb.cdp.get_mfa_code(totp_key=None)
sb.cdp.enter_mfa_code(selector, totp_key=None, timeout=None)
sb.cdp.is_attribute_present(selector, attribute, value=None)
sb.cdp.is_online()
(Note that those new CDP Mode methods already existed in regular SeleniumBase)
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.42.1...v4.42.2
Extensions are now fully supported in Pure CDP Mode (sb_cdp).
Extensions are now fully supported in Pure CDP Mode (sb_cdp).
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.42.0...v4.42.1
Refresh Python dependencies --> This includes upgrading to a newer version of selenium.
selenium.Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.12...v4.42.0
CDP Mode: Patch 60 by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3998
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.11...v4.41.12
CDP Mode: Patch 59 by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3996
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.10...v4.41.11
Fix uc_gui_click_captcha() on Windows
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.9...v4.41.10
One of the key improvements is being able to click through multiple CAPTCHAs at nearly the same time. See the following example: SeleniumBase/examples
One of the key improvements is being able to click through multiple CAPTCHAs at nearly the same time.
See the following example: SeleniumBase/examples/cdp_mode/raw_multi_captcha.py, which spins up multiple windows via ThreadPoolExecutor, and then solves mutliple CAPTCHAs.
from concurrent.futures import ThreadPoolExecutor
from random import randint
from seleniumbase import decorators
from seleniumbase import sb_cdp
def main(url):
sb = sb_cdp.Chrome(url, lang="en")
sb.set_window_rect(randint(4, 680), randint(8, 380), 840, 520)
sb.sleep(2.2)
sb.gui_click_captcha()
sb.sleep(2)
sb.driver.quit()
if __name__ == "__main__":
urls = ["https://seleniumbase.io/apps/turnstile" for i in range(5)]
with decorators.print_runtime("raw_multi_captcha.py"):
with ThreadPoolExecutor(max_workers=len(urls)) as executor:
for url in urls:
executor.submit(main, url)
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.8...v4.41.9
CDP Mode: Patch 56 by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3977
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.7...v4.41.8
Update the Google Search example
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.6...v4.41.7
Prevent odd warnings when getting PDF text --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3967
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.5...v4.41.6
Fix issue with "pytest --help" --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3561
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.4...v4.41.5
Add more select options for CDP Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3958
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.3...v4.41.4
Allow proxy auth with user but no password --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3947
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.2...v4.41.3
Update CDP Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3945
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.1...v4.41.2
Fix "sb.uc_gui_click_captcha()" on Windows --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3928
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.41.0...v4.41.1
Multiple dependency updates by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3926
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.8...v4.41.0
Update CDP Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3911
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.7...v4.40.8
Add method to clear input fields in CDP Mode
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.6...v4.40.7
Switch to updated `msedgedriver` download location --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3888
msedgedriver download location
--> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3888Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.5...v4.40.6
Update UC Mode / CDP Mode CAPTCHA-bypass --> This improves the uc_gui_click_captcha() method.
uc_gui_click_captcha() method.Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.4...v4.40.5
Refresh Python dependencies --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3877
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.3...v4.40.4
Add ability to switch into invisible iframes --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3874 --> Eg: sb.switch_to_frame("if
sb.switch_to_frame("iframe", invisible=True)Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.2...v4.40.3
Add save_page_source_to_logs() --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3871
selenium to 4.34.2Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.1...v4.40.2
Refresh Python dependencies --> This bumps up the version of selenium to 4.34.1.
selenium to 4.34.1.Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.40.0...v4.40.1
Fix CDP Mode crash issue --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3862
selenium version to 4.34.0.chromedriver.Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.39.6...v4.40.0
Fix PyAutoGUI targeting issue on Linux --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3854
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.39.5...v4.39.6
Nothing published for this version
Nothing published for this version
Add sb.cdp.reset_permissions() --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3829
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.39.4...v4.39.5
Update CDP Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3814 --> This resolves https://github.com/seleniumbase/SeleniumB
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.39.3...v4.39.4
Update pytest_plugin.py to handle changes in pytest
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.39.2...v4.39.3
Add IntelliSense autocompletion support --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3791
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.39.1...v4.39.2
Fix extensions on Chrome 137+ --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3771
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.39.0...v4.39.1
Refresh Python dependencies --> This includes a selenium upgrade.
selenium upgrade.quit() as a duplicate of stop().stop() to quit browser directly.Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.38.3...v4.39.0
Update UC Mode / CDP Mode --> (Includes 3 bug fixes) --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3765 --> This resolves an i
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.38.2...v4.38.3
Fix bug with headless UC Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3744 --> (This fixes a regression in the previous
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.38.1...v4.38.2
Add way to change scheme in auth proxy extension --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3742
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.38.0...v4.38.1
Refresh Python dependencies --> This includes selenium.
selenium.Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.12...v4.38.0
Update CDP Mode --> This fixes a memory leak issue. --> This also resolves https://github.com/seleniumbase/SeleniumBase/issues/3719
Related discussion: https://github.com/seleniumbase/SeleniumBase/issues/3715#issuecomment-2843666657 - (Special thanks @felipehertzer)
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.11...v4.37.12
Update CDP Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3715 --> This resolves https://github.com/seleniumbase/SeleniumB
To avoid memory leaks in CDP Mode, upgrade to Python 3.12 (or newer).
There's an issue with asyncio in earlier versions, which makes the memory leak unavoidable.
<img width="620" alt="Screenshot 2025-04-30 at 11 47 35 AM" src="https://github.com/user-attachments/assets/2f5da52c-0237-4e21-9833-fe6940ad2637" />
Due to that, there's not much that can be done from the SeleniumBase side to avoid that specific memory leak if you're using an older version of Python. (Only CDP Mode is affected, and only for Python 3.11 and older versions.) That's because CDP Mode using asyncio in the backend, even if you don't call any async functions directly.
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.10...v4.37.11
If you're spinning up a lot of CDP Mode web browsers in a loop within a Python file, then you'll use less memory because resources will get freed up a
If you're spinning up a lot of CDP Mode web browsers in a loop within a Python file, then you'll use less memory because resources will get freed up at the end of the with SB() as sb: block, rather than after you've reached the end of the Python file (where regular garbage collection takes place).
Related discussion: https://github.com/seleniumbase/SeleniumBase/discussions/3679 - (Special thanks @felipehertzer. Joint effort with @mdmintz )
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.9...v4.37.10
Add ability to change fingerprints in realtime --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3708
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.8...v4.37.9
Update CDP Mode --> Includes various fixes and optimizations
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.7...v4.37.8
Add more CDP options --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3699
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.6...v4.37.7
Improve CDP multithreading --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3692
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.5...v4.37.6
Fix asyncio issue that appears when using multiple drivers --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3689
asyncio issueasyncio issue by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3690Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.4...v4.37.5
Fix a memory leak in CDP Mode --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3685
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.3...v4.37.4
Mostly memory improvements by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3684
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.2...v4.37.3
Add sb.cdp.gui_click_and_hold(selector, timeframe) --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3667
sb.cdp.gui_click_and_hold(selector, timeframe)sb.cdp.gui_click_and_hold(selector, timeframe) by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3668Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.1...v4.37.2
Fix CDP Mode issues --> This resolves https://github.com/seleniumbase/SeleniumBase/issues/3654
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.37.0...v4.37.1
Selenium update by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3653
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.36.5...v4.37.0
Refresh dependencies by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3649
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.36.4...v4.36.5
CDP Mode: Patch 44 by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3635
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.36.3...v4.36.4
Update geckodriver and dependencies by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3634
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.36.2...v4.36.3
Add keyword arg shortcuts for get_new_driver()
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.36.1...v4.36.2
Update CDP Mode --> Related to handling PDFs
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.36.0...v4.36.1
Mostly dependency updates by @mdmintz in https://github.com/seleniumbase/SeleniumBase/pull/3622
Full Changelog: https://github.com/seleniumbase/SeleniumBase/compare/v4.35.7...v4.36.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →