Skip to content

Releases: seleniumbase/SeleniumBase

4.42.3 - CDP Mode: Patch 63

08 Oct 16:41
4f2caff
Compare
Choose a tag to compare

CDP Mode: Patch 63


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

What's Changed

Full Changelog: v4.42.2...v4.42.3

4.42.2 - CDP Mode: Patch 62

06 Oct 19:00
2a26bed
Compare
Choose a tag to compare

CDP Mode: Patch 62

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)

What's Changed

Full Changelog: v4.42.1...v4.42.2

4.42.1 - CDP Mode: Patch 61

06 Oct 01:42
ca92a51
Compare
Choose a tag to compare

CDP Mode: Patch 61

Extensions are now fully supported in Pure CDP Mode (sb_cdp).

What's Changed

Full Changelog: v4.42.0...v4.42.1

4.42.0 - Selenium upgrade and Recorder update

03 Oct 18:34
d37267e
Compare
Choose a tag to compare

Selenium upgrade and Recorder update

What's Changed

Full Changelog: v4.41.12...v4.42.0

4.41.12 - CDP Mode: Patch 60

01 Oct 20:27
0034475
Compare
Choose a tag to compare

CDP Mode: Patch 60

What's Changed

Full Changelog: v4.41.11...v4.41.12

4.41.11 - CDP Mode: Patch 59

01 Oct 05:59
11a834a
Compare
Choose a tag to compare

4.41.10 - CDP Mode: Patch 58

25 Sep 22:34
186e472
Compare
Choose a tag to compare

4.41.9 - CDP Mode: Patch 57

25 Sep 07:06
a014dc9
Compare
Choose a tag to compare

CDP Mode: Patch 57

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)

What's Changed

Full Changelog: v4.41.8...v4.41.9

4.41.8 - CDP Mode: Patch 56

20 Sep 17:34
a06d90d
Compare
Choose a tag to compare

CDP Mode: Patch 56

What's Changed

Full Changelog: v4.41.7...v4.41.8

4.41.7 - More PDF improvements

18 Sep 21:22
677b2b0
Compare
Choose a tag to compare