seleniumbase 4.41.12__py3-none-any.whl → 4.42.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.41.12"
2
+ __version__ = "4.42.1"
@@ -2664,6 +2664,8 @@ def _set_chrome_options(
2664
2664
  included_disabled_features.append(item)
2665
2665
  d_f_string = ",".join(included_disabled_features)
2666
2666
  chrome_options.add_argument("--disable-features=%s" % d_f_string)
2667
+ if proxy_auth:
2668
+ chrome_options.add_argument("--test-type")
2667
2669
  if (
2668
2670
  is_using_uc(undetectable, browser_name)
2669
2671
  and (
@@ -2681,7 +2683,8 @@ def _set_chrome_options(
2681
2683
  chrome_options.add_argument("--disable-popup-blocking")
2682
2684
  # Skip remaining options that trigger anti-bot services
2683
2685
  return chrome_options
2684
- chrome_options.add_argument("--test-type")
2686
+ if not proxy_auth:
2687
+ chrome_options.add_argument("--test-type")
2685
2688
  chrome_options.add_argument("--log-level=3")
2686
2689
  chrome_options.add_argument("--no-first-run")
2687
2690
  chrome_options.add_argument("--allow-insecure-localhost")
@@ -5419,6 +5419,20 @@ class BaseCase(unittest.TestCase):
5419
5419
  )
5420
5420
  ):
5421
5421
  srt_actions[n][0] = "_skip"
5422
+ for n in range(len(srt_actions)):
5423
+ if (
5424
+ (srt_actions[n][0] == "begin" or srt_actions[n][0] == "_url_")
5425
+ and n > 1
5426
+ and (
5427
+ srt_actions[n - 1][0] == "f_url"
5428
+ or srt_actions[n - 1][0] == "_url_"
5429
+ )
5430
+ and srt_actions[n][2] == srt_actions[n - 1][2]
5431
+ and (
5432
+ int(srt_actions[n][3]) - int(srt_actions[n - 1][3]) < 4800
5433
+ )
5434
+ ):
5435
+ srt_actions[n][0] = "_skip"
5422
5436
  for n in range(len(srt_actions)):
5423
5437
  if (
5424
5438
  srt_actions[n][0] == "input"
@@ -29,8 +29,20 @@ def pip_install(package, version=None):
29
29
  )
30
30
 
31
31
 
32
+ def is_arm_linux():
33
+ """Returns True if machine is ARM Linux.
34
+ This will be useful once Google adds
35
+ support for ARM Linux ChromeDriver.
36
+ (Raspberry Pi uses ARM architecture.)"""
37
+ return (
38
+ platform.system() == "Linux"
39
+ and platform.machine() == "aarch64"
40
+ )
41
+
42
+
32
43
  def is_arm_mac():
33
- """(M1 / M2 Macs use the ARM processor)"""
44
+ """Returns True if machine is ARM Mac.
45
+ (Eg. M1 / M2 Macs use ARM processors)"""
34
46
  return (
35
47
  "darwin" in sys.platform
36
48
  and (
@@ -150,11 +150,6 @@ class Config:
150
150
  "--disable-renderer-backgrounding",
151
151
  "--disable-background-networking",
152
152
  "--disable-dev-shm-usage",
153
- "--disable-features=IsolateOrigins,site-per-process,Translate,"
154
- "InsecureDownloadWarnings,DownloadBubble,DownloadBubbleV2,"
155
- "OptimizationTargetPrediction,OptimizationGuideModelDownloading,"
156
- "SidePanelPinning,UserAgentClientHint,PrivacySandboxSettings4,"
157
- "DisableLoadExtensionCommandLineSwitch",
158
153
  ]
159
154
 
160
155
  @property
@@ -202,7 +197,15 @@ class Config:
202
197
  # By the time it starts, the port is probably already taken.
203
198
  args = self._default_browser_args.copy()
204
199
  args += ["--user-data-dir=%s" % self.user_data_dir]
205
- args += ["--disable-features=IsolateOrigins,site-per-process"]
200
+ args += [
201
+ "--disable-features=IsolateOrigins,site-per-process,Translate,"
202
+ "InsecureDownloadWarnings,DownloadBubble,DownloadBubbleV2,"
203
+ "OptimizationTargetPrediction,OptimizationGuideModelDownloading,"
204
+ "SidePanelPinning,UserAgentClientHint,PrivacySandboxSettings4,"
205
+ "DisableLoadExtensionCommandLineSwitch"
206
+ ]
207
+ if self.proxy:
208
+ args += ["--test-type"]
206
209
  args += ["--disable-session-crashed-bubble"]
207
210
  if self.expert:
208
211
  args += [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.41.12
3
+ Version: 4.42.1
4
4
  Summary: A complete web automation framework for end-to-end testing.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -67,7 +67,7 @@ Requires-Dist: setuptools~=70.2; python_version < "3.10"
67
67
  Requires-Dist: setuptools>=80.9.0; python_version >= "3.10"
68
68
  Requires-Dist: wheel>=0.45.1
69
69
  Requires-Dist: attrs>=25.3.0
70
- Requires-Dist: certifi>=2025.8.3
70
+ Requires-Dist: certifi>=2025.10.5
71
71
  Requires-Dist: exceptiongroup>=1.3.0
72
72
  Requires-Dist: websockets~=13.1; python_version < "3.9"
73
73
  Requires-Dist: websockets>=15.0.1; python_version >= "3.9"
@@ -78,7 +78,8 @@ Requires-Dist: mycdp>=1.2.0
78
78
  Requires-Dist: pynose>=1.5.5
79
79
  Requires-Dist: platformdirs>=4.3.6; python_version < "3.9"
80
80
  Requires-Dist: platformdirs>=4.4.0; python_version >= "3.9"
81
- Requires-Dist: typing-extensions>=4.13.2
81
+ Requires-Dist: typing-extensions~=4.13.2; python_version < "3.9"
82
+ Requires-Dist: typing-extensions>=4.15.0; python_version >= "3.9"
82
83
  Requires-Dist: sbvirtualdisplay>=1.4.0
83
84
  Requires-Dist: MarkupSafe==2.1.5; python_version < "3.9"
84
85
  Requires-Dist: MarkupSafe>=3.0.3; python_version >= "3.9"
@@ -103,13 +104,13 @@ Requires-Dist: sniffio==1.3.1
103
104
  Requires-Dist: h11==0.16.0
104
105
  Requires-Dist: outcome==1.3.0.post0
105
106
  Requires-Dist: trio==0.27.0; python_version < "3.9"
106
- Requires-Dist: trio~=0.30.0; python_version >= "3.9"
107
+ Requires-Dist: trio<1,>=0.31.0; python_version >= "3.9"
107
108
  Requires-Dist: trio-websocket~=0.12.2
108
109
  Requires-Dist: wsproto==1.2.0
109
110
  Requires-Dist: websocket-client~=1.8.0
110
111
  Requires-Dist: selenium==4.27.1; python_version < "3.9"
111
112
  Requires-Dist: selenium==4.32.0; python_version >= "3.9" and python_version < "3.10"
112
- Requires-Dist: selenium==4.35.0; python_version >= "3.10"
113
+ Requires-Dist: selenium==4.36.0; python_version >= "3.10"
113
114
  Requires-Dist: cssselect==1.2.0; python_version < "3.9"
114
115
  Requires-Dist: cssselect==1.3.0; python_version >= "3.9"
115
116
  Requires-Dist: sortedcontainers==2.4.0
@@ -275,7 +276,7 @@ Dynamic: summary
275
276
 
276
277
  --------
277
278
 
278
- <p align="left">📗 For performing a Google Search without hitting the "unusual traffic" page, you can use SeleniumBase UC Mode.<br />Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py">SeleniumBase/examples/raw_google.py</a>, which exports results into different formats (PDF, HTML, PNG):</p>
279
+ <p align="left">📗 Here's a test script that performs a Google Search using SeleniumBase UC Mode:<br /><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py">SeleniumBase/examples/raw_google.py</a> (Results are saved as PDF, HTML, and PNG)</p>
279
280
 
280
281
  ```python
281
282
  from seleniumbase import SB
@@ -299,7 +300,7 @@ with SB(test=True, uc=True) as sb:
299
300
 
300
301
  --------
301
302
 
302
- <p align="left">📗 Here's an example of bypassing Cloudflare's challenge page with UC Mode + CDP Mode: <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py">SeleniumBase/examples/cdp_mode/raw_gitlab.py</a></p>
303
+ <p align="left">📗 Here's a script that bypasses Cloudflare's challenge page with UC Mode + CDP Mode: <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py">SeleniumBase/examples/cdp_mode/raw_gitlab.py</a></p>
303
304
 
304
305
  ```python
305
306
  from seleniumbase import SB
@@ -319,7 +320,7 @@ with SB(uc=True, test=True, locale="en") as sb:
319
320
 
320
321
  <img src="https://seleniumbase.github.io/other/cf_sec.jpg" title="SeleniumBase" width="332"> <img src="https://seleniumbase.github.io/other/gitlab_bypass.png" title="SeleniumBase" width="288">
321
322
 
322
- <p align="left">📙 You can also use SeleniumBase's pure CDP Mode, which doesn't use chromedriver, Selenium, or a Python context manager at all: <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_cdp_gitlab.py">SeleniumBase/examples/cdp_mode/raw_cdp_gitlab.py</a></p>
323
+ <p align="left">📙 There's also SeleniumBase's "Pure CDP Mode", which doesn't use WebDriver or Selenium at all: <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_cdp_gitlab.py">SeleniumBase/examples/cdp_mode/raw_cdp_gitlab.py</a></p>
323
324
 
324
325
  ```python
325
326
  from seleniumbase import sb_cdp
@@ -333,7 +334,7 @@ sb.highlight('button:contains("Sign in")')
333
334
  sb.driver.stop()
334
335
  ```
335
336
 
336
- > (Due to a change in Chrome 137 where the --load-extension switch was removed, one limitation with this format is that you can't load extensions directly. The other formats weren't affected by this change.)
337
+ > (Due to changes in Chrome 137 where the `--load-extension` switch was removed, you can't load extensions directly from this format.)
337
338
 
338
339
  --------
339
340
 
@@ -3,7 +3,7 @@ sbase/__main__.py,sha256=G0bVB1-DM4PGwQ1KyOupaWCs4ePbChZNNWuX2htim5U,647
3
3
  sbase/steps.py,sha256=wiPSWZhFpBlWvkqXRJ18btpBu3nQaw9K5AzIJNAX5RM,43521
4
4
  seleniumbase/__init__.py,sha256=JFEY9P5QJqsa1M6ghzLMH2eIPQyh85iglCaQwg8Y8z4,2498
5
5
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
6
- seleniumbase/__version__.py,sha256=ez4whTi5_9nJU4o7yS9cSHVwIhJLWP88L6jDvwy66QU,47
6
+ seleniumbase/__version__.py,sha256=PaDBv1vq8Qcw7qMzR9vLg_YgpDZ8E2L6_LqLBj3R4C4,46
7
7
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  seleniumbase/behave/behave_helper.py,sha256=lJtagtivSbEpbRj0EKV4l4PuPU6NANONJJAnYwgVCe0,24379
9
9
  seleniumbase/behave/behave_sb.py,sha256=guLihFsr1uJ4v2AR3r3Vy_BTeHrHwy2JEJxhp-MVnZA,59872
@@ -36,7 +36,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0C
36
36
  seleniumbase/console_scripts/sb_recorder.py,sha256=DH-n2fN7N9qyHMl7wjtn8MiliBgfw-1kwgmfg1GUuhk,10772
37
37
  seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
38
  seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
39
- seleniumbase/core/browser_launcher.py,sha256=cSmw7jWCIcrEiJtxW-HP6F41sHtR4wh-ovl1EwVgu7o,250444
39
+ seleniumbase/core/browser_launcher.py,sha256=gaaqYK1UxYxsyh-3pzFVKR1_x1vEXHsfhMxA8QxR8Ng,250541
40
40
  seleniumbase/core/capabilities_parser.py,sha256=meIS2uHapTCq2ldfNAToC7r0cKmZDRXuYNKExM1GHDY,6038
41
41
  seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
42
42
  seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
@@ -67,14 +67,14 @@ seleniumbase/extensions/disable_csp.zip,sha256=5RvomXnm2PdivUVcxTV6jfvD8WhTEsQYH
67
67
  seleniumbase/extensions/recorder.zip,sha256=JEE_FVEvlS63cFQbVLEroIyPSS91nWCDL0MhjVrmIpk,11813
68
68
  seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
69
69
  seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- seleniumbase/fixtures/base_case.py,sha256=ENR8NXs-WVVl2CJHABwUyZikkxN3EF93Riv2ZQN3cno,741491
70
+ seleniumbase/fixtures/base_case.py,sha256=nnPUREzeNfpnOP9q1ZO--guOtHIm3efus4WRsw5E_NQ,742045
71
71
  seleniumbase/fixtures/constants.py,sha256=WMrItuNyKq3XVJ64NluLIRc4gJCxDw8K8qXED0b9S2w,13752
72
72
  seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
73
73
  seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
74
74
  seleniumbase/fixtures/js_utils.py,sha256=Ykt019DFP8S27o8Kai_ihT01qQWo3RqHUeljqOEUdFU,52247
75
75
  seleniumbase/fixtures/page_actions.py,sha256=zWjIYQmBuQMP25SiqIgM0UpaNTPHHHPkbmHB-shtdaU,73073
76
76
  seleniumbase/fixtures/page_utils.py,sha256=H1iV8f9vDyEy87DBntyiBXC_tg8HskcebUOAJVn0hxE,12160
77
- seleniumbase/fixtures/shared_utils.py,sha256=G6CsE-Adt-GfuZF-71jXWKSIQW7YZPx8FIM24pVd_yI,8368
77
+ seleniumbase/fixtures/shared_utils.py,sha256=HAjOSJQIGNG7wLbeBWAMy80x4l4stJjoxi-ZmHdzwMk,8702
78
78
  seleniumbase/fixtures/unittest_helper.py,sha256=sfZ92rZeBAn_sF_yQ3I6_I7h3lyU5-cV_UMegBNoEm8,1294
79
79
  seleniumbase/fixtures/words.py,sha256=FOA4mAYvl3EPVpBTvgvK6YwCL8BdlRCmed685kEe7Vg,7827
80
80
  seleniumbase/fixtures/xpath_to_css.py,sha256=lML56k656fElXJ4NJF07r35FjctrbgQkXUotNk7A-as,8876
@@ -119,7 +119,7 @@ seleniumbase/undetected/cdp_driver/__init__.py,sha256=Ga9alwuaZZy4_XOShc0HjgFnNq
119
119
  seleniumbase/undetected/cdp_driver/_contradict.py,sha256=lP4b0h5quAy573ETn_TBbYV889cL1AuPLVInpJ0ZkiU,3183
120
120
  seleniumbase/undetected/cdp_driver/browser.py,sha256=mVM36mFqA4ZnxBDQ5ily3dpIcZ33O5coG1boEcX4aLc,35640
121
121
  seleniumbase/undetected/cdp_driver/cdp_util.py,sha256=ku3Nq8yjC6kbvVV2PB149E-TxQIIvjHDFQI2wyi0HVs,25221
122
- seleniumbase/undetected/cdp_driver/config.py,sha256=biiJBqgGG2RZWyLhaKvsYhlrZ7_voyX4UOGyT_M28uw,13539
122
+ seleniumbase/undetected/cdp_driver/config.py,sha256=pjcGq0azNQpNb3XT2sTjxShLEmcIPdzTzB_mitu6GkM,13557
123
123
  seleniumbase/undetected/cdp_driver/connection.py,sha256=WgZ4QamXSdTzP4Xfgkn8mxv-JFivMG6hqbyHy2_LQlg,25717
124
124
  seleniumbase/undetected/cdp_driver/element.py,sha256=FIC6v7OmumLCT-_vIc3H4oju_oBbaLpWJUJIKm2c_q4,40467
125
125
  seleniumbase/undetected/cdp_driver/tab.py,sha256=t7Ucn0pmm7imwdCM-5KmIJNU2MCeMuIl6G3T2VMrbxU,53170
@@ -137,9 +137,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.bat,sha256=Ftq-GrAKRYH2ssDPr
137
137
  seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443QFK8PryBpDmKn5Gy0s4o0vDSM,106
138
138
  seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
140
- seleniumbase-4.41.12.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
141
- seleniumbase-4.41.12.dist-info/METADATA,sha256=qF2sUoB8uj3qMofromMhjITnhyNven3olEhz2j-9MSM,89313
142
- seleniumbase-4.41.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
143
- seleniumbase-4.41.12.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
- seleniumbase-4.41.12.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
- seleniumbase-4.41.12.dist-info/RECORD,,
140
+ seleniumbase-4.42.1.dist-info/licenses/LICENSE,sha256=BRblZsX7HyPUjQmYTiyWr_e9tzWvmR3R4SFclM2R3W0,1085
141
+ seleniumbase-4.42.1.dist-info/METADATA,sha256=KTI4f3tfgQDx5V1v7wzhY63IaQlGus1Nh7T-L-UvZLQ,89241
142
+ seleniumbase-4.42.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
143
+ seleniumbase-4.42.1.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
144
+ seleniumbase-4.42.1.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
145
+ seleniumbase-4.42.1.dist-info/RECORD,,