seleniumbase 4.51.0__tar.gz → 4.51.2__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 (163) hide show
  1. {seleniumbase-4.51.0/seleniumbase.egg-info → seleniumbase-4.51.2}/PKG-INFO +3 -4
  2. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/README.md +0 -1
  3. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/pyproject.toml +0 -1
  4. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/requirements.txt +2 -2
  5. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/__version__.py +1 -1
  6. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/behave/behave_sb.py +1 -1
  7. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/config/proxy_list.py +3 -5
  8. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_mkrec.py +0 -5
  9. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_recorder.py +0 -15
  10. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/browser_launcher.py +5 -21
  11. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/detect_b_ver.py +0 -45
  12. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/sb_cdp.py +9 -4
  13. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/base_case.py +13 -1
  14. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/constants.py +0 -9
  15. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/page_utils.py +1 -1
  16. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/xpath_to_css.py +19 -0
  17. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/driver_manager.py +2 -24
  18. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/pytest_plugin.py +3 -42
  19. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/sb_manager.py +2 -22
  20. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/selenium_plugin.py +1 -29
  21. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp_driver/browser.py +2 -0
  22. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp_driver/cdp_util.py +3 -5
  23. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp_driver/config.py +5 -6
  24. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp_driver/tab.py +1 -1
  25. {seleniumbase-4.51.0 → seleniumbase-4.51.2/seleniumbase.egg-info}/PKG-INFO +3 -4
  26. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase.egg-info/SOURCES.txt +0 -1
  27. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase.egg-info/requires.txt +2 -2
  28. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/setup.py +2 -3
  29. seleniumbase-4.51.0/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  30. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/.gitignore +0 -0
  31. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/LICENSE +0 -0
  32. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/MANIFEST.in +0 -0
  33. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/install.sh +0 -0
  34. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/pytest.ini +0 -0
  35. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/sbase/__init__.py +0 -0
  36. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/sbase/__main__.py +0 -0
  37. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/sbase/steps.py +0 -0
  38. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/__init__.py +0 -0
  39. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/__main__.py +0 -0
  40. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/behave/__init__.py +0 -0
  41. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/behave/behave_helper.py +0 -0
  42. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/behave/steps.py +0 -0
  43. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/common/__init__.py +0 -0
  44. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/common/decorators.py +0 -0
  45. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/common/encryption.py +0 -0
  46. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/common/exceptions.py +0 -0
  47. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/common/obfuscate.py +0 -0
  48. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/common/unobfuscate.py +0 -0
  49. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/config/__init__.py +0 -0
  50. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/config/ad_block_list.py +0 -0
  51. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/config/settings.py +0 -0
  52. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/__init__.py +0 -0
  53. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/logo_helper.py +0 -0
  54. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/rich_helper.py +0 -0
  55. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/run.py +0 -0
  56. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  57. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  58. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_commander.py +0 -0
  59. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_install.py +0 -0
  60. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  61. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  62. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  63. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  64. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  65. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/console_scripts/sb_print.py +0 -0
  66. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/__init__.py +0 -0
  67. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/application_manager.py +0 -0
  68. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/capabilities_parser.py +0 -0
  69. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/colored_traceback.py +0 -0
  70. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/create_db_tables.sql +0 -0
  71. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/download_helper.py +0 -0
  72. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/encoded_images.py +0 -0
  73. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/jqc_helper.py +0 -0
  74. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/log_helper.py +0 -0
  75. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/mysql.py +0 -0
  76. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/nest_asyncio.py +0 -0
  77. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/proxy_helper.py +0 -0
  78. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/recorder_helper.py +0 -0
  79. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/report_helper.py +0 -0
  80. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/s3_manager.py +0 -0
  81. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/sb_driver.py +0 -0
  82. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/session_helper.py +0 -0
  83. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/settings_parser.py +0 -0
  84. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/style_sheet.py +0 -0
  85. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/testcase_manager.py +0 -0
  86. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/tour_helper.py +0 -0
  87. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/core/visual_helper.py +0 -0
  88. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/drivers/__init__.py +0 -0
  89. {seleniumbase-4.51.0/seleniumbase/drivers/atlas_drivers → seleniumbase-4.51.2/seleniumbase/drivers/brave_drivers}/__init__.py +0 -0
  90. {seleniumbase-4.51.0/seleniumbase/drivers/brave_drivers → seleniumbase-4.51.2/seleniumbase/drivers/cft_drivers}/__init__.py +0 -0
  91. {seleniumbase-4.51.0/seleniumbase/drivers/cft_drivers → seleniumbase-4.51.2/seleniumbase/drivers/chromium_drivers}/__init__.py +0 -0
  92. {seleniumbase-4.51.0/seleniumbase/drivers/chromium_drivers → seleniumbase-4.51.2/seleniumbase/drivers/chs_drivers}/__init__.py +0 -0
  93. {seleniumbase-4.51.0/seleniumbase/drivers/chs_drivers → seleniumbase-4.51.2/seleniumbase/drivers/comet_drivers}/__init__.py +0 -0
  94. {seleniumbase-4.51.0/seleniumbase/drivers/comet_drivers → seleniumbase-4.51.2/seleniumbase/drivers/opera_drivers}/__init__.py +0 -0
  95. {seleniumbase-4.51.0/seleniumbase/drivers/opera_drivers → seleniumbase-4.51.2/seleniumbase/extensions}/__init__.py +0 -0
  96. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/extensions/ad_block.zip +0 -0
  97. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/extensions/disable_csp.zip +0 -0
  98. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/extensions/recorder.zip +0 -0
  99. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/extensions/sbase_ext.zip +0 -0
  100. {seleniumbase-4.51.0/seleniumbase/extensions → seleniumbase-4.51.2/seleniumbase/fixtures}/__init__.py +0 -0
  101. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  102. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/errors.py +0 -0
  103. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/js_utils.py +0 -0
  104. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/page_actions.py +0 -0
  105. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/shared_utils.py +0 -0
  106. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/unittest_helper.py +0 -0
  107. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/fixtures/words.py +0 -0
  108. {seleniumbase-4.51.0/seleniumbase/fixtures → seleniumbase-4.51.2/seleniumbase/js_code}/__init__.py +0 -0
  109. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/js_code/active_css_js.py +0 -0
  110. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/js_code/live_js.py +0 -0
  111. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/js_code/recorder_js.py +0 -0
  112. {seleniumbase-4.51.0/seleniumbase/js_code → seleniumbase-4.51.2/seleniumbase/masterqa}/__init__.py +0 -0
  113. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/masterqa/master_qa.py +0 -0
  114. {seleniumbase-4.51.0/seleniumbase/masterqa → seleniumbase-4.51.2/seleniumbase/plugins}/__init__.py +0 -0
  115. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/base_plugin.py +0 -0
  116. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/basic_test_info.py +0 -0
  117. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  118. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/page_source.py +0 -0
  119. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  120. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/plugins/screen_shots.py +0 -0
  121. {seleniumbase-4.51.0/seleniumbase/plugins → seleniumbase-4.51.2/seleniumbase/resources}/__init__.py +0 -0
  122. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/__init__.py +0 -0
  123. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/chinese.py +0 -0
  124. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/dutch.py +0 -0
  125. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/french.py +0 -0
  126. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/italian.py +0 -0
  127. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/japanese.py +0 -0
  128. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/korean.py +0 -0
  129. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/master_dict.py +0 -0
  130. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/portuguese.py +0 -0
  131. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/russian.py +0 -0
  132. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/spanish.py +0 -0
  133. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/translate/translator.py +0 -0
  134. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/__init__.py +0 -0
  135. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp.py +0 -0
  136. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  137. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  138. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
  139. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/cdp_driver/element.py +0 -0
  140. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/dprocess.py +0 -0
  141. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/options.py +0 -0
  142. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/patcher.py +0 -0
  143. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/reactor.py +0 -0
  144. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/undetected/webelement.py +0 -0
  145. {seleniumbase-4.51.0/seleniumbase/resources → seleniumbase-4.51.2/seleniumbase/utilities}/__init__.py +0 -0
  146. {seleniumbase-4.51.0/seleniumbase/utilities → seleniumbase-4.51.2/seleniumbase/utilities/selenium_grid}/__init__.py +0 -0
  147. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  148. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  149. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  150. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  151. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  152. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  153. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  154. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  155. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  156. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  157. {seleniumbase-4.51.0/seleniumbase/utilities/selenium_grid → seleniumbase-4.51.2/seleniumbase/utilities/selenium_ide}/__init__.py +0 -0
  158. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  159. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase.egg-info/dependency_links.txt +0 -0
  160. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase.egg-info/entry_points.txt +0 -0
  161. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/seleniumbase.egg-info/top_level.txt +0 -0
  162. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/setup.cfg +0 -0
  163. {seleniumbase-4.51.0 → seleniumbase-4.51.2}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.51.0
3
+ Version: 4.51.2
4
4
  Summary: SeleniumBase is a framework for web crawling, scraping, and testing. Supports pytest. CDP Mode adds stealth. Includes many tools.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -71,7 +71,7 @@ Requires-Dist: exceptiongroup>=1.3.1
71
71
  Requires-Dist: websockets~=15.0.1; python_version < "3.10"
72
72
  Requires-Dist: websockets>=16.1; python_version >= "3.10"
73
73
  Requires-Dist: filelock~=3.19.1; python_version < "3.10"
74
- Requires-Dist: filelock>=3.29.7; python_version >= "3.10"
74
+ Requires-Dist: filelock>=3.30.3; python_version >= "3.10"
75
75
  Requires-Dist: fasteners>=0.20
76
76
  Requires-Dist: mycdp>=1.4.0
77
77
  Requires-Dist: pynose>=1.5.5
@@ -142,7 +142,7 @@ Requires-Dist: allure-python-commons>=2.16.0; extra == "allure"
142
142
  Requires-Dist: allure-behave>=2.16.0; extra == "allure"
143
143
  Provides-Extra: coverage
144
144
  Requires-Dist: coverage>=7.10.7; python_version < "3.10" and extra == "coverage"
145
- Requires-Dist: coverage>=7.15.1; python_version >= "3.10" and extra == "coverage"
145
+ Requires-Dist: coverage>=7.15.2; python_version >= "3.10" and extra == "coverage"
146
146
  Requires-Dist: pytest-cov>=7.1.0; extra == "coverage"
147
147
  Provides-Extra: flake8
148
148
  Requires-Dist: flake8==7.3.0; extra == "flake8"
@@ -950,7 +950,6 @@ pytest test_coffee_cart.py --trace
950
950
  --opera # (Shortcut for "--browser=opera".)
951
951
  --brave # (Shortcut for "--browser=brave".)
952
952
  --comet # (Shortcut for "--browser=comet".)
953
- --atlas # (Shortcut for "--browser=atlas".)
954
953
  --chromium # (Shortcut for using base `Chromium`)
955
954
  --settings-file=FILE # (Override default SeleniumBase settings.)
956
955
  --env=ENV # (Set the test env. Access with "self.env" in tests.)
@@ -762,7 +762,6 @@ pytest test_coffee_cart.py --trace
762
762
  --opera # (Shortcut for "--browser=opera".)
763
763
  --brave # (Shortcut for "--browser=brave".)
764
764
  --comet # (Shortcut for "--browser=comet".)
765
- --atlas # (Shortcut for "--browser=atlas".)
766
765
  --chromium # (Shortcut for using base `Chromium`)
767
766
  --settings-file=FILE # (Override default SeleniumBase settings.)
768
767
  --env=ENV # (Set the test env. Access with "self.env" in tests.)
@@ -46,7 +46,6 @@ packages = [
46
46
  "seleniumbase.drivers.opera_drivers",
47
47
  "seleniumbase.drivers.brave_drivers",
48
48
  "seleniumbase.drivers.comet_drivers",
49
- "seleniumbase.drivers.atlas_drivers",
50
49
  "seleniumbase.drivers.chromium_drivers",
51
50
  "seleniumbase.extensions",
52
51
  "seleniumbase.fixtures",
@@ -10,7 +10,7 @@ exceptiongroup>=1.3.1
10
10
  websockets~=15.0.1;python_version<"3.10"
11
11
  websockets>=16.1;python_version>="3.10"
12
12
  filelock~=3.19.1;python_version<"3.10"
13
- filelock>=3.29.7;python_version>="3.10"
13
+ filelock>=3.30.3;python_version>="3.10"
14
14
  fasteners>=0.20
15
15
  mycdp>=1.4.0
16
16
  pynose>=1.5.5
@@ -80,7 +80,7 @@ rich>=15.0.0,<16
80
80
  # ("pip install -r requirements.txt" also installs this, but "pip install -e ." won't.)
81
81
 
82
82
  coverage>=7.10.7;python_version<"3.10"
83
- coverage>=7.15.1;python_version>="3.10"
83
+ coverage>=7.15.2;python_version>="3.10"
84
84
  pytest-cov>=7.1.0
85
85
  flake8==7.3.0
86
86
  mccabe==0.7.0
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.51.0"
2
+ __version__ = "4.51.2"
@@ -894,7 +894,7 @@ def get_configured_sb(context):
894
894
  "\nOnly ONE default browser is allowed!\n"
895
895
  "%s browsers were selected: %s" % (len(browsers), browsers)
896
896
  )
897
- if sb.browser in ["opera", "brave", "comet", "atlas"]:
897
+ if sb.browser in ["opera", "brave", "comet"]:
898
898
  bin_loc = detect_b_ver.get_binary_location(sb.browser)
899
899
  if bin_loc and os.path.exists(bin_loc):
900
900
  sb_config._cdp_browser = sb.browser
@@ -16,16 +16,14 @@ Example proxies in PROXY_LIST below are not guaranteed to be active or secure.
16
16
  If you don't already have a proxy server to connect to,
17
17
  you can try finding one from one of following sites:
18
18
  * https://www.sslproxies.org/
19
- * https://bit.ly/36GtZa1
20
19
  * https://www.us-proxy.org/
21
20
  * https://hidemy.name/en/proxy-list/
22
- * http://free-proxy.cz/en/proxylist/country/all/https/ping/all
23
21
  """
24
22
 
25
23
  PROXY_LIST = {
26
- "example1": "98.8.195.160:443", # (Example) - set your own proxy here
27
- "example2": "200.174.198.86:8888", # (Example)
28
- "example3": "socks5://184.178.172.5:15303", # (Example)
24
+ "example1": "65.109.191.98:3080", # (Example) - set your own proxy here
25
+ "example2": "157.254.194.57:1080", # (Example)
26
+ "example3": "socks4://142.54.228.193:4145", # (Example)
29
27
  "proxy1": None,
30
28
  "proxy2": None,
31
29
  "proxy3": None,
@@ -87,7 +87,6 @@ def main():
87
87
  use_opera = False
88
88
  use_brave = False
89
89
  use_comet = False
90
- use_atlas = False
91
90
  use_chromium = False
92
91
  use_uc = False
93
92
  esc_end = False
@@ -151,8 +150,6 @@ def main():
151
150
  use_brave = True
152
151
  elif option.lower() == "--comet":
153
152
  use_comet = True
154
- elif option.lower() == "--atlas":
155
- use_atlas = True
156
153
  elif option.lower() == "--use-chromium":
157
154
  use_chromium = True
158
155
  elif option.lower() == "--ee":
@@ -302,8 +299,6 @@ def main():
302
299
  run_cmd += " --brave"
303
300
  elif use_comet:
304
301
  run_cmd += " --comet"
305
- elif use_atlas:
306
- run_cmd += " --atlas"
307
302
  elif use_chromium:
308
303
  run_cmd += " --use-chromium"
309
304
  if force_gui:
@@ -166,8 +166,6 @@ def do_recording(
166
166
  command += " --brave"
167
167
  elif "comet" in brx.lower():
168
168
  command += " --comet"
169
- elif "atlas" in brx.lower():
170
- command += " --atlas"
171
169
  elif "chromium" in brx.lower():
172
170
  command += " --use-chromium"
173
171
  if ucb:
@@ -213,8 +211,6 @@ def do_playback(file_name, brx, window, demo_mode=False):
213
211
  command += " --brave"
214
212
  elif "comet" in brx.lower():
215
213
  command += " --comet"
216
- elif "atlas" in brx.lower():
217
- command += " --atlas"
218
214
  elif "chromium" in brx.lower():
219
215
  command += " --use-chromium"
220
216
  if demo_mode:
@@ -265,7 +261,6 @@ def create_tkinter_gui():
265
261
  use_behave = False
266
262
  use_sb_mgr = False
267
263
  use_sb_cdp = False
268
- use_atlas = False
269
264
  command_args = sys.argv[2:]
270
265
  if (
271
266
  "--uc" in command_args
@@ -285,8 +280,6 @@ def create_tkinter_gui():
285
280
  use_sb_mgr = True
286
281
  if "--rec-sb-cdp" in command_args:
287
282
  use_sb_cdp = True
288
- if "--atlas" in command_args:
289
- use_atlas = True
290
283
 
291
284
  tk.Label(window, text="\nSelect a web browser to use:").pack()
292
285
  br_count = 2
@@ -318,12 +311,6 @@ def create_tkinter_gui():
318
311
  options_list.append("Comet Browser")
319
312
  br_order["comet"] = br_count
320
313
  br_count += 1
321
- if use_atlas:
322
- with suppress(Exception):
323
- if os.path.exists(detect_b_ver.get_binary_location("atlas")):
324
- options_list.append("Atlas Browser")
325
- br_order["atlas"] = br_count
326
- br_count += 1
327
314
  brx = tk.StringVar(window)
328
315
  if "--use-chromium" in command_args or "--chromium" in command_args:
329
316
  brx.set(options_list[1])
@@ -339,8 +326,6 @@ def create_tkinter_gui():
339
326
  brx.set(options_list[br_order["brave"]])
340
327
  elif "--comet" in command_args and "comet" in br_order:
341
328
  brx.set(options_list[br_order["comet"]])
342
- elif "--atlas" in command_args and "atlas" in br_order:
343
- brx.set(options_list[br_order["atlas"]])
344
329
  else:
345
330
  brx.set(options_list[0])
346
331
  question_menu = tk.OptionMenu(window, brx, *options_list)
@@ -27,7 +27,6 @@ from seleniumbase.drivers import chs_drivers # chrome-headless-shell
27
27
  from seleniumbase.drivers import opera_drivers # still uses chromedriver
28
28
  from seleniumbase.drivers import brave_drivers # still uses chromedriver
29
29
  from seleniumbase.drivers import comet_drivers # still uses chromedriver
30
- from seleniumbase.drivers import atlas_drivers # still uses chromedriver
31
30
  from seleniumbase.drivers import chromium_drivers # still uses chromedriver
32
31
  from seleniumbase import extensions # browser extensions storage folder
33
32
  from seleniumbase.config import settings
@@ -48,7 +47,6 @@ DRIVER_DIR_CHS = os.path.dirname(os.path.realpath(chs_drivers.__file__))
48
47
  DRIVER_DIR_OPERA = os.path.dirname(os.path.realpath(opera_drivers.__file__))
49
48
  DRIVER_DIR_BRAVE = os.path.dirname(os.path.realpath(brave_drivers.__file__))
50
49
  DRIVER_DIR_COMET = os.path.dirname(os.path.realpath(comet_drivers.__file__))
51
- DRIVER_DIR_ATLAS = os.path.dirname(os.path.realpath(atlas_drivers.__file__))
52
50
  DRIVER_DIR_CHROMIUM = os.path.dirname(
53
51
  os.path.realpath(chromium_drivers.__file__)
54
52
  )
@@ -590,7 +588,7 @@ def uc_open_with_reconnect(driver, url, reconnect_time=None):
590
588
  """Open a url, disconnect chromedriver, wait, and reconnect."""
591
589
  if (
592
590
  hasattr(sb_config, "_cdp_browser")
593
- and sb_config._cdp_browser in ["comet", "opera", "atlas"]
591
+ and sb_config._cdp_browser in ["comet", "opera"]
594
592
  ):
595
593
  if not __is_cdp_swap_needed(driver):
596
594
  if not driver.current_url.startswith(
@@ -2410,11 +2408,10 @@ def _set_chrome_options(
2410
2408
  }
2411
2409
  app_state = "printing.print_preview_sticky_settings.appState"
2412
2410
  prefs[app_state] = json.dumps(pdf_settings)
2413
- if proxy_string or proxy_pac_url:
2414
- # Implementation of https://stackoverflow.com/q/65705775/7058266
2415
- prefs["webrtc.ip_handling_policy"] = "disable_non_proxied_udp"
2416
- prefs["webrtc.multiple_routes_enabled"] = False
2417
- prefs["webrtc.nonproxied_udp_enabled"] = False
2411
+ # Implementation of https://stackoverflow.com/q/65705775/7058266
2412
+ prefs["webrtc.ip_handling_policy"] = "disable_non_proxied_udp"
2413
+ prefs["webrtc.multiple_routes_enabled"] = False
2414
+ prefs["webrtc.nonproxied_udp_enabled"] = False
2418
2415
  chrome_options.add_experimental_option("prefs", prefs)
2419
2416
  if enable_sync:
2420
2417
  chrome_options.add_experimental_option(
@@ -2512,8 +2509,6 @@ def _set_chrome_options(
2512
2509
  and (
2513
2510
  binary_location.lower().endswith("comet")
2514
2511
  or binary_location.lower().endswith("comet.exe")
2515
- or binary_location.lower().endswith("atlas")
2516
- or binary_location.lower().endswith("atlas.exe")
2517
2512
  )
2518
2513
  ):
2519
2514
  # AI browsers don't like Incognito / Guest Mode
@@ -3116,9 +3111,6 @@ def get_driver(
3116
3111
  elif _special_binary_exists(binary_location, "comet"):
3117
3112
  driver_dir = DRIVER_DIR_COMET
3118
3113
  sb_config._cdp_browser = "comet"
3119
- elif _special_binary_exists(binary_location, "atlas"):
3120
- driver_dir = DRIVER_DIR_ATLAS
3121
- sb_config._cdp_browser = "atlas"
3122
3114
  if (
3123
3115
  hasattr(sb_config, "settings")
3124
3116
  and getattr(sb_config.settings, "NEW_DRIVER_DIR", None)
@@ -4135,9 +4127,6 @@ def get_local_driver(
4135
4127
  elif _special_binary_exists(binary_location, "comet"):
4136
4128
  special_chrome = True
4137
4129
  driver_dir = DRIVER_DIR_COMET
4138
- elif _special_binary_exists(binary_location, "atlas"):
4139
- special_chrome = True
4140
- driver_dir = DRIVER_DIR_ATLAS
4141
4130
  if (
4142
4131
  hasattr(sb_config, "settings")
4143
4132
  and getattr(sb_config.settings, "NEW_DRIVER_DIR", None)
@@ -4973,11 +4962,6 @@ def get_local_driver(
4973
4962
  local_chromedriver = DRIVER_DIR_COMET + "/chromedriver"
4974
4963
  if IS_WINDOWS:
4975
4964
  local_chromedriver = DRIVER_DIR_COMET + "/chromedriver.exe"
4976
- if _special_binary_exists(binary_location, "atlas"):
4977
- set_chromium = "atlas"
4978
- local_chromedriver = DRIVER_DIR_ATLAS + "/chromedriver"
4979
- if IS_WINDOWS:
4980
- local_chromedriver = DRIVER_DIR_ATLAS + "/chromedriver.exe"
4981
4965
  try:
4982
4966
  chrome_options = _set_chrome_options(
4983
4967
  browser_name,
@@ -43,7 +43,6 @@ class ChromeType(object):
43
43
  OPERA = "opera"
44
44
  BRAVE = "brave"
45
45
  COMET = "comet"
46
- ATLAS = "atlas"
47
46
 
48
47
 
49
48
  PATTERN = {
@@ -225,14 +224,6 @@ def comet_on_linux_path(browser_type=None):
225
224
  return "" # Comet Browser isn't supported on Linux yet
226
225
 
227
226
 
228
- def atlas_on_linux_path(browser_type=None):
229
- if browser_type and browser_type != ChromeType.ATLAS:
230
- return ""
231
- if os_name() != OSType.LINUX:
232
- return ""
233
- return "" # Atlas Browser isn't supported on Linux yet
234
-
235
-
236
227
  def chrome_on_windows_path(browser_type=None):
237
228
  if browser_type and browser_type != ChromeType.GOOGLE:
238
229
  return ""
@@ -381,36 +372,6 @@ def comet_on_windows_path(browser_type=None):
381
372
  return ""
382
373
 
383
374
 
384
- def atlas_on_windows_path(browser_type=None):
385
- if browser_type and browser_type != ChromeType.ATLAS:
386
- return ""
387
- if os_name() != OSType.WIN:
388
- return ""
389
- candidates = []
390
- for item in map(
391
- os.environ.get,
392
- (
393
- "LOCALAPPDATA",
394
- "PROGRAMFILES",
395
- "PROGRAMFILES(X86)",
396
- "PROGRAMW6432",
397
- ),
398
- ):
399
- for subitem in (
400
- "OpenAI/Atlas/Application",
401
- "Atlas/Application",
402
- "Programs/Atlas",
403
- ):
404
- try:
405
- candidates.append(os.sep.join((item, subitem, "atlas.exe")))
406
- except TypeError:
407
- pass
408
- for candidate in candidates:
409
- if os.path.exists(candidate) and os.access(candidate, os.X_OK):
410
- return os.path.normpath(candidate)
411
- return ""
412
-
413
-
414
375
  def windows_browser_apps_to_cmd(*apps):
415
376
  """Create analogue of browser --version command for windows."""
416
377
  powershell = determine_powershell()
@@ -460,12 +421,6 @@ def get_binary_location(browser_type, chromium_ok=False):
460
421
  r"/Contents/MacOS/Comet",
461
422
  OSType.WIN: comet_on_windows_path(browser_type),
462
423
  },
463
- ChromeType.ATLAS: {
464
- OSType.LINUX: atlas_on_linux_path(browser_type),
465
- OSType.MAC: r"/Applications/ChatGPT Atlas.app"
466
- r"/Contents/MacOS/ChatGPT Atlas",
467
- OSType.WIN: atlas_on_windows_path(browser_type),
468
- },
469
424
  }
470
425
  return cmd_mapping[browser_type][os_name()]
471
426
 
@@ -2219,7 +2219,8 @@ class CDPMethods():
2219
2219
  self.loop.run_until_complete(self.page.wait(0.05))
2220
2220
  if (
2221
2221
  self.is_element_visible(
2222
- 'body > iframe[src*="/geo.captcha-delivery.com/captcha/"]'
2222
+ 'body > iframe[src*="/geo.captcha-delivery.com/captcha/"], '
2223
+ 'body > iframe[src*="/geo.captcha-delivery.com/interstitial/"]'
2223
2224
  )
2224
2225
  ):
2225
2226
  return True
@@ -2305,14 +2306,18 @@ class CDPMethods():
2305
2306
  return False
2306
2307
 
2307
2308
  def __gui_slide_datadome_captcha(self):
2308
- iframe = 'body > iframe[src*="/geo.captcha-delivery.com/captcha/"]'
2309
+ iframe = (
2310
+ 'body > iframe[src*="/geo.captcha-delivery.com/captcha/"], '
2311
+ 'body > iframe[src*="/geo.captcha-delivery.com/interstitial/"]'
2312
+ )
2309
2313
  if not self.is_element_visible(iframe):
2310
2314
  return False
2311
2315
  src = self.get_attribute(iframe, "src")
2312
2316
  tab = self.get_active_tab()
2317
+ time.sleep(0.05)
2313
2318
  self.open_new_tab(url=src)
2314
- time.sleep(0.41)
2315
- self.loop.run_until_complete(self.page.wait(0.1))
2319
+ time.sleep(0.42)
2320
+ self.loop.run_until_complete(self.page.wait(0.12))
2316
2321
  time.sleep(0.25)
2317
2322
  x1, y1 = self.get_gui_element_center("div.slider")
2318
2323
  x2, y2 = self.get_gui_element_center("div.sliderTarget")
@@ -301,7 +301,15 @@ class BaseCase(unittest.TestCase):
301
301
  shared_utils.check_if_time_limit_exceeded()
302
302
  self._check_browser()
303
303
  time.sleep(0.8)
304
- self.driver.get(url)
304
+ try:
305
+ self.driver.get(url)
306
+ except Exception as e2:
307
+ if "ERR_CONNECTION_RESET" in e2.msg and self.proxy_string:
308
+ message = "ERR_CONNECTION_RESET: "
309
+ message += "Invalid proxy and/or Internet unreachable!"
310
+ raise ProxyConnectionException(message)
311
+ else:
312
+ raise
305
313
  elif (
306
314
  "ERR_INTERNET_DISCONNECTED" in e.msg
307
315
  or "neterror?e=dnsNotFound" in e.msg
@@ -355,6 +363,10 @@ class BaseCase(unittest.TestCase):
355
363
  logging.debug("Invalid session id. Will open new browser.")
356
364
  self.driver = self.get_new_driver()
357
365
  self.driver.get(url)
366
+ elif "ERR_TUNNEL_CONNECTION_FAILED" in e.msg and self.proxy_string:
367
+ message = "ERR_CONNECTION_RESET: "
368
+ message += "Bad proxy and/or Internet unreachable!"
369
+ raise ProxyConnectionException(message)
358
370
  else:
359
371
  raise
360
372
  try:
@@ -382,7 +382,6 @@ class ValidBrowsers:
382
382
  "opera",
383
383
  "brave",
384
384
  "comet",
385
- "atlas",
386
385
  ]
387
386
 
388
387
 
@@ -392,7 +391,6 @@ class ChromiumSubs:
392
391
  "opera",
393
392
  "brave",
394
393
  "comet",
395
- "atlas",
396
394
  ]
397
395
 
398
396
 
@@ -415,9 +413,6 @@ class ValidBinaries:
415
413
  "comet",
416
414
  "comet-browser",
417
415
  "comet-stable",
418
- "atlas",
419
- "atlas-browser",
420
- "atlas-stable",
421
416
  "chrome.exe", # WSL (Windows Subsystem for Linux)
422
417
  "chromium.exe", # WSL (Windows Subsystem for Linux)
423
418
  ]
@@ -441,9 +436,6 @@ class ValidBinaries:
441
436
  "Opera",
442
437
  "Comet Browser",
443
438
  "Comet",
444
- "ChatGPT Atlas",
445
- "Atlas Browser",
446
- "Atlas",
447
439
  ]
448
440
  valid_edge_binaries_on_macos = [
449
441
  "Microsoft Edge",
@@ -455,7 +447,6 @@ class ValidBinaries:
455
447
  "brave.exe",
456
448
  "opera.exe",
457
449
  "comet.exe",
458
- "atlas.exe",
459
450
  ]
460
451
  valid_edge_binaries_on_windows = [
461
452
  "msedge.exe",
@@ -112,7 +112,7 @@ def looks_like_a_page_url(url):
112
112
  "http:", "https:", "://", "about:", "blob:", "chrome:", "opera:",
113
113
  "data:", "edge:", "file:", "view-source:", "chrome-search:",
114
114
  "chrome-extension:", "chrome-untrusted:", "isolated-app:",
115
- "chrome-devtools:", "devtools:", "brave:", "comet:", "atlas:"
115
+ "chrome-devtools:", "devtools:", "brave:", "comet:"
116
116
  ))
117
117
 
118
118
 
@@ -188,6 +188,25 @@ def convert_xpath_to_css(xpath):
188
188
  s_val2 = data.group(5)
189
189
  return '%s[%s="%s"][%s="%s"]' % (s_tag, s_atr1, s_val1, s_atr2, s_val2)
190
190
 
191
+ # Find instance of: //tag[@attribute1='value1' or @attribute2='value2']
192
+ # This tracks single/double quotes and maps them to comma-separated CSS.
193
+ data = re.match(
194
+ r"^\s*//([\w\-*]*)\s*\[\s*@?([\w\-:]+)\s*=\s*[\"']([^\"']*)[\"']\s+"
195
+ r"or\s+@?([\w\-:]+)\s*=\s*[\"']([^\"']*)[\"']\s*\]",
196
+ xpath,
197
+ )
198
+ if data:
199
+ s_tag = data.group(1)
200
+ if s_tag == "*":
201
+ s_tag = ""
202
+ s_atr1 = data.group(2)
203
+ s_val1 = data.group(3)
204
+ s_atr2 = data.group(4)
205
+ s_val2 = data.group(5)
206
+ return '%s[%s="%s"], %s[%s="%s"]' % (
207
+ s_tag, s_atr1, s_val1, s_tag, s_atr2, s_val2
208
+ )
209
+
191
210
  # **** End of handling special xpath edge cases instantly ****
192
211
 
193
212
  if xpath[0] != '"' and xpath[-1] != '"' and xpath.count('"') % 2 == 0:
@@ -356,16 +356,6 @@ def Driver(
356
356
  sb_config._cdp_browser = "comet"
357
357
  sb_config._cdp_bin_loc = bin_loc
358
358
  browser_list.append("--browser=comet")
359
- if "--browser=atlas" in sys_argv or "--browser atlas" in sys_argv:
360
- if not bin_loc_in_options:
361
- bin_loc = detect_b_ver.get_binary_location("atlas")
362
- if os.path.exists(bin_loc):
363
- browser_changes += 1
364
- browser_set = "atlas"
365
- sb_config._browser_shortcut = "atlas"
366
- sb_config._cdp_browser = "atlas"
367
- sb_config._cdp_bin_loc = bin_loc
368
- browser_list.append("--browser=atlas")
369
359
  browser_text = browser_set
370
360
  if "--chrome" in sys_argv and not browser_set == "chrome":
371
361
  browser_changes += 1
@@ -417,16 +407,6 @@ def Driver(
417
407
  sb_config._cdp_browser = "comet"
418
408
  sb_config._cdp_bin_loc = bin_loc
419
409
  browser_list.append("--comet")
420
- if "--atlas" in sys_argv and not browser_set == "atlas":
421
- if not bin_loc_in_options:
422
- bin_loc = detect_b_ver.get_binary_location("atlas")
423
- if os.path.exists(bin_loc):
424
- browser_changes += 1
425
- browser_text = "atlas"
426
- sb_config._browser_shortcut = "atlas"
427
- sb_config._cdp_browser = "atlas"
428
- sb_config._cdp_bin_loc = bin_loc
429
- browser_list.append("--atlas")
430
410
  if browser_changes > 1:
431
411
  message = "\n\n TOO MANY browser types were entered!"
432
412
  message += "\n There were %s found:\n > %s" % (
@@ -748,7 +728,7 @@ def Driver(
748
728
  uc_cdp_events = False
749
729
  if (
750
730
  undetectable
751
- and browser not in ["chrome", "opera", "brave", "comet", "atlas"]
731
+ and browser not in ["chrome", "opera", "brave", "comet"]
752
732
  ):
753
733
  message = (
754
734
  '\n Undetected-Chromedriver Mode ONLY supports Chromium browsers!'
@@ -782,9 +762,7 @@ def Driver(
782
762
  if headless2 and browser == "firefox":
783
763
  headless2 = False # Only for Chromium browsers
784
764
  headless = True # Firefox has regular headless
785
- elif browser not in [
786
- "chrome", "edge", "opera", "brave", "comet", "atlas"
787
- ]:
765
+ elif browser not in ["chrome", "edge", "opera", "brave", "comet"]:
788
766
  headless2 = False # Only for Chromium browsers
789
767
  if disable_csp is None:
790
768
  if (
@@ -32,7 +32,6 @@ def pytest_addoption(parser):
32
32
  --opera (Shortcut for "--browser=opera".)
33
33
  --brave (Shortcut for "--browser=brave".)
34
34
  --comet (Shortcut for "--browser=comet".)
35
- --atlas (Shortcut for "--browser=atlas".)
36
35
  --chromium (Shortcut for using base `Chromium`)
37
36
  --cft (Shortcut for using `Chrome for Testing`)
38
37
  --chs (Shortcut for using `Chrome-Headless-Shell`)
@@ -214,13 +213,6 @@ def pytest_addoption(parser):
214
213
  default=False,
215
214
  help="""Shortcut for --browser=comet""",
216
215
  )
217
- parser.addoption(
218
- "--atlas",
219
- action="store_true",
220
- dest="use_atlas",
221
- default=False,
222
- help="""Shortcut for --browser=atlas""",
223
- )
224
216
  parser.addoption(
225
217
  "--use-chromium",
226
218
  "--chromium",
@@ -1555,16 +1547,6 @@ def pytest_addoption(parser):
1555
1547
  sb_config._cdp_browser = "comet"
1556
1548
  sb_config._cdp_bin_loc = bin_loc
1557
1549
  browser_list.append("--browser=comet")
1558
- if "--browser=atlas" in sys_argv or "--browser atlas" in sys_argv:
1559
- if not bin_loc_in_options:
1560
- bin_loc = detect_b_ver.get_binary_location("atlas")
1561
- if os.path.exists(bin_loc):
1562
- browser_changes += 1
1563
- browser_set = "atlas"
1564
- sb_config._browser_shortcut = "atlas"
1565
- sb_config._cdp_browser = "atlas"
1566
- sb_config._cdp_bin_loc = bin_loc
1567
- browser_list.append("--browser=atlas")
1568
1550
  browser_text = browser_set
1569
1551
  if "--chrome" in sys_argv and not browser_set == "chrome":
1570
1552
  browser_changes += 1
@@ -1621,16 +1603,6 @@ def pytest_addoption(parser):
1621
1603
  sb_config._cdp_browser = "comet"
1622
1604
  sb_config._cdp_bin_loc = bin_loc
1623
1605
  browser_list.append("--comet")
1624
- if "--atlas" in sys_argv and not browser_set == "atlas":
1625
- if not bin_loc_in_options:
1626
- bin_loc = detect_b_ver.get_binary_location("atlas")
1627
- if os.path.exists(bin_loc):
1628
- browser_changes += 1
1629
- browser_text = "atlas"
1630
- sb_config._browser_shortcut = "atlas"
1631
- sb_config._cdp_browser = "atlas"
1632
- sb_config._cdp_bin_loc = bin_loc
1633
- browser_list.append("--atlas")
1634
1606
  if browser_changes > 1:
1635
1607
  message = "\n TOO MANY browser types were entered!"
1636
1608
  message += "\n There were %s found:\n > %s" % (
@@ -1644,7 +1616,7 @@ def pytest_addoption(parser):
1644
1616
  using_recorder
1645
1617
  and browser_changes == 1
1646
1618
  and browser_text not in [
1647
- "chrome", "edge", "opera", "brave", "comet", "atlas", "chromium"
1619
+ "chrome", "edge", "opera", "brave", "comet", "chromium"
1648
1620
  ]
1649
1621
  ):
1650
1622
  message = (
@@ -1668,7 +1640,7 @@ def pytest_addoption(parser):
1668
1640
  if (
1669
1641
  browser_changes == 1
1670
1642
  and browser_text not in [
1671
- "chrome", "opera", "brave", "comet", "atlas", "chromium"
1643
+ "chrome", "opera", "brave", "comet", "chromium"
1672
1644
  ]
1673
1645
  and undetectable
1674
1646
  ):
@@ -1710,10 +1682,6 @@ def pytest_configure(config):
1710
1682
  bin_loc = detect_b_ver.get_binary_location("comet")
1711
1683
  if bin_loc and os.path.exists(bin_loc):
1712
1684
  sb_config.browser = "comet"
1713
- elif config.getoption("use_atlas"):
1714
- bin_loc = detect_b_ver.get_binary_location("atlas")
1715
- if bin_loc and os.path.exists(bin_loc):
1716
- sb_config.browser = "atlas"
1717
1685
  sb_config.account = config.getoption("account")
1718
1686
  sb_config.data = config.getoption("data")
1719
1687
  sb_config.var1 = config.getoption("var1")
@@ -1735,7 +1703,7 @@ def pytest_configure(config):
1735
1703
  sb_config.headless = True # Firefox has regular headless
1736
1704
  elif (
1737
1705
  sb_config.browser not in [
1738
- "chrome", "edge", "opera", "brave", "comet", "atlas", "chromium"
1706
+ "chrome", "edge", "opera", "brave", "comet", "chromium"
1739
1707
  ]
1740
1708
  ):
1741
1709
  sb_config.headless2 = False # Only for Chromium browsers
@@ -1776,13 +1744,6 @@ def pytest_configure(config):
1776
1744
  bin_loc = detect_b_ver.get_binary_location("comet")
1777
1745
  if bin_loc and os.path.exists(bin_loc):
1778
1746
  sb_config.binary_location = bin_loc
1779
- elif (
1780
- config.getoption("use_atlas")
1781
- or sb_config._browser_shortcut == "atlas"
1782
- ):
1783
- bin_loc = detect_b_ver.get_binary_location("atlas")
1784
- if bin_loc and os.path.exists(bin_loc):
1785
- sb_config.binary_location = bin_loc
1786
1747
  if config.getoption("use_chromium") and not sb_config.binary_location:
1787
1748
  sb_config.binary_location = "_chromium_"
1788
1749
  elif config.getoption("use_cft") and not sb_config.binary_location: