seleniumbase 4.33.9__py3-none-any.whl → 4.33.11__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.33.9"
2
+ __version__ = "4.33.11"
@@ -2407,8 +2407,6 @@ def _set_firefox_options(
2407
2407
  options.set_preference("dom.webnotifications.enabled", False)
2408
2408
  options.set_preference("dom.disable_beforeunload", True)
2409
2409
  options.set_preference("browser.contentblocking.database.enabled", True)
2410
- options.set_preference("extensions.allowPrivateBrowsingByDefault", True)
2411
- options.set_preference("extensions.PrivateBrowsing.notification", False)
2412
2410
  options.set_preference("extensions.systemAddon.update.enabled", False)
2413
2411
  options.set_preference("extensions.update.autoUpdateDefault", False)
2414
2412
  options.set_preference("extensions.update.enabled", False)
@@ -519,7 +519,20 @@ class CDPMethods():
519
519
  try:
520
520
  return element.get_js_attributes()[attribute]
521
521
  except Exception:
522
- return None
522
+ if not attribute:
523
+ raise
524
+ try:
525
+ attribute_str = element.get_js_attributes()
526
+ locate = ' %s="' % attribute
527
+ if locate in attribute_str.outerHTML:
528
+ outer_html = attribute_str.outerHTML
529
+ attr_start = outer_html.find(locate) + len(locate)
530
+ attr_end = outer_html.find('"', attr_start)
531
+ value = outer_html[attr_start:attr_end]
532
+ return value
533
+ except Exception:
534
+ pass
535
+ return None
523
536
 
524
537
  def __get_x_scroll_offset(self):
525
538
  x_scroll_offset = self.loop.run_until_complete(
@@ -620,11 +633,12 @@ class CDPMethods():
620
633
 
621
634
  def click_if_visible(self, selector):
622
635
  if self.is_element_visible(selector):
623
- element = self.find_element(selector)
624
- element.scroll_into_view()
625
- element.click()
626
- self.__slow_mode_pause_if_set()
627
- self.loop.run_until_complete(self.page.wait())
636
+ with suppress(Exception):
637
+ element = self.find_element(selector, timeout=0)
638
+ element.scroll_into_view()
639
+ element.click()
640
+ self.__slow_mode_pause_if_set()
641
+ self.loop.run_until_complete(self.page.wait())
628
642
 
629
643
  def click_visible_elements(self, selector, limit=0):
630
644
  """Finds all matching page elements and clicks visible ones in order.
@@ -1094,7 +1108,14 @@ class CDPMethods():
1094
1108
  )
1095
1109
 
1096
1110
  def get_element_attribute(self, selector, attribute):
1097
- return self.get_element_attributes(selector)[attribute]
1111
+ attributes = self.get_element_attributes(selector)
1112
+ with suppress(Exception):
1113
+ return attributes[attribute]
1114
+ locate = ' %s="' % attribute
1115
+ value = self.get_attribute(selector, attribute)
1116
+ if not value and locate not in attributes:
1117
+ raise KeyError(attribute)
1118
+ return value
1098
1119
 
1099
1120
  def get_attribute(self, selector, attribute):
1100
1121
  return self.find_element(selector).get_attribute(attribute)
@@ -3416,6 +3416,14 @@ class BaseCase(unittest.TestCase):
3416
3416
  self.activate_jquery()
3417
3417
  return self.driver.execute_script(script, *args, **kwargs)
3418
3418
 
3419
+ def get_element_at_x_y(self, x, y):
3420
+ """Return element at current window's x,y coordinates."""
3421
+ self.__check_scope()
3422
+ self._check_browser()
3423
+ return self.execute_script(
3424
+ "return document.elementFromPoint(%s, %s);" % (x, y)
3425
+ )
3426
+
3419
3427
  def get_gui_element_rect(self, selector, by="css selector"):
3420
3428
  """Very similar to element.rect, but the x, y coordinates are
3421
3429
  relative to the entire screen, rather than the browser window.
@@ -31,12 +31,12 @@ class ContraDict(dict):
31
31
 
32
32
  def __init__(self, *args, **kwargs):
33
33
  super().__init__()
34
- silent = kwargs.pop("silent", False)
34
+ # silent = kwargs.pop("silent", False)
35
35
  _ = dict(*args, **kwargs)
36
36
 
37
37
  super().__setattr__("__dict__", self)
38
38
  for k, v in _.items():
39
- _check_key(k, self, False, silent)
39
+ _check_key(k, self, False, True)
40
40
  super().__setitem__(k, _wrap(self.__class__, v))
41
41
 
42
42
  def __setitem__(self, key, value):
@@ -90,7 +90,7 @@ _warning_names_message = """\n\
90
90
 
91
91
 
92
92
  def _check_key(
93
- key: str, mapping: _Mapping, boolean: bool = False, silent=False
93
+ key: str, mapping: _Mapping, boolean: bool = False, silent=True
94
94
  ):
95
95
  """Checks `key` and warns if needed.
96
96
  :param key:
@@ -10,6 +10,7 @@ import pathlib
10
10
  import pickle
11
11
  import re
12
12
  import shutil
13
+ import time
13
14
  import urllib.parse
14
15
  import urllib.request
15
16
  import warnings
@@ -30,8 +31,6 @@ def get_registered_instances():
30
31
 
31
32
 
32
33
  def deconstruct_browser():
33
- import time
34
-
35
34
  for _ in __registered__instances__:
36
35
  if not _.stopped:
37
36
  _.stop()
@@ -117,8 +116,13 @@ class Browser:
117
116
  port=port,
118
117
  **kwargs,
119
118
  )
120
- instance = cls(config)
121
- await instance.start()
119
+ try:
120
+ instance = cls(config)
121
+ await instance.start()
122
+ except Exception:
123
+ time.sleep(0.15)
124
+ instance = cls(config)
125
+ await instance.start()
122
126
  return instance
123
127
 
124
128
  def __init__(self, config: Config, **kwargs):
@@ -379,8 +383,6 @@ class Browser:
379
383
  --------------------------------
380
384
  Failed to connect to the browser
381
385
  --------------------------------
382
- Possibly because you are running as "root".
383
- If so, you may need to use no_sandbox=True.
384
386
  """
385
387
  )
386
388
  )
@@ -438,12 +438,15 @@ class Element:
438
438
  )
439
439
  )
440
440
  )
441
- if result and result[0]:
442
- if return_by_value:
443
- return result[0].value
444
- return result[0]
445
- elif result[1]:
446
- return result[1]
441
+ try:
442
+ if result and result[0]:
443
+ if return_by_value:
444
+ return result[0].value
445
+ return result[0]
446
+ elif result[1]:
447
+ return result[1]
448
+ except Exception:
449
+ return self
447
450
 
448
451
  async def get_position_async(self, abs=False) -> Position:
449
452
  if not self.parent or not self.object_id:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.33.9
3
+ Version: 4.33.11
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
@@ -65,7 +65,7 @@ Requires-Dist: setuptools~=70.2; python_version < "3.10"
65
65
  Requires-Dist: setuptools>=75.6.0; python_version >= "3.10"
66
66
  Requires-Dist: wheel>=0.45.1
67
67
  Requires-Dist: attrs>=24.2.0
68
- Requires-Dist: certifi>=2024.8.30
68
+ Requires-Dist: certifi>=2024.12.14
69
69
  Requires-Dist: exceptiongroup>=1.2.2
70
70
  Requires-Dist: websockets~=13.1; python_version < "3.9"
71
71
  Requires-Dist: websockets>=14.1; python_version >= "3.9"
@@ -236,21 +236,60 @@ Requires-Dist: zstandard==0.23.0; extra == "selenium-wire"
236
236
 
237
237
  📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/** folder](https://github.com/seleniumbase/SeleniumBase/tree/master/examples).
238
238
 
239
- 👤 Note that <span translate="no">SeleniumBase</span> <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md"><b>UC Mode</b> (Stealth Mode) has its own ReadMe</a>.
239
+ 🐙 Note that <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md"><b>UC Mode</b></a> and <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md"><b>CDP Mode</b></a> (Stealth Mode) have separate docs</a>.
240
240
 
241
- 🐙 Also note that Seleniumbase <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md"><b>CDP Mode</b> has its own separate ReadMe</a>.
241
+ ℹ️ Most scripts run with raw <code translate="no"><b>python</b></code>, although some scripts use <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a> that expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover, collect, and run tests automatically).
242
242
 
243
- ℹ️ Scripts can be called via <code translate="no"><b>python</b></code>, although some <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a> expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover, collect, and run tests automatically).
243
+ --------
244
244
 
245
- <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>, which tests login, shopping, and checkout:</p>
245
+ <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py">raw_google.py</a>, which performs a Google search:</p>
246
246
 
247
- ```bash
248
- pytest my_first_test.py
247
+ ```python
248
+ from seleniumbase import SB
249
+
250
+ with SB(test=True, ad_block=True, locale_code="en") as sb:
251
+ sb.open("https://google.com/ncr")
252
+ sb.type('[title="Search"]', "SeleniumBase GitHub page\n")
253
+ sb.click('[href*="github.com/seleniumbase/SeleniumBase"]')
254
+ sb.save_screenshot_to_logs() # (See ./latest_logs folder)
255
+ print(sb.get_page_title())
249
256
  ```
250
257
 
251
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
258
+ > `python raw_google.py`
252
259
 
253
- > ``pytest`` uses ``--chrome`` by default unless set differently.
260
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
261
+
262
+ --------
263
+
264
+ <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_get_swag.py">test_get_swag.py</a>, which tests a fake shopping site:</p>
265
+
266
+ ```python
267
+ from seleniumbase import BaseCase
268
+ BaseCase.main(__name__, __file__) # Call pytest
269
+
270
+ class MyTestClass(BaseCase):
271
+ def test_swag_labs(self):
272
+ self.open("https://www.saucedemo.com")
273
+ self.type("#user-name", "standard_user")
274
+ self.type("#password", "secret_sauce\n")
275
+ self.assert_element("div.inventory_list")
276
+ self.click('button[name*="backpack"]')
277
+ self.click("#shopping_cart_container a")
278
+ self.assert_text("Backpack", "div.cart_item")
279
+ self.click("button#checkout")
280
+ self.type("input#first-name", "SeleniumBase")
281
+ self.type("input#last-name", "Automation")
282
+ self.type("input#postal-code", "77123")
283
+ self.click("input#continue")
284
+ self.click("button#finish")
285
+ self.assert_text("Thank you for your order!")
286
+ ```
287
+
288
+ > `pytest test_get_swag.py`
289
+
290
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_get_swag.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
291
+
292
+ > (The default browser is ``--chrome`` if not set.)
254
293
 
255
294
  --------
256
295
 
@@ -344,7 +383,7 @@ With raw Selenium, that requires more code:<br />
344
383
 
345
384
  <p>📚 <b>Learn about different ways of writing tests:</b></p>
346
385
 
347
- <p align="left">📘📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_simple_login.py">test_simple_login.py</a>, which uses <code translate="no"><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/fixtures/base_case.py">BaseCase</a></code> class inheritance, and runs with <a href="https://docs.pytest.org/en/latest/how-to/usage.html">pytest</a> or <a href="https://github.com/mdmintz/pynose">pynose</a>. (Use <code translate="no">self.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p>
386
+ <p align="left">📗📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_simple_login.py">test_simple_login.py</a>, which uses <code translate="no"><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/fixtures/base_case.py">BaseCase</a></code> class inheritance, and runs with <a href="https://docs.pytest.org/en/latest/how-to/usage.html">pytest</a> or <a href="https://github.com/mdmintz/pynose">pynose</a>. (Use <code translate="no">self.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p>
348
387
 
349
388
  ```python
350
389
  from seleniumbase import BaseCase
@@ -363,22 +402,7 @@ class TestSimpleLogin(BaseCase):
363
402
  self.assert_text("signed out", "#top_message")
364
403
  ```
365
404
 
366
- <p align="left">📗📝 Here's a test from <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/sb_fixture_tests.py">sb_fixture_tests.py</a>, which uses the <b><code translate="no">sb</code></b> <code translate="no">pytest</code> fixture. Runs with <a href="https://docs.pytest.org/en/latest/how-to/usage.html">pytest</a>. (Use <code translate="no">sb.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p>
367
-
368
- ```python
369
- def test_sb_fixture_with_no_class(sb):
370
- sb.open("seleniumbase.io/simple/login")
371
- sb.type("#username", "demo_user")
372
- sb.type("#password", "secret_pass")
373
- sb.click('a:contains("Sign in")')
374
- sb.assert_exact_text("Welcome!", "h1")
375
- sb.assert_element("img#image1")
376
- sb.highlight("#image1")
377
- sb.click_link("Sign out")
378
- sb.assert_text("signed out", "#top_message")
379
- ```
380
-
381
- <p align="left">📙📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_login_sb.py">raw_login_sb.py</a>, which uses the <b><code translate="no">SB</code></b> Context Manager. Runs with pure <code translate="no">python</code>. (Use <code translate="no">sb.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p>
405
+ <p align="left">📘📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_login_sb.py">raw_login_sb.py</a>, which uses the <b><code translate="no">SB</code></b> Context Manager. Runs with pure <code translate="no">python</code>. (Use <code translate="no">sb.driver</code> to access Selenium's raw <code translate="no">driver</code>.)</p>
382
406
 
383
407
  ```python
384
408
  from seleniumbase import SB
@@ -395,24 +419,7 @@ with SB() as sb:
395
419
  sb.assert_text("signed out", "#top_message")
396
420
  ```
397
421
 
398
- <p align="left">📔📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_login_context.py">raw_login_context.py</a>, which uses the <b><code translate="no">DriverContext</code></b> Manager. Runs with pure <code translate="no">python</code>. (The <code translate="no">driver</code> is an improved version of Selenium's raw <code translate="no">driver</code>, with more methods.)</p>
399
-
400
- ```python
401
- from seleniumbase import DriverContext
402
-
403
- with DriverContext() as driver:
404
- driver.open("seleniumbase.io/simple/login")
405
- driver.type("#username", "demo_user")
406
- driver.type("#password", "secret_pass")
407
- driver.click('a:contains("Sign in")')
408
- driver.assert_exact_text("Welcome!", "h1")
409
- driver.assert_element("img#image1")
410
- driver.highlight("#image1")
411
- driver.click_link("Sign out")
412
- driver.assert_text("signed out", "#top_message")
413
- ```
414
-
415
- <p align="left">📔📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_login_driver.py">raw_login_driver.py</a>, which uses the <b><code translate="no">Driver</code></b> Manager. Runs with pure <code translate="no">python</code>. (The <code>driver</code> is an improved version of Selenium's raw <code translate="no">driver</code>, with more methods.)</p>
422
+ <p align="left">📙📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_login_driver.py">raw_login_driver.py</a>, which uses the <b><code translate="no">Driver</code></b> Manager. Runs with pure <code translate="no">python</code>. (The <code>driver</code> is an improved version of Selenium's raw <code translate="no">driver</code>, with more methods.)</p>
416
423
 
417
424
  ```python
418
425
  from seleniumbase import Driver
@@ -432,23 +439,6 @@ finally:
432
439
  driver.quit()
433
440
  ```
434
441
 
435
- <p align="left">📕📝 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/behave_bdd/features/login_app.feature">login_app.feature</a>, which uses <a translate="no" href="https://behave.readthedocs.io/en/stable/gherkin.html#features" target="_blank">behave-BDD Gherkin</a> syntax. Runs with <code translate="no">behave</code>. (<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/behave_bdd/ReadMe.md">Learn about the <b>SeleniumBase behave-BDD</b> integration</a>)</p>
436
-
437
- ```gherkin
438
- Feature: SeleniumBase scenarios for the Simple App
439
-
440
- Scenario: Verify the Simple App (Login / Logout)
441
- Given Open "seleniumbase.io/simple/login"
442
- And Type "demo_user" into "#username"
443
- And Type "secret_pass" into "#password"
444
- And Click 'a:contains("Sign in")'
445
- And Assert exact text "Welcome!" in "h1"
446
- And Assert element "img#image1"
447
- And Highlight "#image1"
448
- And Click link "Sign out"
449
- And Assert text "signed out" in "#top_message"
450
- ```
451
-
452
442
  --------
453
443
 
454
444
  <a id="python_installation"></a>
@@ -547,20 +537,21 @@ pip install -e .
547
537
  <summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary>
548
538
 
549
539
  ```bash
550
- *** chromedriver to download = 121.0.6167.85 (Latest Stable)
540
+ *** chromedriver to download = 131.0.6778.108 (Latest Stable)
551
541
 
552
542
  Downloading chromedriver-mac-arm64.zip from:
553
- https://storage.googleapis.com/chrome-for-testing-public/121.0.6167.85/mac-arm64/chromedriver-mac-arm64.zip ...
543
+ https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.108/mac-arm64/chromedriver-mac-arm64.zip ...
554
544
  Download Complete!
555
545
 
556
546
  Extracting ['chromedriver'] from chromedriver-mac-arm64.zip ...
557
547
  Unzip Complete!
558
548
 
559
549
  The file [chromedriver] was saved to:
560
- /Users/michael/github/SeleniumBase/seleniumbase/drivers/chromedriver
550
+ ~/github/SeleniumBase/seleniumbase/drivers/
551
+ chromedriver
561
552
 
562
- Making [chromedriver 121.0.6167.85] executable ...
563
- [chromedriver 121.0.6167.85] is now ready for use!
553
+ Making [chromedriver 131.0.6778.108] executable ...
554
+ [chromedriver 131.0.6778.108] is now ready for use!
564
555
  ```
565
556
 
566
557
  </details>
@@ -580,7 +571,7 @@ pytest my_first_test.py
580
571
 
581
572
  <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
582
573
 
583
- <p align="left"><b>Here's the code for <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</b></p>
574
+ <p align="left"><b>Here's the full code for <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</b></p>
584
575
 
585
576
  ```python
586
577
  from seleniumbase import BaseCase
@@ -3,7 +3,7 @@ sbase/__main__.py,sha256=G0bVB1-DM4PGwQ1KyOupaWCs4ePbChZNNWuX2htim5U,647
3
3
  sbase/steps.py,sha256=_WvAjydKqZfTdnZW9LPKkRty-g-lfdUPmLqnZj6ulcs,43013
4
4
  seleniumbase/__init__.py,sha256=OtJh8nGKL4xtZpw8KPqmn7Q6R-86t4cWUDyVF5MbMTo,2398
5
5
  seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
6
- seleniumbase/__version__.py,sha256=GMboHPCu6gSyY9eX_O3aXtEMziJZxOjCp0x23YIYBQo,46
6
+ seleniumbase/__version__.py,sha256=S1DbyhxNhK6WB7lAkTdc62vKiXt-79j5ugmqsX5eI6A,47
7
7
  seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
9
9
  seleniumbase/behave/behave_sb.py,sha256=-hza7Nx2U41mSObYiPMi48v3JlPh3sJO3yzP0kqZ1Gk,59174
@@ -36,7 +36,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=tNy-bMDgwHJO3bZxMpmo9weSE8uhbH0C
36
36
  seleniumbase/console_scripts/sb_recorder.py,sha256=fnHb5-kh11Hit-E9Ha-e4QXzqLcZvtij6mb5qNd4B1Q,11032
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=FSnNzrnE52lXvpLToDRm2Isr4280xf7Vax_L_oTgDuY,224640
39
+ seleniumbase/core/browser_launcher.py,sha256=nQ8-5dvNU4Uy5lSTgnwB2nFAemS43PqJhHccdvdGJ94,224486
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
@@ -50,7 +50,7 @@ seleniumbase/core/proxy_helper.py,sha256=kZnfkflB3XhuL2h-3inmx3UOLS8VAZ385BGCc4H
50
50
  seleniumbase/core/recorder_helper.py,sha256=fNGjbapXmEsht54x1o6Igk198QdnPxDDnjUOzQxNhNQ,25055
51
51
  seleniumbase/core/report_helper.py,sha256=AIl6Qava2yW1uSzbLpJBlPlYDz0KE-rVhogh8hsGWBo,12201
52
52
  seleniumbase/core/s3_manager.py,sha256=bkeI8I4y19ebWuQG1oEZV5qJbotC6eN8vin31OCNWJk,3521
53
- seleniumbase/core/sb_cdp.py,sha256=UB6pDr9qIMq1ExIxtfMRzQe6CZ-fnS1JNLiS2QvYfdk,73720
53
+ seleniumbase/core/sb_cdp.py,sha256=hxMc1BB0vLftcGR70kdwCFt98jmVUhj2vKj5ZusNYQs,74622
54
54
  seleniumbase/core/sb_driver.py,sha256=NGa4adi8OAi2WFtFkEguXg3JCd1p-JuZweIpGNifEfU,13488
55
55
  seleniumbase/core/session_helper.py,sha256=s9zD3PVZEWVzG2h81cCUskbNWLfdjC_LwwQjKptHCak,558
56
56
  seleniumbase/core/settings_parser.py,sha256=gqVohHVlE_5L5Cqe2L24uYrRzvoK-saX8E_Df7_-_3I,7609
@@ -65,7 +65,7 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1
65
65
  seleniumbase/extensions/recorder.zip,sha256=OOyzF-Ize2cSRu1CqhzSAq5vusI9hqLLd2OIApUHesI,11918
66
66
  seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
67
67
  seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- seleniumbase/fixtures/base_case.py,sha256=DY-UpQRyfl8ZzA-D-5cKJKwm2kAXeE7L06rgMRDz3Xw,718513
68
+ seleniumbase/fixtures/base_case.py,sha256=Aj3MoG1Q_CTaCSGkhyOIEuRcfogBf-zYYsethFmyKcU,718790
69
69
  seleniumbase/fixtures/constants.py,sha256=e1LppavlrAcI4XBJMq7u5j8SffaQ7SPQps1y0YvZYfY,13649
70
70
  seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
71
71
  seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
@@ -114,12 +114,12 @@ seleniumbase/undetected/patcher.py,sha256=n9WfKznr4cQvaE5Gcx7iyK27zMWIc8KdI69_m8
114
114
  seleniumbase/undetected/reactor.py,sha256=NropaXcO54pzmDq6quR27qPJxab6636H7LRAaq-o0ng,2859
115
115
  seleniumbase/undetected/webelement.py,sha256=_s6evgUkdWJpwOnzX4qR9i796PoVbz3txlzHlOBJ4BE,1370
116
116
  seleniumbase/undetected/cdp_driver/__init__.py,sha256=c0TjMwPfVFyoqYOJ7PQ-Jln_L_dpN3ebHyaD-juQoM0,64
117
- seleniumbase/undetected/cdp_driver/_contradict.py,sha256=6thDYeoEGiC7Q3tXLgoD_AhxecCFnATzBSjNympyRHA,3184
118
- seleniumbase/undetected/cdp_driver/browser.py,sha256=n8GYspU7b0pfBT4AqhqY6IdGVOZ1FC4wJ5emIOl-khQ,30129
117
+ seleniumbase/undetected/cdp_driver/_contradict.py,sha256=lP4b0h5quAy573ETn_TBbYV889cL1AuPLVInpJ0ZkiU,3183
118
+ seleniumbase/undetected/cdp_driver/browser.py,sha256=quD0e2aoehXQrs9zxGsobF0kZY11gmJ58Q_JQhheQYg,30144
119
119
  seleniumbase/undetected/cdp_driver/cdp_util.py,sha256=YhtD2Tm6PLIy9VKbgk8lHdGniS3mObyX4yAC1aG0TgQ,16733
120
120
  seleniumbase/undetected/cdp_driver/config.py,sha256=oHFJ3UH0OmLmEGgG5S6SZwbyBs9ZYMsbUJ02QCA7iZc,12044
121
121
  seleniumbase/undetected/cdp_driver/connection.py,sha256=sOTUGjbUqKA2hPvDcRCdqw1VQjVGJs7mbgVvzS7ldtE,23360
122
- seleniumbase/undetected/cdp_driver/element.py,sha256=LMnHQO-n0DvBo3Fb5G6X8cOaAvqxHgTZj8JHCTfWZjQ,40377
122
+ seleniumbase/undetected/cdp_driver/element.py,sha256=FIC6v7OmumLCT-_vIc3H4oju_oBbaLpWJUJIKm2c_q4,40467
123
123
  seleniumbase/undetected/cdp_driver/tab.py,sha256=cmSUg9fRnIVYgeqs-t8Tcg1FrSVIrM5IBQmCMzvl4OQ,50678
124
124
  seleniumbase/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
125
  seleniumbase/utilities/selenium_grid/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -135,9 +135,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.bat,sha256=Ftq-GrAKRYH2ssDPr
135
135
  seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443QFK8PryBpDmKn5Gy0s4o0vDSM,106
136
136
  seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
137
  seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
138
- seleniumbase-4.33.9.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
139
- seleniumbase-4.33.9.dist-info/METADATA,sha256=cjZQgqFZM5v2JHJhH5_69a99phccxOgf6B8ofQm8WtM,86528
140
- seleniumbase-4.33.9.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
141
- seleniumbase-4.33.9.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
142
- seleniumbase-4.33.9.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
143
- seleniumbase-4.33.9.dist-info/RECORD,,
138
+ seleniumbase-4.33.11.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
139
+ seleniumbase-4.33.11.dist-info/METADATA,sha256=DNryNKlBpGpVUrHMTxnc6i6lVMpIda8h0I8rGTqAs1w,85294
140
+ seleniumbase-4.33.11.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
141
+ seleniumbase-4.33.11.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
142
+ seleniumbase-4.33.11.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
143
+ seleniumbase-4.33.11.dist-info/RECORD,,