seleniumbase 4.40.2__tar.gz → 4.40.4__tar.gz

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.
Files changed (157) hide show
  1. {seleniumbase-4.40.2/seleniumbase.egg-info → seleniumbase-4.40.4}/PKG-INFO +3 -3
  2. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/requirements.txt +2 -2
  3. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/__version__.py +1 -1
  4. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/base_case.py +6 -3
  5. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/page_actions.py +13 -3
  6. {seleniumbase-4.40.2 → seleniumbase-4.40.4/seleniumbase.egg-info}/PKG-INFO +3 -3
  7. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase.egg-info/requires.txt +2 -2
  8. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/setup.py +2 -2
  9. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/.gitignore +0 -0
  10. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/LICENSE +0 -0
  11. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/MANIFEST.in +0 -0
  12. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/README.md +0 -0
  13. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/install.sh +0 -0
  14. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/pyproject.toml +0 -0
  15. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/pytest.ini +0 -0
  16. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/sbase/__init__.py +0 -0
  17. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/sbase/__main__.py +0 -0
  18. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/sbase/steps.py +0 -0
  19. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/__init__.py +0 -0
  20. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/__main__.py +0 -0
  21. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/behave/__init__.py +0 -0
  22. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/behave/behave_helper.py +0 -0
  23. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/behave/behave_sb.py +0 -0
  24. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/behave/steps.py +0 -0
  25. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/common/__init__.py +0 -0
  26. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/common/decorators.py +0 -0
  27. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/common/encryption.py +0 -0
  28. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/common/exceptions.py +0 -0
  29. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/common/obfuscate.py +0 -0
  30. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/common/unobfuscate.py +0 -0
  31. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/config/__init__.py +0 -0
  32. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/config/ad_block_list.py +0 -0
  33. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/config/proxy_list.py +0 -0
  34. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/config/settings.py +0 -0
  35. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/__init__.py +0 -0
  36. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/logo_helper.py +0 -0
  37. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/rich_helper.py +0 -0
  38. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/run.py +0 -0
  39. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  40. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  41. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_commander.py +0 -0
  42. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_install.py +0 -0
  43. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  44. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  45. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  46. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  47. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  48. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  49. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_print.py +0 -0
  50. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  51. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/__init__.py +0 -0
  52. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/application_manager.py +0 -0
  53. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/browser_launcher.py +0 -0
  54. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/capabilities_parser.py +0 -0
  55. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/colored_traceback.py +0 -0
  56. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/create_db_tables.sql +0 -0
  57. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/detect_b_ver.py +0 -0
  58. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/download_helper.py +0 -0
  59. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/encoded_images.py +0 -0
  60. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/jqc_helper.py +0 -0
  61. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/log_helper.py +0 -0
  62. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/mysql.py +0 -0
  63. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/proxy_helper.py +0 -0
  64. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/recorder_helper.py +0 -0
  65. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/report_helper.py +0 -0
  66. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/s3_manager.py +0 -0
  67. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/sb_cdp.py +0 -0
  68. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/sb_driver.py +0 -0
  69. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/session_helper.py +0 -0
  70. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/settings_parser.py +0 -0
  71. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/style_sheet.py +0 -0
  72. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/testcase_manager.py +0 -0
  73. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/tour_helper.py +0 -0
  74. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/core/visual_helper.py +0 -0
  75. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/drivers/__init__.py +0 -0
  76. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
  77. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
  78. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/extensions/__init__.py +0 -0
  79. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/extensions/ad_block.zip +0 -0
  80. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/extensions/disable_csp.zip +0 -0
  81. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/extensions/recorder.zip +0 -0
  82. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/extensions/sbase_ext.zip +0 -0
  83. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/__init__.py +0 -0
  84. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/constants.py +0 -0
  85. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  86. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/errors.py +0 -0
  87. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/js_utils.py +0 -0
  88. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/page_utils.py +0 -0
  89. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/shared_utils.py +0 -0
  90. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/unittest_helper.py +0 -0
  91. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/words.py +0 -0
  92. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  93. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/js_code/__init__.py +0 -0
  94. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/js_code/active_css_js.py +0 -0
  95. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/js_code/live_js.py +0 -0
  96. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/js_code/recorder_js.py +0 -0
  97. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/masterqa/__init__.py +0 -0
  98. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/masterqa/master_qa.py +0 -0
  99. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/__init__.py +0 -0
  100. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/base_plugin.py +0 -0
  101. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/basic_test_info.py +0 -0
  102. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  103. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/driver_manager.py +0 -0
  104. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/page_source.py +0 -0
  105. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/pytest_plugin.py +0 -0
  106. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  107. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/sb_manager.py +0 -0
  108. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/screen_shots.py +0 -0
  109. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/plugins/selenium_plugin.py +0 -0
  110. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/resources/__init__.py +0 -0
  111. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/__init__.py +0 -0
  112. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/chinese.py +0 -0
  113. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/dutch.py +0 -0
  114. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/french.py +0 -0
  115. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/italian.py +0 -0
  116. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/japanese.py +0 -0
  117. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/korean.py +0 -0
  118. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/master_dict.py +0 -0
  119. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/portuguese.py +0 -0
  120. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/russian.py +0 -0
  121. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/spanish.py +0 -0
  122. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/translate/translator.py +0 -0
  123. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/__init__.py +0 -0
  124. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp.py +0 -0
  125. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  126. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  127. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
  128. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
  129. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp_driver/config.py +0 -0
  130. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
  131. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp_driver/element.py +0 -0
  132. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
  133. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/dprocess.py +0 -0
  134. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/options.py +0 -0
  135. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/patcher.py +0 -0
  136. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/reactor.py +0 -0
  137. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/undetected/webelement.py +0 -0
  138. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/__init__.py +0 -0
  139. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  140. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  141. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  142. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  143. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  144. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  145. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  146. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  147. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  148. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  149. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  150. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  151. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  152. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase.egg-info/SOURCES.txt +0 -0
  153. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase.egg-info/dependency_links.txt +0 -0
  154. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase.egg-info/entry_points.txt +0 -0
  155. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/seleniumbase.egg-info/top_level.txt +0 -0
  156. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/setup.cfg +0 -0
  157. {seleniumbase-4.40.2 → seleniumbase-4.40.4}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.40.2
3
+ Version: 4.40.4
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.6.15
70
+ Requires-Dist: certifi>=2025.7.9
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"
@@ -91,7 +91,7 @@ Requires-Dist: pyyaml>=6.0.2
91
91
  Requires-Dist: pygments>=2.19.2
92
92
  Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
93
93
  Requires-Dist: tabcompleter>=1.4.0
94
- Requires-Dist: pdbp>=1.7.0
94
+ Requires-Dist: pdbp>=1.7.1
95
95
  Requires-Dist: idna==3.10
96
96
  Requires-Dist: chardet==5.2.0
97
97
  Requires-Dist: charset-normalizer<4,>=3.4.2
@@ -5,7 +5,7 @@ setuptools~=70.2;python_version<"3.10"
5
5
  setuptools>=80.9.0;python_version>="3.10"
6
6
  wheel>=0.45.1
7
7
  attrs>=25.3.0
8
- certifi>=2025.6.15
8
+ certifi>=2025.7.9
9
9
  exceptiongroup>=1.3.0
10
10
  websockets~=13.1;python_version<"3.9"
11
11
  websockets>=15.0.1;python_version>="3.9"
@@ -29,7 +29,7 @@ pyyaml>=6.0.2
29
29
  pygments>=2.19.2
30
30
  pyreadline3>=3.5.3;platform_system=="Windows"
31
31
  tabcompleter>=1.4.0
32
- pdbp>=1.7.0
32
+ pdbp>=1.7.1
33
33
  idna==3.10
34
34
  chardet==5.2.0
35
35
  charset-normalizer>=3.4.2,<4
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.40.2"
2
+ __version__ = "4.40.4"
@@ -3591,7 +3591,7 @@ class BaseCase(unittest.TestCase):
3591
3591
  self.set_window_rect(x, y, width, height)
3592
3592
  self.__demo_mode_pause_if_active(tiny=True)
3593
3593
 
3594
- def switch_to_frame(self, frame="iframe", timeout=None):
3594
+ def switch_to_frame(self, frame="iframe", timeout=None, invisible=False):
3595
3595
  """Wait for an iframe to appear, and switch to it. This should be
3596
3596
  usable as a drop-in replacement for driver.switch_to.frame().
3597
3597
  The iframe identifier can be a selector, an index, an id, a name,
@@ -3599,7 +3599,8 @@ class BaseCase(unittest.TestCase):
3599
3599
  for visible iframes with a string selector.
3600
3600
  @Params
3601
3601
  frame - the frame element, name, id, index, or selector
3602
- timeout - the time to wait for the alert in seconds """
3602
+ timeout - the time to wait for the alert in seconds
3603
+ invisible - if True, the iframe can be invisible """
3603
3604
  self.__check_scope()
3604
3605
  if not timeout:
3605
3606
  timeout = settings.LARGE_TIMEOUT
@@ -3649,7 +3650,9 @@ class BaseCase(unittest.TestCase):
3649
3650
  time.sleep(0.035)
3650
3651
  if self.undetectable:
3651
3652
  time.sleep(0.035)
3652
- page_actions.switch_to_frame(self.driver, frame, timeout)
3653
+ page_actions.switch_to_frame(
3654
+ self.driver, frame, timeout, invisible=invisible
3655
+ )
3653
3656
  self.wait_for_ready_state_complete()
3654
3657
  if self.__needs_minimum_wait():
3655
3658
  time.sleep(0.015)
@@ -1572,7 +1572,9 @@ def wait_for_and_switch_to_alert(driver, timeout=settings.LARGE_TIMEOUT):
1572
1572
  timeout_exception(Exception, message)
1573
1573
 
1574
1574
 
1575
- def switch_to_frame(driver, frame, timeout=settings.SMALL_TIMEOUT):
1575
+ def switch_to_frame(
1576
+ driver, frame, timeout=settings.SMALL_TIMEOUT, invisible=False
1577
+ ):
1576
1578
  """
1577
1579
  Wait for an iframe to appear, and switch to it. This should be
1578
1580
  usable as a drop-in replacement for driver.switch_to.frame().
@@ -1580,6 +1582,7 @@ def switch_to_frame(driver, frame, timeout=settings.SMALL_TIMEOUT):
1580
1582
  driver - the webdriver object (required)
1581
1583
  frame - the frame element, name, id, index, or selector
1582
1584
  timeout - the time to wait for the alert in seconds
1585
+ invisible - if True, the iframe can be invisible
1583
1586
  """
1584
1587
  _reconnect_if_disconnected(driver)
1585
1588
  start_ms = time.time() * 1000.0
@@ -1596,7 +1599,10 @@ def switch_to_frame(driver, frame, timeout=settings.SMALL_TIMEOUT):
1596
1599
  by = "xpath"
1597
1600
  else:
1598
1601
  by = "css selector"
1599
- if is_element_visible(driver, frame, by=by):
1602
+ if (
1603
+ is_element_visible(driver, frame, by=by)
1604
+ or (invisible and is_element_present(driver, frame, by=by))
1605
+ ):
1600
1606
  with suppress(Exception):
1601
1607
  element = driver.find_element(by=by, value=frame)
1602
1608
  driver.switch_to.frame(element)
@@ -1608,8 +1614,12 @@ def switch_to_frame(driver, frame, timeout=settings.SMALL_TIMEOUT):
1608
1614
  plural = "s"
1609
1615
  if timeout == 1:
1610
1616
  plural = ""
1611
- message = "Frame {%s} was not visible after %s second%s!" % (
1617
+ presence = "visible"
1618
+ if invisible:
1619
+ presence = "present"
1620
+ message = "Frame {%s} was not %s after %s second%s!" % (
1612
1621
  frame,
1622
+ presence,
1613
1623
  timeout,
1614
1624
  plural,
1615
1625
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.40.2
3
+ Version: 4.40.4
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.6.15
70
+ Requires-Dist: certifi>=2025.7.9
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"
@@ -91,7 +91,7 @@ Requires-Dist: pyyaml>=6.0.2
91
91
  Requires-Dist: pygments>=2.19.2
92
92
  Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
93
93
  Requires-Dist: tabcompleter>=1.4.0
94
- Requires-Dist: pdbp>=1.7.0
94
+ Requires-Dist: pdbp>=1.7.1
95
95
  Requires-Dist: idna==3.10
96
96
  Requires-Dist: chardet==5.2.0
97
97
  Requires-Dist: charset-normalizer<4,>=3.4.2
@@ -1,7 +1,7 @@
1
1
  packaging>=25.0
2
2
  wheel>=0.45.1
3
3
  attrs>=25.3.0
4
- certifi>=2025.6.15
4
+ certifi>=2025.7.9
5
5
  exceptiongroup>=1.3.0
6
6
  fasteners>=0.19
7
7
  mycdp>=1.2.0
@@ -16,7 +16,7 @@ colorama>=0.4.6
16
16
  pyyaml>=6.0.2
17
17
  pygments>=2.19.2
18
18
  tabcompleter>=1.4.0
19
- pdbp>=1.7.0
19
+ pdbp>=1.7.1
20
20
  idna==3.10
21
21
  chardet==5.2.0
22
22
  charset-normalizer<4,>=3.4.2
@@ -153,7 +153,7 @@ setup(
153
153
  'setuptools>=80.9.0;python_version>="3.10"',
154
154
  'wheel>=0.45.1',
155
155
  'attrs>=25.3.0',
156
- "certifi>=2025.6.15",
156
+ "certifi>=2025.7.9",
157
157
  "exceptiongroup>=1.3.0",
158
158
  'websockets~=13.1;python_version<"3.9"',
159
159
  'websockets>=15.0.1;python_version>="3.9"',
@@ -177,7 +177,7 @@ setup(
177
177
  'pygments>=2.19.2',
178
178
  'pyreadline3>=3.5.3;platform_system=="Windows"',
179
179
  "tabcompleter>=1.4.0",
180
- "pdbp>=1.7.0",
180
+ "pdbp>=1.7.1",
181
181
  "idna==3.10",
182
182
  'chardet==5.2.0',
183
183
  'charset-normalizer>=3.4.2,<4',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes