seleniumbase 4.42.3__tar.gz → 4.42.5__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.42.3/seleniumbase.egg-info → seleniumbase-4.42.5}/PKG-INFO +11 -8
  2. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/requirements.txt +10 -7
  3. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/__version__.py +1 -1
  4. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/browser_launcher.py +8 -2
  5. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/sb_cdp.py +99 -1
  6. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/base_case.py +8 -2
  7. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/js_utils.py +12 -3
  8. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/cdp_util.py +2 -0
  9. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/config.py +1 -0
  10. {seleniumbase-4.42.3 → seleniumbase-4.42.5/seleniumbase.egg-info}/PKG-INFO +11 -8
  11. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase.egg-info/requires.txt +10 -7
  12. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/setup.py +10 -7
  13. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/.gitignore +0 -0
  14. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/LICENSE +0 -0
  15. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/MANIFEST.in +0 -0
  16. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/README.md +0 -0
  17. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/install.sh +0 -0
  18. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/pyproject.toml +0 -0
  19. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/pytest.ini +0 -0
  20. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/sbase/__init__.py +0 -0
  21. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/sbase/__main__.py +0 -0
  22. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/sbase/steps.py +0 -0
  23. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/__init__.py +0 -0
  24. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/__main__.py +0 -0
  25. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/behave/__init__.py +0 -0
  26. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/behave/behave_helper.py +0 -0
  27. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/behave/behave_sb.py +0 -0
  28. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/behave/steps.py +0 -0
  29. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/common/__init__.py +0 -0
  30. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/common/decorators.py +0 -0
  31. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/common/encryption.py +0 -0
  32. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/common/exceptions.py +0 -0
  33. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/common/obfuscate.py +0 -0
  34. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/common/unobfuscate.py +0 -0
  35. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/config/__init__.py +0 -0
  36. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/config/ad_block_list.py +0 -0
  37. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/config/proxy_list.py +0 -0
  38. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/config/settings.py +0 -0
  39. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/__init__.py +0 -0
  40. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/logo_helper.py +0 -0
  41. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/rich_helper.py +0 -0
  42. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/run.py +0 -0
  43. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  44. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  45. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_commander.py +0 -0
  46. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_install.py +0 -0
  47. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  48. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  49. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  50. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  51. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  52. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  53. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_print.py +0 -0
  54. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  55. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/__init__.py +0 -0
  56. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/application_manager.py +0 -0
  57. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/capabilities_parser.py +0 -0
  58. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/colored_traceback.py +0 -0
  59. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/create_db_tables.sql +0 -0
  60. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/detect_b_ver.py +0 -0
  61. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/download_helper.py +0 -0
  62. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/encoded_images.py +0 -0
  63. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/jqc_helper.py +0 -0
  64. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/log_helper.py +0 -0
  65. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/mysql.py +0 -0
  66. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/proxy_helper.py +0 -0
  67. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/recorder_helper.py +0 -0
  68. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/report_helper.py +0 -0
  69. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/s3_manager.py +0 -0
  70. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/sb_driver.py +0 -0
  71. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/session_helper.py +0 -0
  72. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/settings_parser.py +0 -0
  73. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/style_sheet.py +0 -0
  74. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/testcase_manager.py +0 -0
  75. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/tour_helper.py +0 -0
  76. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/core/visual_helper.py +0 -0
  77. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/drivers/__init__.py +0 -0
  78. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
  79. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
  80. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/extensions/__init__.py +0 -0
  81. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/extensions/ad_block.zip +0 -0
  82. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/extensions/disable_csp.zip +0 -0
  83. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/extensions/recorder.zip +0 -0
  84. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/extensions/sbase_ext.zip +0 -0
  85. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/__init__.py +0 -0
  86. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/constants.py +0 -0
  87. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  88. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/errors.py +0 -0
  89. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/page_actions.py +1 -1
  90. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/page_utils.py +0 -0
  91. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/shared_utils.py +0 -0
  92. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/unittest_helper.py +0 -0
  93. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/words.py +0 -0
  94. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  95. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/js_code/__init__.py +0 -0
  96. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/js_code/active_css_js.py +0 -0
  97. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/js_code/live_js.py +0 -0
  98. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/js_code/recorder_js.py +0 -0
  99. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/masterqa/__init__.py +0 -0
  100. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/masterqa/master_qa.py +0 -0
  101. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/__init__.py +0 -0
  102. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/base_plugin.py +0 -0
  103. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/basic_test_info.py +0 -0
  104. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  105. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/driver_manager.py +0 -0
  106. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/page_source.py +0 -0
  107. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/pytest_plugin.py +0 -0
  108. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  109. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/sb_manager.py +0 -0
  110. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/screen_shots.py +0 -0
  111. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/plugins/selenium_plugin.py +0 -0
  112. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/resources/__init__.py +0 -0
  113. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/__init__.py +0 -0
  114. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/chinese.py +0 -0
  115. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/dutch.py +0 -0
  116. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/french.py +0 -0
  117. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/italian.py +0 -0
  118. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/japanese.py +0 -0
  119. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/korean.py +0 -0
  120. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/master_dict.py +0 -0
  121. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/portuguese.py +0 -0
  122. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/russian.py +0 -0
  123. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/spanish.py +0 -0
  124. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/translate/translator.py +0 -0
  125. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/__init__.py +0 -0
  126. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp.py +0 -0
  127. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  128. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  129. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
  130. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
  131. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/element.py +0 -0
  132. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
  133. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/dprocess.py +0 -0
  134. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/options.py +0 -0
  135. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/patcher.py +0 -0
  136. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/reactor.py +0 -0
  137. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/undetected/webelement.py +0 -0
  138. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/__init__.py +0 -0
  139. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  140. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  141. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  142. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  143. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  144. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  145. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  146. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  147. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  148. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  149. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  150. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  151. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  152. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase.egg-info/SOURCES.txt +0 -0
  153. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase.egg-info/dependency_links.txt +0 -0
  154. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase.egg-info/entry_points.txt +0 -0
  155. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/seleniumbase.egg-info/top_level.txt +0 -0
  156. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/setup.cfg +0 -0
  157. {seleniumbase-4.42.3 → seleniumbase-4.42.5}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.42.3
3
+ Version: 4.42.5
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
@@ -72,12 +72,14 @@ 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"
74
74
  Requires-Dist: filelock~=3.16.1; python_version < "3.9"
75
- Requires-Dist: filelock>=3.19.1; python_version >= "3.9"
75
+ Requires-Dist: filelock~=3.19.1; python_version >= "3.9" and python_version < "3.10"
76
+ Requires-Dist: filelock>=3.20.0; python_version >= "3.10"
76
77
  Requires-Dist: fasteners>=0.20
77
- Requires-Dist: mycdp>=1.2.0
78
+ Requires-Dist: mycdp>=1.2.1
78
79
  Requires-Dist: pynose>=1.5.5
79
- Requires-Dist: platformdirs>=4.3.6; python_version < "3.9"
80
- Requires-Dist: platformdirs>=4.4.0; python_version >= "3.9"
80
+ Requires-Dist: platformdirs~=4.3.6; python_version < "3.9"
81
+ Requires-Dist: platformdirs~=4.4.0; python_version >= "3.9" and python_version < "3.10"
82
+ Requires-Dist: platformdirs>=4.5.0; python_version >= "3.10"
81
83
  Requires-Dist: typing-extensions~=4.13.2; python_version < "3.9"
82
84
  Requires-Dist: typing-extensions>=4.15.0; python_version >= "3.9"
83
85
  Requires-Dist: sbvirtualdisplay>=1.4.0
@@ -90,7 +92,7 @@ Requires-Dist: parse-type>=0.6.6
90
92
  Requires-Dist: colorama>=0.4.6
91
93
  Requires-Dist: pyyaml>=6.0.3
92
94
  Requires-Dist: pygments>=2.19.2
93
- Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
95
+ Requires-Dist: pyreadline3>=3.5.4; platform_system == "Windows"
94
96
  Requires-Dist: tabcompleter>=1.4.0
95
97
  Requires-Dist: pdbp>=1.7.1
96
98
  Requires-Dist: idna==3.10
@@ -125,7 +127,8 @@ Requires-Dist: pytest-html==4.0.2
125
127
  Requires-Dist: pytest-metadata==3.1.1
126
128
  Requires-Dist: pytest-ordering==0.6
127
129
  Requires-Dist: pytest-rerunfailures==14.0; python_version < "3.9"
128
- Requires-Dist: pytest-rerunfailures==16.0.1; python_version >= "3.9"
130
+ Requires-Dist: pytest-rerunfailures==16.0.1; python_version >= "3.9" and python_version < "3.10"
131
+ Requires-Dist: pytest-rerunfailures==16.1; python_version >= "3.10"
129
132
  Requires-Dist: pytest-xdist==3.6.1; python_version < "3.9"
130
133
  Requires-Dist: pytest-xdist==3.8.0; python_version >= "3.9"
131
134
  Requires-Dist: parameterized==0.9.0
@@ -139,7 +142,7 @@ Requires-Dist: PyAutoGUI>=0.9.54; platform_system == "Linux"
139
142
  Requires-Dist: markdown-it-py==3.0.0; python_version < "3.10"
140
143
  Requires-Dist: markdown-it-py==4.0.0; python_version >= "3.10"
141
144
  Requires-Dist: mdurl==0.1.2
142
- Requires-Dist: rich<15,>=14.1.0
145
+ Requires-Dist: rich<15,>=14.2.0
143
146
  Provides-Extra: allure
144
147
  Requires-Dist: allure-pytest>=2.13.5; extra == "allure"
145
148
  Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
@@ -11,12 +11,14 @@ exceptiongroup>=1.3.0
11
11
  websockets~=13.1;python_version<"3.9"
12
12
  websockets>=15.0.1;python_version>="3.9"
13
13
  filelock~=3.16.1;python_version<"3.9"
14
- filelock>=3.19.1;python_version>="3.9"
14
+ filelock~=3.19.1;python_version>="3.9" and python_version<"3.10"
15
+ filelock>=3.20.0;python_version>="3.10"
15
16
  fasteners>=0.20
16
- mycdp>=1.2.0
17
+ mycdp>=1.2.1
17
18
  pynose>=1.5.5
18
- platformdirs>=4.3.6;python_version<"3.9"
19
- platformdirs>=4.4.0;python_version>="3.9"
19
+ platformdirs~=4.3.6;python_version<"3.9"
20
+ platformdirs~=4.4.0;python_version>="3.9" and python_version<"3.10"
21
+ platformdirs>=4.5.0;python_version>="3.10"
20
22
  typing-extensions~=4.13.2;python_version<"3.9"
21
23
  typing-extensions>=4.15.0;python_version>="3.9"
22
24
  sbvirtualdisplay>=1.4.0
@@ -29,7 +31,7 @@ parse-type>=0.6.6
29
31
  colorama>=0.4.6
30
32
  pyyaml>=6.0.3
31
33
  pygments>=2.19.2
32
- pyreadline3>=3.5.3;platform_system=="Windows"
34
+ pyreadline3>=3.5.4;platform_system=="Windows"
33
35
  tabcompleter>=1.4.0
34
36
  pdbp>=1.7.1
35
37
  idna==3.10
@@ -64,7 +66,8 @@ pytest-html==4.0.2
64
66
  pytest-metadata==3.1.1
65
67
  pytest-ordering==0.6
66
68
  pytest-rerunfailures==14.0;python_version<"3.9"
67
- pytest-rerunfailures==16.0.1;python_version>="3.9"
69
+ pytest-rerunfailures==16.0.1;python_version>="3.9" and python_version<"3.10"
70
+ pytest-rerunfailures==16.1;python_version>="3.10"
68
71
  pytest-xdist==3.6.1;python_version<"3.9"
69
72
  pytest-xdist==3.8.0;python_version>="3.9"
70
73
  parameterized==0.9.0
@@ -78,7 +81,7 @@ PyAutoGUI>=0.9.54;platform_system=="Linux"
78
81
  markdown-it-py==3.0.0;python_version<"3.10"
79
82
  markdown-it-py==4.0.0;python_version>="3.10"
80
83
  mdurl==0.1.2
81
- rich>=14.1.0,<15
84
+ rich>=14.2.0,<15
82
85
 
83
86
  # --- Testing Requirements --- #
84
87
  # ("pip install -r requirements.txt" also installs this, but "pip install -e ." won't.)
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.42.3"
2
+ __version__ = "4.42.5"
@@ -756,12 +756,16 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
756
756
  cdp.set_value = CDPM.set_value
757
757
  cdp.submit = CDPM.submit
758
758
  cdp.evaluate = CDPM.evaluate
759
+ cdp.execute_script = CDPM.execute_script
759
760
  cdp.js_dumps = CDPM.js_dumps
760
761
  cdp.maximize = CDPM.maximize
761
762
  cdp.minimize = CDPM.minimize
762
763
  cdp.medimize = CDPM.medimize
763
764
  cdp.set_window_rect = CDPM.set_window_rect
764
765
  cdp.reset_window_size = CDPM.reset_window_size
766
+ cdp.activate_messenger = CDPM.activate_messenger
767
+ cdp.set_messenger_theme = CDPM.set_messenger_theme
768
+ cdp.post_message = CDPM.post_message
765
769
  cdp.set_locale = CDPM.set_locale
766
770
  cdp.set_local_storage_item = CDPM.set_local_storage_item
767
771
  cdp.set_session_storage_item = CDPM.set_session_storage_item
@@ -877,6 +881,8 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
877
881
  cdp.scroll_to_bottom = CDPM.scroll_to_bottom
878
882
  cdp.scroll_up = CDPM.scroll_up
879
883
  cdp.scroll_down = CDPM.scroll_down
884
+ cdp.save_page_source = CDPM.save_page_source
885
+ cdp.save_as_html = CDPM.save_as_html
880
886
  cdp.save_screenshot = CDPM.save_screenshot
881
887
  cdp.print_to_pdf = CDPM.print_to_pdf
882
888
  cdp.save_as_pdf = CDPM.save_as_pdf
@@ -4317,8 +4323,8 @@ def get_local_driver(
4317
4323
  sys.argv = sys_args # Put back the original sys args
4318
4324
 
4319
4325
  # For Microsoft Edge (Chromium) version 80 or higher
4320
- Edge = webdriver.edge.webdriver.WebDriver
4321
- EdgeOptions = webdriver.edge.webdriver.Options
4326
+ Edge = webdriver.Edge
4327
+ EdgeOptions = webdriver.EdgeOptions
4322
4328
  if local_edgedriver and os.path.exists(local_edgedriver):
4323
4329
  try:
4324
4330
  make_driver_executable_if_not(local_edgedriver)
@@ -1024,6 +1024,9 @@ class CDPMethods():
1024
1024
  ).strip()
1025
1025
  return self.loop.run_until_complete(self.page.evaluate(expression))
1026
1026
 
1027
+ def execute_script(self, expression):
1028
+ return self.evaluate(expression)
1029
+
1027
1030
  def js_dumps(self, obj_name):
1028
1031
  """Similar to evaluate(), but for dictionary results."""
1029
1032
  if obj_name.startswith("return "):
@@ -1407,6 +1410,64 @@ class CDPMethods():
1407
1410
  mfa_code = self.get_mfa_code(totp_key)
1408
1411
  self.type(selector, mfa_code + "\n", timeout=timeout)
1409
1412
 
1413
+ def activate_messenger(self):
1414
+ js_utils.activate_messenger(self)
1415
+ self.__add_light_pause()
1416
+
1417
+ def set_messenger_theme(
1418
+ self, theme="default", location="default", max_messages="default"
1419
+ ):
1420
+ """Sets a theme for posting messages.
1421
+ Themes: ["flat", "future", "block", "air", "ice"]
1422
+ Locations: ["top_left", "top_center", "top_right",
1423
+ "bottom_left", "bottom_center", "bottom_right"]
1424
+ max_messages: The limit of concurrent messages to display."""
1425
+ if not theme:
1426
+ theme = "default" # "flat"
1427
+ if not location:
1428
+ location = "default" # "bottom_right"
1429
+ if not max_messages:
1430
+ max_messages = "default" # "8"
1431
+ else:
1432
+ max_messages = str(max_messages) # Value must be in string format
1433
+ js_utils.set_messenger_theme(
1434
+ self,
1435
+ theme=theme,
1436
+ location=location,
1437
+ max_messages=max_messages,
1438
+ )
1439
+ self.__add_light_pause()
1440
+
1441
+ def post_message(self, message, duration=None, pause=True, style="info"):
1442
+ """Post a message on the screen with Messenger.
1443
+ Arguments:
1444
+ message: The message to display.
1445
+ duration: The time until the message vanishes. (Default: 2.55s)
1446
+ pause: If True, the program waits until the message completes.
1447
+ style: "info", "success", or "error"."""
1448
+ driver = self.driver
1449
+ if hasattr(driver, "cdp_base"):
1450
+ driver = driver.cdp_base
1451
+ if style not in ["info", "success", "error"]:
1452
+ style = "info"
1453
+ if not duration:
1454
+ duration = settings.DEFAULT_MESSAGE_DURATION
1455
+ if (
1456
+ (
1457
+ driver.config.headless
1458
+ or (hasattr(sb_config, "xvfb") and sb_config.xvfb)
1459
+ )
1460
+ and float(duration) > 0.75
1461
+ ):
1462
+ duration = 0.75
1463
+ try:
1464
+ js_utils.post_message(self, message, duration, style=style)
1465
+ except Exception:
1466
+ print(" * %s message: %s" % (style.upper(), message))
1467
+ if pause:
1468
+ duration = float(duration) + 0.15
1469
+ time.sleep(float(duration))
1470
+
1410
1471
  def set_locale(self, locale):
1411
1472
  """(Settings will take effect on the next page load)"""
1412
1473
  self.loop.run_until_complete(self.page.set_locale(locale))
@@ -1510,7 +1571,10 @@ class CDPMethods():
1510
1571
  except Exception:
1511
1572
  if (
1512
1573
  shared_utils.is_linux()
1513
- and (not sb_config.headed or sb_config.xvfb)
1574
+ and (
1575
+ not sb_config.headed
1576
+ or (hasattr(sb_config, "xvfb") and sb_config.xvfb)
1577
+ )
1514
1578
  and not driver.config.headless
1515
1579
  and (
1516
1580
  not hasattr(sb_config, "_virtual_display")
@@ -2611,6 +2675,40 @@ class CDPMethods():
2611
2675
  self.loop.run_until_complete(self.page.scroll_down(amount))
2612
2676
  self.loop.run_until_complete(self.page.wait())
2613
2677
 
2678
+ def save_page_source(self, name, folder=None):
2679
+ import codecs
2680
+ from seleniumbase.core import log_helper
2681
+ if not name.endswith(".html"):
2682
+ name = name + ".html"
2683
+ if folder:
2684
+ abs_path = os.path.abspath(".")
2685
+ file_path = os.path.join(abs_path, folder)
2686
+ if not os.path.exists(file_path):
2687
+ os.makedirs(file_path)
2688
+ html_file_path = os.path.join(file_path, name)
2689
+ else:
2690
+ html_file_path = name
2691
+ page_source = self.get_page_source()
2692
+ last_page = self.get_current_url()
2693
+ meta_charset = '<meta charset="utf-8">'
2694
+ rendered_source = ""
2695
+ if "://" in last_page:
2696
+ base_href_html = log_helper.get_base_href_html(last_page)
2697
+ if ' charset="' not in page_source:
2698
+ rendered_source = "%s\n%s\n%s" % (
2699
+ base_href_html, meta_charset, page_source
2700
+ )
2701
+ else:
2702
+ rendered_source = "%s\n%s" % (base_href_html, page_source)
2703
+ else:
2704
+ rendered_source = page_source
2705
+ html_file = codecs.open(html_file_path, "w+", "utf-8")
2706
+ html_file.write(rendered_source)
2707
+ html_file.close()
2708
+
2709
+ def save_as_html(self, *args, **kwargs):
2710
+ self.save_page_source(*args, **kwargs)
2711
+
2614
2712
  def save_screenshot(self, name, folder=None, selector=None):
2615
2713
  filename = name
2616
2714
  if folder:
@@ -9205,6 +9205,10 @@ class BaseCase(unittest.TestCase):
9205
9205
  """Same as self.switch_to_newest_window()"""
9206
9206
  self.switch_to_newest_window()
9207
9207
 
9208
+ def save_as_html(self, name, folder=None):
9209
+ """Same as self.save_page_source()"""
9210
+ self.save_page_source(name, folder=folder)
9211
+
9208
9212
  def input(
9209
9213
  self, selector, text, by="css selector", timeout=None, retry=False
9210
9214
  ):
@@ -9654,9 +9658,11 @@ class BaseCase(unittest.TestCase):
9654
9658
 
9655
9659
  def activate_messenger(self):
9656
9660
  self.__check_scope()
9657
- self._check_browser()
9661
+ if not self.__is_cdp_swap_needed():
9662
+ self._check_browser()
9658
9663
  js_utils.activate_messenger(self.driver)
9659
- self.wait_for_ready_state_complete()
9664
+ if not self.__is_cdp_swap_needed():
9665
+ self.wait_for_ready_state_complete()
9660
9666
 
9661
9667
  def set_messenger_theme(
9662
9668
  self, theme="default", location="default", max_messages="default"
@@ -29,6 +29,8 @@ def wait_for_ready_state_complete(driver, timeout=settings.LARGE_TIMEOUT):
29
29
  If the timeout is exceeded, the test will still continue
30
30
  because readyState == "interactive" may be good enough.
31
31
  (Previously, tests would fail immediately if exceeding the timeout.)"""
32
+ if hasattr(driver, "_swap_driver"):
33
+ return
32
34
  if hasattr(settings, "SKIP_JS_WAITS") and settings.SKIP_JS_WAITS:
33
35
  return
34
36
  start_ms = time.time() * 1000.0
@@ -54,8 +56,12 @@ def wait_for_ready_state_complete(driver, timeout=settings.LARGE_TIMEOUT):
54
56
 
55
57
 
56
58
  def execute_async_script(driver, script, timeout=settings.LARGE_TIMEOUT):
57
- driver.set_script_timeout(timeout)
58
- return driver.execute_async_script(script)
59
+ if hasattr(driver, "set_script_timeout"):
60
+ driver.set_script_timeout(timeout)
61
+ if hasattr(driver, "execute_async_script"):
62
+ return driver.execute_async_script(script)
63
+ else:
64
+ return None
59
65
 
60
66
 
61
67
  def wait_for_angularjs(driver, timeout=settings.LARGE_TIMEOUT, **kwargs):
@@ -937,7 +943,10 @@ def post_message(driver, message, msg_dur=None, style="info"):
937
943
  execute_script(driver, messenger_script)
938
944
  except TypeError as e:
939
945
  if (
940
- shared_utils.is_cdp_swap_needed(driver)
946
+ (
947
+ shared_utils.is_cdp_swap_needed(driver)
948
+ or hasattr(driver, "_swap_driver")
949
+ )
941
950
  and "cannot unpack non-iterable" in str(e)
942
951
  ):
943
952
  pass
@@ -335,6 +335,8 @@ async def start(
335
335
  xvfb = True
336
336
  else:
337
337
  xvfb = False
338
+ if not hasattr(sb_config, "xvfb"):
339
+ sb_config.xvfb = xvfb
338
340
  if incognito is None:
339
341
  if "--incognito" in sys_argv:
340
342
  incognito = True
@@ -202,6 +202,7 @@ class Config:
202
202
  "InsecureDownloadWarnings,DownloadBubble,DownloadBubbleV2,"
203
203
  "OptimizationTargetPrediction,OptimizationGuideModelDownloading,"
204
204
  "SidePanelPinning,UserAgentClientHint,PrivacySandboxSettings4,"
205
+ "OptimizationHintsFetching,InterestFeedContentSuggestions,"
205
206
  "DisableLoadExtensionCommandLineSwitch"
206
207
  ]
207
208
  if self.proxy:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.42.3
3
+ Version: 4.42.5
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
@@ -72,12 +72,14 @@ 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"
74
74
  Requires-Dist: filelock~=3.16.1; python_version < "3.9"
75
- Requires-Dist: filelock>=3.19.1; python_version >= "3.9"
75
+ Requires-Dist: filelock~=3.19.1; python_version >= "3.9" and python_version < "3.10"
76
+ Requires-Dist: filelock>=3.20.0; python_version >= "3.10"
76
77
  Requires-Dist: fasteners>=0.20
77
- Requires-Dist: mycdp>=1.2.0
78
+ Requires-Dist: mycdp>=1.2.1
78
79
  Requires-Dist: pynose>=1.5.5
79
- Requires-Dist: platformdirs>=4.3.6; python_version < "3.9"
80
- Requires-Dist: platformdirs>=4.4.0; python_version >= "3.9"
80
+ Requires-Dist: platformdirs~=4.3.6; python_version < "3.9"
81
+ Requires-Dist: platformdirs~=4.4.0; python_version >= "3.9" and python_version < "3.10"
82
+ Requires-Dist: platformdirs>=4.5.0; python_version >= "3.10"
81
83
  Requires-Dist: typing-extensions~=4.13.2; python_version < "3.9"
82
84
  Requires-Dist: typing-extensions>=4.15.0; python_version >= "3.9"
83
85
  Requires-Dist: sbvirtualdisplay>=1.4.0
@@ -90,7 +92,7 @@ Requires-Dist: parse-type>=0.6.6
90
92
  Requires-Dist: colorama>=0.4.6
91
93
  Requires-Dist: pyyaml>=6.0.3
92
94
  Requires-Dist: pygments>=2.19.2
93
- Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
95
+ Requires-Dist: pyreadline3>=3.5.4; platform_system == "Windows"
94
96
  Requires-Dist: tabcompleter>=1.4.0
95
97
  Requires-Dist: pdbp>=1.7.1
96
98
  Requires-Dist: idna==3.10
@@ -125,7 +127,8 @@ Requires-Dist: pytest-html==4.0.2
125
127
  Requires-Dist: pytest-metadata==3.1.1
126
128
  Requires-Dist: pytest-ordering==0.6
127
129
  Requires-Dist: pytest-rerunfailures==14.0; python_version < "3.9"
128
- Requires-Dist: pytest-rerunfailures==16.0.1; python_version >= "3.9"
130
+ Requires-Dist: pytest-rerunfailures==16.0.1; python_version >= "3.9" and python_version < "3.10"
131
+ Requires-Dist: pytest-rerunfailures==16.1; python_version >= "3.10"
129
132
  Requires-Dist: pytest-xdist==3.6.1; python_version < "3.9"
130
133
  Requires-Dist: pytest-xdist==3.8.0; python_version >= "3.9"
131
134
  Requires-Dist: parameterized==0.9.0
@@ -139,7 +142,7 @@ Requires-Dist: PyAutoGUI>=0.9.54; platform_system == "Linux"
139
142
  Requires-Dist: markdown-it-py==3.0.0; python_version < "3.10"
140
143
  Requires-Dist: markdown-it-py==4.0.0; python_version >= "3.10"
141
144
  Requires-Dist: mdurl==0.1.2
142
- Requires-Dist: rich<15,>=14.1.0
145
+ Requires-Dist: rich<15,>=14.2.0
143
146
  Provides-Extra: allure
144
147
  Requires-Dist: allure-pytest>=2.13.5; extra == "allure"
145
148
  Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
@@ -3,7 +3,7 @@ wheel>=0.45.1
3
3
  certifi>=2025.10.5
4
4
  exceptiongroup>=1.3.0
5
5
  fasteners>=0.20
6
- mycdp>=1.2.0
6
+ mycdp>=1.2.1
7
7
  pynose>=1.5.5
8
8
  sbvirtualdisplay>=1.4.0
9
9
  Jinja2>=3.1.6
@@ -34,14 +34,14 @@ behave==1.2.6
34
34
  beautifulsoup4~=4.14.2
35
35
  pyotp==2.9.0
36
36
  mdurl==0.1.2
37
- rich<15,>=14.1.0
37
+ rich<15,>=14.2.0
38
38
 
39
39
  [:platform_system == "Linux"]
40
40
  python-xlib==0.33
41
41
  PyAutoGUI>=0.9.54
42
42
 
43
43
  [:platform_system == "Windows"]
44
- pyreadline3>=3.5.3
44
+ pyreadline3>=3.5.4
45
45
 
46
46
  [:python_version < "3.10"]
47
47
  setuptools~=70.2
@@ -53,7 +53,7 @@ pip>=25.0.1
53
53
  attrs~=25.3.0
54
54
  websockets~=13.1
55
55
  filelock~=3.16.1
56
- platformdirs>=4.3.6
56
+ platformdirs~=4.3.6
57
57
  typing-extensions~=4.13.2
58
58
  MarkupSafe==2.1.5
59
59
  requests==2.32.4
@@ -69,16 +69,17 @@ soupsieve==2.7
69
69
 
70
70
  [:python_version >= "3.10"]
71
71
  setuptools>=80.9.0
72
+ filelock>=3.20.0
73
+ platformdirs>=4.5.0
72
74
  urllib3<2.6.0,>=1.26.20
73
75
  selenium==4.36.0
76
+ pytest-rerunfailures==16.1
74
77
  markdown-it-py==4.0.0
75
78
 
76
79
  [:python_version >= "3.9"]
77
80
  pip>=25.2
78
81
  attrs>=25.4.0
79
82
  websockets>=15.0.1
80
- filelock>=3.19.1
81
- platformdirs>=4.4.0
82
83
  typing-extensions>=4.15.0
83
84
  MarkupSafe>=3.0.3
84
85
  requests~=2.32.5
@@ -87,12 +88,14 @@ websocket-client~=1.9.0
87
88
  cssselect==1.3.0
88
89
  pluggy==1.6.0
89
90
  pytest==8.4.2
90
- pytest-rerunfailures==16.0.1
91
91
  pytest-xdist==3.8.0
92
92
  soupsieve~=2.8
93
93
 
94
94
  [:python_version >= "3.9" and python_version < "3.10"]
95
+ filelock~=3.19.1
96
+ platformdirs~=4.4.0
95
97
  selenium==4.32.0
98
+ pytest-rerunfailures==16.0.1
96
99
 
97
100
  [allure]
98
101
  allure-pytest>=2.13.5
@@ -158,12 +158,14 @@ setup(
158
158
  'websockets~=13.1;python_version<"3.9"',
159
159
  'websockets>=15.0.1;python_version>="3.9"',
160
160
  'filelock~=3.16.1;python_version<"3.9"',
161
- 'filelock>=3.19.1;python_version>="3.9"',
161
+ 'filelock~=3.19.1;python_version>="3.9" and python_version<"3.10"',
162
+ 'filelock>=3.20.0;python_version>="3.10"',
162
163
  'fasteners>=0.20',
163
- "mycdp>=1.2.0",
164
+ "mycdp>=1.2.1",
164
165
  "pynose>=1.5.5",
165
- 'platformdirs>=4.3.6;python_version<"3.9"',
166
- 'platformdirs>=4.4.0;python_version>="3.9"',
166
+ 'platformdirs~=4.3.6;python_version<"3.9"',
167
+ 'platformdirs~=4.4.0;python_version>="3.9" and python_version<"3.10"',
168
+ 'platformdirs>=4.5.0;python_version>="3.10"',
167
169
  'typing-extensions~=4.13.2;python_version<"3.9"',
168
170
  'typing-extensions>=4.15.0;python_version>="3.9"',
169
171
  "sbvirtualdisplay>=1.4.0",
@@ -176,7 +178,7 @@ setup(
176
178
  'colorama>=0.4.6',
177
179
  'pyyaml>=6.0.3',
178
180
  'pygments>=2.19.2',
179
- 'pyreadline3>=3.5.3;platform_system=="Windows"',
181
+ 'pyreadline3>=3.5.4;platform_system=="Windows"',
180
182
  "tabcompleter>=1.4.0",
181
183
  "pdbp>=1.7.1",
182
184
  "idna==3.10",
@@ -211,7 +213,8 @@ setup(
211
213
  'pytest-metadata==3.1.1',
212
214
  "pytest-ordering==0.6",
213
215
  'pytest-rerunfailures==14.0;python_version<"3.9"',
214
- 'pytest-rerunfailures==16.0.1;python_version>="3.9"',
216
+ 'pytest-rerunfailures==16.0.1;python_version>="3.9" and python_version<"3.10"', # noqa
217
+ 'pytest-rerunfailures==16.1;python_version>="3.10"',
215
218
  'pytest-xdist==3.6.1;python_version<"3.9"',
216
219
  'pytest-xdist==3.8.0;python_version>="3.9"',
217
220
  'parameterized==0.9.0',
@@ -225,7 +228,7 @@ setup(
225
228
  'markdown-it-py==3.0.0;python_version<"3.10"',
226
229
  'markdown-it-py==4.0.0;python_version>="3.10"',
227
230
  'mdurl==0.1.2',
228
- 'rich>=14.1.0,<15',
231
+ 'rich>=14.2.0,<15',
229
232
  ],
230
233
  extras_require={
231
234
  # pip install -e .[allure]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1528,10 +1528,10 @@ def save_page_source(driver, name, folder=None):
1528
1528
  page_source = driver.cdp.get_page_source()
1529
1529
  else:
1530
1530
  page_source = driver.page_source
1531
- html_file = codecs.open(html_file_path, "w+", "utf-8")
1532
1531
  rendered_source = log_helper.get_html_source_with_base_href(
1533
1532
  driver, page_source
1534
1533
  )
1534
+ html_file = codecs.open(html_file_path, "w+", "utf-8")
1535
1535
  html_file.write(rendered_source)
1536
1536
  html_file.close()
1537
1537
 
File without changes