seleniumbase 4.15.14__tar.gz → 4.16.0__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 (518) hide show
  1. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/PKG-INFO +4 -4
  2. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/README.md +3 -3
  3. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/ReadMe.md +18 -28
  4. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/custom_settings.py +13 -1
  5. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/hack_the_planet.py +2 -2
  6. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/raw_selenium/ReadMe.md +2 -2
  7. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_download_files.py +1 -0
  8. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_error_page.py +1 -1
  9. seleniumbase-4.16.0/examples/test_geolocation.py +41 -0
  10. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/chinese_test_1.py +1 -1
  11. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/korean_test_1.py +2 -2
  12. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/spanish_test_1.py +2 -2
  13. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/uc_cdp_events.py +11 -1
  14. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/verify_undetected.py +11 -1
  15. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/customizing_test_runs.md +5 -2
  16. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/happy_customers.md +1 -0
  17. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/method_summary.md +2 -0
  18. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/syntax_formats.md +5 -5
  19. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/webdriver_installation.md +3 -3
  20. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/requirements.txt +5 -4
  21. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/requirements.txt +4 -4
  22. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/sbase/__init__.py +1 -0
  23. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/__init__.py +1 -0
  24. seleniumbase-4.16.0/seleniumbase/__version__.py +2 -0
  25. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/behave/behave_sb.py +12 -19
  26. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/common/exceptions.py +5 -0
  27. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/config/settings.py +7 -0
  28. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/ReadMe.md +2 -2
  29. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/run.py +5 -4
  30. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_behave_gui.py +6 -9
  31. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_caseplans.py +2 -5
  32. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_commander.py +5 -8
  33. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_install.py +43 -54
  34. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkchart.py +12 -7
  35. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkfile.py +1 -2
  36. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkpres.py +6 -1
  37. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_print.py +2 -0
  38. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_recorder.py +3 -2
  39. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/browser_launcher.py +13 -27
  40. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/capabilities_parser.py +2 -3
  41. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/detect_b_ver.py +3 -4
  42. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/jqc_helper.py +2 -4
  43. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/mysql.py +1 -1
  44. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/proxy_helper.py +65 -0
  45. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/recorder_helper.py +1 -1
  46. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/s3_manager.py +29 -23
  47. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/session_helper.py +2 -6
  48. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/settings_parser.py +2 -0
  49. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/base_case.py +31 -13
  50. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/constants.py +1 -1
  51. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/css_to_xpath.py +1 -2
  52. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/errors.py +2 -7
  53. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/js_utils.py +8 -16
  54. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/page_actions.py +3 -6
  55. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/page_utils.py +1 -1
  56. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/shared_utils.py +26 -79
  57. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/xpath_to_css.py +1 -3
  58. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/base_plugin.py +1 -1
  59. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/basic_test_info.py +1 -1
  60. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/db_reporting_plugin.py +2 -2
  61. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/driver_manager.py +2 -1
  62. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/page_source.py +2 -4
  63. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/pytest_plugin.py +9 -8
  64. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/s3_logging_plugin.py +20 -9
  65. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/sb_manager.py +2 -2
  66. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/screen_shots.py +2 -2
  67. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/selenium_plugin.py +5 -8
  68. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/translator.py +397 -396
  69. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/undetected/__init__.py +17 -37
  70. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/grid_hub.py +2 -1
  71. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/grid_node.py +2 -1
  72. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase.egg-info/PKG-INFO +4 -4
  73. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase.egg-info/SOURCES.txt +1 -0
  74. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase.egg-info/requires.txt +4 -4
  75. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/setup.py +4 -4
  76. seleniumbase-4.15.14/seleniumbase/__version__.py +0 -2
  77. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.github/Workflows.md +0 -0
  78. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.github/workflows/pages.yml +0 -0
  79. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.github/workflows/python-nightly-mac.yml +0 -0
  80. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.github/workflows/python-nightly-ubuntu.yml +0 -0
  81. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.github/workflows/python-nightly-windows.yml +0 -0
  82. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.github/workflows/python-package-legacy.yml +0 -0
  83. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.github/workflows/python-package.yml +0 -0
  84. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.gitignore +0 -0
  85. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/.travis.yml +0 -0
  86. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/CHANGELOG.md +0 -0
  87. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/CNAME +0 -0
  88. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/CODE_OF_CONDUCT.md +0 -0
  89. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/CONTRIBUTING.md +0 -0
  90. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/Dockerfile +0 -0
  91. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/LICENSE +0 -0
  92. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/MANIFEST.in +0 -0
  93. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/SECURITY.md +0 -0
  94. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/_config.yml +0 -0
  95. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/azure-pipelines.yml +0 -0
  96. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/__init__.py +0 -0
  97. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/basic_test.py +0 -0
  98. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/ReadMe.md +0 -0
  99. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/__init__.py +0 -0
  100. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/behave.ini +0 -0
  101. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/__init__.py +0 -0
  102. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/behave.ini +0 -0
  103. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/calculator.feature +0 -0
  104. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/environment.py +0 -0
  105. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/fail_page.feature +0 -0
  106. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/realworld.feature +0 -0
  107. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/__init__.py +0 -0
  108. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/calculator.py +0 -0
  109. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/fail_page.py +0 -0
  110. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/imported.py +0 -0
  111. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
  112. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/behave_bdd/features/swag_labs.feature +0 -0
  113. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/ReadMe.md +0 -0
  114. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/__init__.py +0 -0
  115. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/base_test_case.py +0 -0
  116. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/boilerplate_test.py +0 -0
  117. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/classic_obj_test.py +0 -0
  118. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/page_objects.py +0 -0
  119. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/__init__.py +0 -0
  120. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
  121. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
  122. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
  123. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
  124. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/google_objects.py +0 -0
  125. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/google_test.py +0 -0
  126. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/sb_swag_test.py +0 -0
  127. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/swag_labs_test.py +0 -0
  128. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/samples/test_page_objects.py +0 -0
  129. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/boilerplates/sb_fixture_test.py +0 -0
  130. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/capabilities/ReadMe.md +0 -0
  131. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/capabilities/mac_cap_file.py +0 -0
  132. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/capabilities/sample_cap_file_BS.py +0 -0
  133. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/capabilities/sample_cap_file_SL.py +0 -0
  134. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/capabilities/selenoid_cap_file.py +0 -0
  135. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/capabilities/win10_cap_file.py +0 -0
  136. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
  137. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
  138. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
  139. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
  140. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
  141. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
  142. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
  143. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
  144. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/case_summary.md +0 -0
  145. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/ReadMe.md +0 -0
  146. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/chart_presentation.py +0 -0
  147. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/my_chart.py +0 -0
  148. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/pie_charts.py +0 -0
  149. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/test_area_chart.py +0 -0
  150. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/test_display_chart.py +0 -0
  151. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/test_line_chart.py +0 -0
  152. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/test_multi_series.py +0 -0
  153. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/chart_maker/test_save_chart.py +0 -0
  154. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/coffee_cart_tests.py +0 -0
  155. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/desktop_apps/ReadMe.md +0 -0
  156. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/desktop_apps/recorder.py +0 -0
  157. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/dialog_boxes/ReadMe.md +0 -0
  158. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/dialog_boxes/dialog_box_tour.py +0 -0
  159. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/edge_test.py +0 -0
  160. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/example_config.cfg +0 -0
  161. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/example_logs/ReadMe.md +0 -0
  162. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/example_logs/basic_test_info.txt +0 -0
  163. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/example_logs/page_source.html +0 -0
  164. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/example_logs/screenshot.png +0 -0
  165. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/github_test.py +0 -0
  166. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/gui_test_runner.py +0 -0
  167. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/handle_alert_test.py +0 -0
  168. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/iframe_tests.py +0 -0
  169. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/locale_code_test.py +0 -0
  170. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/master_qa/ReadMe.md +0 -0
  171. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/master_qa/__init__.py +0 -0
  172. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/master_qa/basic_masterqa_test_0.py +0 -0
  173. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/master_qa/masterqa_test_1.py +0 -0
  174. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/master_qa/pytest.ini +0 -0
  175. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/__init__.py +0 -0
  176. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/protractor/ReadMe.md +0 -0
  177. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/protractor/__init__.py +0 -0
  178. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/protractor/example_spec.js +0 -0
  179. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/protractor/example_test.py +0 -0
  180. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/protractor/input_spec.js +0 -0
  181. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/protractor/input_test.py +0 -0
  182. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/protractor/mat_paginator_spec.js +0 -0
  183. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/protractor/mat_paginator_test.py +0 -0
  184. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/raw_selenium/__init__.py +0 -0
  185. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
  186. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
  187. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/raw_selenium/messy_raw.py +0 -0
  188. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/raw_selenium/pytest.ini +0 -0
  189. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/raw_selenium/refined_raw.py +0 -0
  190. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/migration/raw_selenium/simple_sbase.py +0 -0
  191. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/my_first_test.py +0 -0
  192. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/nth_child_test.py +0 -0
  193. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/offline_examples/__init__.py +0 -0
  194. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/offline_examples/demo_page.html +0 -0
  195. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/offline_examples/load_html_test.py +0 -0
  196. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/offline_examples/test_demo_page.py +0 -0
  197. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/offline_examples/test_handle_alerts.py +0 -0
  198. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/offline_examples/test_request_fixture.py +0 -0
  199. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/offline_examples/test_user_agent.py +0 -0
  200. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/old_wordle_script.py +0 -0
  201. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/parameterized_test.py +0 -0
  202. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/performance_test.py +0 -0
  203. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/presenter/ReadMe.md +0 -0
  204. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/presenter/core_presentation.py +0 -0
  205. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/presenter/edge_presentation.py +0 -0
  206. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/presenter/fundamentals.py +0 -0
  207. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/presenter/my_presentation.py +0 -0
  208. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/presenter/py_virtual_envs.py +0 -0
  209. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/proxy_test.py +0 -0
  210. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/pytest.ini +0 -0
  211. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/rate_limiting_test.py +0 -0
  212. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/raw_browser_launcher.py +0 -0
  213. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/raw_call.py +0 -0
  214. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/raw_driver_context.py +0 -0
  215. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/raw_file_call.py +0 -0
  216. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/raw_main_call.py +0 -0
  217. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/raw_parameter_script.py +0 -0
  218. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/raw_sb.py +0 -0
  219. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/raw_test_scripts.py +0 -0
  220. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/setup.cfg +0 -0
  221. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/shadow_root_test.py +0 -0
  222. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/swag_labs_user_tests.py +0 -0
  223. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_apple_site.py +0 -0
  224. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_assert_elements.py +0 -0
  225. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_calculator.py +0 -0
  226. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_canvas.py +0 -0
  227. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_checkboxes.py +0 -0
  228. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_chinese_pdf.py +0 -0
  229. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_chromedriver.py +0 -0
  230. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_coffee_cart.py +0 -0
  231. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_console_logging.py +0 -0
  232. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_contains_selector.py +0 -0
  233. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_cycle_elements.py +0 -0
  234. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_decryption.py +0 -0
  235. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_deferred_asserts.py +0 -0
  236. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_demo_site.py +0 -0
  237. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_detect_404s.py +0 -0
  238. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_docs_site.py +0 -0
  239. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_double_click.py +0 -0
  240. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_download_images.py +0 -0
  241. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_drag_and_drop.py +0 -0
  242. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_event_firing.py +0 -0
  243. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_fail.py +0 -0
  244. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_get_locale_code.py +0 -0
  245. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_get_pdf_text.py +0 -0
  246. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_get_user_agent.py +0 -0
  247. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_hack_search.py +0 -0
  248. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_image_saving.py +0 -0
  249. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_inspect_html.py +0 -0
  250. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_login.py +0 -0
  251. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_markers.py +0 -0
  252. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_mfa_login.py +0 -0
  253. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_multiple_drivers.py +0 -0
  254. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_null.py +0 -0
  255. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_override_driver.py +0 -0
  256. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_override_sb_fixture.py +0 -0
  257. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_parse_soup.py +0 -0
  258. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_pdf_asserts.py +0 -0
  259. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_pytest_parametrize.py +0 -0
  260. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_repeat_tests.py +0 -0
  261. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_request_sb_fixture.py +0 -0
  262. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_save_screenshots.py +0 -0
  263. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_sb_fixture.py +0 -0
  264. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_scrape_bing.py +0 -0
  265. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_select_options.py +0 -0
  266. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_shadow_dom.py +0 -0
  267. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_show_file_choosers.py +0 -0
  268. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_skype_site.py +0 -0
  269. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_suite.py +0 -0
  270. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_swag_labs.py +0 -0
  271. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_tinymce.py +0 -0
  272. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_todomvc.py +0 -0
  273. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_url_asserts.py +0 -0
  274. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_usefixtures.py +0 -0
  275. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_verify_chromedriver.py +0 -0
  276. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_window_switching.py +0 -0
  277. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_xfail.py +0 -0
  278. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/test_xkcd.py +0 -0
  279. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/time_limit_test.py +0 -0
  280. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/ReadMe.md +0 -0
  281. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/bootstrap_google_tour.py +0 -0
  282. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
  283. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/driverjs_maps_tour.py +0 -0
  284. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/google_tour.py +0 -0
  285. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/hopscotch_google_tour.py +0 -0
  286. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/introjs_google_tour.py +0 -0
  287. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/maps_introjs_tour.py +0 -0
  288. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/octocat_tour.py +0 -0
  289. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/shepherd_google_tour.py +0 -0
  290. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/tour_examples/xkcd_tour.py +0 -0
  291. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/ReadMe.md +0 -0
  292. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/dutch_test_1.py +0 -0
  293. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/english_test_1.py +0 -0
  294. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/french_test_1.py +0 -0
  295. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/italian_test_1.py +0 -0
  296. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/japanese_test_1.py +0 -0
  297. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/portuguese_test_1.py +0 -0
  298. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/pytest.ini +0 -0
  299. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/translations/russian_test_1.py +0 -0
  300. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/unit_tests/ReadMe.md +0 -0
  301. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/unit_tests/verify_framework.py +0 -0
  302. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/upgrade_chromedriver.py +0 -0
  303. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/upload_file_test.py +0 -0
  304. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/user_agent_test.py +0 -0
  305. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/ReadMe.md +0 -0
  306. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/__init__.py +0 -0
  307. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
  308. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
  309. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
  310. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
  311. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
  312. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
  313. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/layout_test.py +0 -0
  314. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/python_home_test.py +0 -0
  315. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/test_layout_fail.py +0 -0
  316. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/visual_testing/xkcd_visual_test.py +0 -0
  317. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/wordle_test.py +0 -0
  318. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/xpath_test.py +0 -0
  319. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/examples/youtube_search_test.py +0 -0
  320. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/ReadMe.md +0 -0
  321. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/behave_gui.md +0 -0
  322. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/case_plans.md +0 -0
  323. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/chinese.md +0 -0
  324. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/commander.md +0 -0
  325. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/demo_mode.md +0 -0
  326. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/desired_capabilities.md +0 -0
  327. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/features_list.md +0 -0
  328. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/hidden_files_info.md +0 -0
  329. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/how_it_works.md +0 -0
  330. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/html_inspector.md +0 -0
  331. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/install.md +0 -0
  332. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/install_python_pip_git.md +0 -0
  333. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/js_package_manager.md +0 -0
  334. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/locale_codes.md +0 -0
  335. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/mobile_testing.md +0 -0
  336. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/mysql_installation.md +0 -0
  337. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/recorder_mode.md +0 -0
  338. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/shadow_dom.md +0 -0
  339. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/thank_you.md +0 -0
  340. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/translations.md +0 -0
  341. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/useful_grep_commands.md +0 -0
  342. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/using_safari_driver.md +0 -0
  343. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/verify_webdriver.md +0 -0
  344. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/help_docs/virtualenv_instructions.md +0 -0
  345. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/install.sh +0 -0
  346. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/__init__.py +0 -0
  347. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
  348. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/azure/jenkins/ReadMe.md +0 -0
  349. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/ReadMe.md +0 -0
  350. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/behave.ini +0 -0
  351. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/__init__.py +0 -0
  352. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/behave.ini +0 -0
  353. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/calculator.feature +0 -0
  354. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/environment.py +0 -0
  355. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/fail_page.feature +0 -0
  356. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/realworld.feature +0 -0
  357. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/steps/__init__.py +0 -0
  358. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/steps/calculator.py +0 -0
  359. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/steps/fail_page.py +0 -0
  360. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/steps/real_world.py +0 -0
  361. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/steps/swag_labs.py +0 -0
  362. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/behave/features/swag_labs.feature +0 -0
  363. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/brython/ReadMe.md +0 -0
  364. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/brython/index.html +0 -0
  365. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/brython/index.py +0 -0
  366. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/brython/library.html +0 -0
  367. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/docker/ReadMe.md +0 -0
  368. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/docker/docker-entrypoint.sh +0 -0
  369. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/docker/docker_config.cfg +0 -0
  370. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
  371. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/docker/run_docker_test_in_firefox.sh +0 -0
  372. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/github/ReadMe.md +0 -0
  373. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/github/workflows/ReadMe.md +0 -0
  374. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/github/workflows/extras.md +0 -0
  375. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/google_cloud/ReadMe.md +0 -0
  376. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/katalon/ReadMe.md +0 -0
  377. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/linux/Linuxfile.sh +0 -0
  378. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/linux/ReadMe.md +0 -0
  379. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/linux/Xvfb_launcher.sh +0 -0
  380. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/linux/jenkins_permissions.sh +0 -0
  381. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/linux/tomcat_permissions.sh +0 -0
  382. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/node_js/ReadMe.md +0 -0
  383. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/node_js/__init__.py +0 -0
  384. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/node_js/index.html +0 -0
  385. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/node_js/my_first_test.py +0 -0
  386. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/node_js/npm-shrinkwrap.json +0 -0
  387. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/node_js/package.json +0 -0
  388. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/node_js/server.js +0 -0
  389. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/node_js/test_demo_site.py +0 -0
  390. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/selenium_grid/ReadMe.md +0 -0
  391. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/integrations/selenium_ide/ReadMe.md +0 -0
  392. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs.yml +0 -0
  393. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/ReadMe.txt +0 -0
  394. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/docs_instructions.txt +0 -0
  395. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/dash_pie.png +0 -0
  396. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/dash_pie_2.png +0 -0
  397. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/dash_pie_3.png +0 -0
  398. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/favicon.ico +0 -0
  399. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/grad_logo.png +0 -0
  400. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/green_icon.png +0 -0
  401. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/green_logo.png +0 -0
  402. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/green_logo2.png +0 -0
  403. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/green_logo3.png +0 -0
  404. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/logo3.png +0 -0
  405. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/logo3a.png +0 -0
  406. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/logo3b.png +0 -0
  407. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/logo3c.png +0 -0
  408. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/logo4.png +0 -0
  409. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/logo5.png +0 -0
  410. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/logo6.png +0 -0
  411. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/logo7.png +0 -0
  412. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/sb_icon.png +0 -0
  413. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/sb_logo_10.png +0 -0
  414. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/sb_logo_7.png +0 -0
  415. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/side_by_side.png +0 -0
  416. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_facebook.svg +0 -0
  417. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_github.svg +0 -0
  418. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_gitter.svg +0 -0
  419. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_instagram.svg +0 -0
  420. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_twitter.svg +0 -0
  421. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/index.html +0 -0
  422. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/mkdocs_build/prepare.py +0 -0
  423. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/pytest.ini +0 -0
  424. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/sbase/ReadMe.txt +0 -0
  425. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/sbase/__main__.py +0 -0
  426. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/sbase/steps.py +0 -0
  427. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/ReadMe.md +0 -0
  428. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/__main__.py +0 -0
  429. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/behave/__init__.py +0 -0
  430. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/behave/behave_helper.py +0 -0
  431. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/behave/steps.py +0 -0
  432. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/common/ReadMe.md +0 -0
  433. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/common/__init__.py +0 -0
  434. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/common/decorators.py +0 -0
  435. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/common/encryption.py +0 -0
  436. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/common/obfuscate.py +0 -0
  437. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/common/unobfuscate.py +0 -0
  438. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/config/__init__.py +0 -0
  439. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/config/ad_block_list.py +0 -0
  440. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/config/proxy_list.py +0 -0
  441. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/__init__.py +0 -0
  442. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/logo_helper.py +0 -0
  443. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/rich_helper.py +0 -0
  444. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  445. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  446. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  447. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/__init__.py +0 -0
  448. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/application_manager.py +0 -0
  449. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/colored_traceback.py +0 -0
  450. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/create_db_tables.sql +0 -0
  451. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/download_helper.py +0 -0
  452. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/encoded_images.py +0 -0
  453. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/log_helper.py +0 -0
  454. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/report_helper.py +0 -0
  455. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/style_sheet.py +0 -0
  456. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/testcase_manager.py +0 -0
  457. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/tour_helper.py +0 -0
  458. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/core/visual_helper.py +0 -0
  459. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/drivers/ReadMe.md +0 -0
  460. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/drivers/__init__.py +0 -0
  461. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/extensions/ReadMe.md +0 -0
  462. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/extensions/__init__.py +0 -0
  463. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/extensions/ad_block.zip +0 -0
  464. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/extensions/disable_csp.zip +0 -0
  465. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/extensions/recorder.zip +0 -0
  466. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/extensions/sbase_ext.zip +0 -0
  467. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/__init__.py +0 -0
  468. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/unittest_helper.py +0 -0
  469. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/fixtures/words.py +0 -0
  470. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/js_code/__init__.py +0 -0
  471. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/js_code/active_css_js.py +0 -0
  472. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/js_code/live_js.py +0 -0
  473. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/js_code/recorder_js.py +0 -0
  474. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/masterqa/ReadMe.md +0 -0
  475. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/masterqa/__init__.py +0 -0
  476. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/masterqa/master_qa.py +0 -0
  477. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/plugins/__init__.py +0 -0
  478. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/resources/ReadMe.md +0 -0
  479. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/resources/__init__.py +0 -0
  480. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/resources/favicon.ico +0 -0
  481. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/__init__.py +0 -0
  482. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/chinese.py +0 -0
  483. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/dutch.py +0 -0
  484. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/french.py +0 -0
  485. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/italian.py +0 -0
  486. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/japanese.py +0 -0
  487. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/korean.py +0 -0
  488. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/master_dict.py +0 -0
  489. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/portuguese.py +0 -0
  490. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/russian.py +0 -0
  491. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/translate/spanish.py +0 -0
  492. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/undetected/cdp.py +0 -0
  493. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/undetected/dprocess.py +0 -0
  494. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/undetected/options.py +0 -0
  495. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/undetected/patcher.py +0 -0
  496. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/undetected/reactor.py +0 -0
  497. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/undetected/webelement.py +0 -0
  498. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/__init__.py +0 -0
  499. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
  500. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  501. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  502. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  503. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  504. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  505. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  506. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  507. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  508. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  509. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
  510. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  511. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  512. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase.egg-info/dependency_links.txt +0 -0
  513. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase.egg-info/entry_points.txt +0 -0
  514. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/seleniumbase.egg-info/top_level.txt +0 -0
  515. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/setup.cfg +0 -0
  516. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/virtualenv_install.sh +0 -0
  517. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/win_install.bat +0 -0
  518. {seleniumbase-4.15.14 → seleniumbase-4.16.0}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.15.14
3
+ Version: 4.16.0
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
@@ -197,7 +197,7 @@ class CoffeeCartTest(BaseCase):
197
197
 
198
198
  <p>💡 With raw Selenium, commands that use selectors need to specify the type of selector (eg. <code>"css selector", "button#myButton"</code>). With SeleniumBase, there's auto-detection between CSS Selectors and XPath, which means you don't need to specify the type of selector in your commands (<i>but optionally you could</i>).</p>
199
199
 
200
- <p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in "\n".<br />With raw Selenium, those actions require multiple method calls.</p>
200
+ <p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in <code>"\n"</code>.<br />With raw Selenium, those actions require multiple method calls.</p>
201
201
 
202
202
  <p>💡 SeleniumBase uses default timeout values when not set:<br />
203
203
  ✅<code>self.click("button")</code><br />
@@ -720,8 +720,8 @@ pytest test_coffee_cart.py --trace
720
720
  --incognito # (Enable Chrome's Incognito mode.)
721
721
  --guest # (Enable Chrome's Guest mode.)
722
722
  --devtools # (Open Chrome's DevTools when the browser opens.)
723
- --reuse-session | --rs # (Reuse browser session for all tests.)
724
- --reuse-class-session | --rcs # (Reuse session for tests in class.)
723
+ --rs | --reuse-session # (Reuse browser session for all tests.)
724
+ --rcs | --reuse-class-session # (Reuse session for tests in class.)
725
725
  --crumbs # (Delete all cookies between tests reusing a session.)
726
726
  --disable-beforeunload # (Disable the "beforeunload" event on Chrome.)
727
727
  --window-size=WIDTH,HEIGHT # (Set the browser's starting window size.)
@@ -136,7 +136,7 @@ class CoffeeCartTest(BaseCase):
136
136
 
137
137
  <p>💡 With raw Selenium, commands that use selectors need to specify the type of selector (eg. <code>"css selector", "button#myButton"</code>). With SeleniumBase, there's auto-detection between CSS Selectors and XPath, which means you don't need to specify the type of selector in your commands (<i>but optionally you could</i>).</p>
138
138
 
139
- <p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in "\n".<br />With raw Selenium, those actions require multiple method calls.</p>
139
+ <p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in <code>"\n"</code>.<br />With raw Selenium, those actions require multiple method calls.</p>
140
140
 
141
141
  <p>💡 SeleniumBase uses default timeout values when not set:<br />
142
142
  ✅<code>self.click("button")</code><br />
@@ -659,8 +659,8 @@ pytest test_coffee_cart.py --trace
659
659
  --incognito # (Enable Chrome's Incognito mode.)
660
660
  --guest # (Enable Chrome's Guest mode.)
661
661
  --devtools # (Open Chrome's DevTools when the browser opens.)
662
- --reuse-session | --rs # (Reuse browser session for all tests.)
663
- --reuse-class-session | --rcs # (Reuse session for tests in class.)
662
+ --rs | --reuse-session # (Reuse browser session for all tests.)
663
+ --rcs | --reuse-class-session # (Reuse session for tests in class.)
664
664
  --crumbs # (Delete all cookies between tests reusing a session.)
665
665
  --disable-beforeunload # (Disable the "beforeunload" event on Chrome.)
666
666
  --window-size=WIDTH,HEIGHT # (Set the browser's starting window size.)
@@ -19,7 +19,7 @@
19
19
 
20
20
  --------
21
21
 
22
- Run an [example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_demo_site.py): (Default option: ``--browser=chrome``)
22
+ Run an [example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_demo_site.py): (Default option: ``--chrome``)
23
23
 
24
24
  ```bash
25
25
  pytest test_demo_site.py
@@ -37,7 +37,7 @@ pytest my_first_test.py --browser=firefox
37
37
 
38
38
  --------
39
39
 
40
- Run an example test in Demo Mode: (highlight assertions)
40
+ Run an example test in ``--demo`` mode: (highlight assertions)
41
41
 
42
42
  ```bash
43
43
  pytest test_swag_labs.py --demo
@@ -67,7 +67,7 @@ pytest wordle_test.py
67
67
 
68
68
  --------
69
69
 
70
- Run an example test in Headless Mode: (invisible browser)
70
+ Run an example test in ``--headless`` mode: (invisible browser)
71
71
 
72
72
  ```bash
73
73
  pytest my_first_test.py --headless
@@ -85,7 +85,7 @@ pytest test_swag_labs.py --mobile
85
85
 
86
86
  --------
87
87
 
88
- Run another [example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_xkcd.py) in Demo Mode: (highlight assertions)
88
+ Run an [example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_xkcd.py) in ``--demo`` mode: (highlight assertions)
89
89
 
90
90
  ```bash
91
91
  pytest test_xkcd.py --demo
@@ -103,10 +103,10 @@ pytest test_suite.py -v
103
103
 
104
104
  --------
105
105
 
106
- Run a test suite multi-threaded using [n] threads:
106
+ Run a test suite using multiple parallel processes (``-n=NUM``):
107
107
 
108
108
  ```bash
109
- pytest test_suite.py -n=4
109
+ pytest test_suite.py -n=8
110
110
  ```
111
111
 
112
112
  --------
@@ -127,7 +127,7 @@ pytest test_suite.py --dashboard
127
127
 
128
128
  --------
129
129
 
130
- Run a test suite and generate a pytest report:
130
+ Run a test suite and generate a ``pytest`` report:
131
131
 
132
132
  ```bash
133
133
  pytest test_suite.py --html=report.html
@@ -143,15 +143,17 @@ pytest test_fail.py
143
143
 
144
144
  --------
145
145
 
146
- Run a failing test with Debug-mode enabled: (``pdb`` activates on failures)
146
+ Run a failing test that activates ``pdb`` debug mode on failure:
147
147
 
148
148
  ```bash
149
149
  pytest test_fail.py --pdb -s
150
150
  ```
151
151
 
152
+ > (**``pdb``** commands: ``n``, ``c``, ``s``, ``u``, ``d`` => ``next``, ``continue``, ``step``, ``up``, ``down``)
153
+
152
154
  --------
153
155
 
154
- Run a test suite that demonstrates the use of pytest markers:
156
+ Run a test suite that demonstrates the use of ``pytest`` markers:
155
157
 
156
158
  ```bash
157
159
  pytest -m marker_test_suite -v
@@ -162,7 +164,7 @@ pytest -m marker_test_suite -v
162
164
  Run a test suite that reuses the browser session between tests:
163
165
 
164
166
  ```bash
165
- pytest test_suite.py --reuse-session
167
+ pytest test_suite.py --rs
166
168
  ```
167
169
 
168
170
  --------
@@ -183,7 +185,7 @@ pytest upload_file_test.py
183
185
 
184
186
  --------
185
187
 
186
- Try the new SeleniumBase Commander! A GUI for pytest:
188
+ 🎖️ **SeleniumBase Commander** is a GUI for ``pytest``:
187
189
 
188
190
  ```bash
189
191
  sbase gui
@@ -195,15 +197,13 @@ sbase gui
195
197
 
196
198
  <b>SeleniumBase tests can also be run with ``pynose``:</b>
197
199
 
198
- Run an example test with pynose:
199
-
200
200
  ```bash
201
201
  pynose my_first_test.py
202
202
  ```
203
203
 
204
204
  --------
205
205
 
206
- Run an example test suite and generate a pynose test report:
206
+ Run an example test suite and generate a ``pynose`` test report:
207
207
 
208
208
  ```bash
209
209
  pynose test_suite.py --report --show-report
@@ -211,7 +211,7 @@ pynose test_suite.py --report --show-report
211
211
 
212
212
  --------
213
213
 
214
- Run an example test using a pynose configuration file:
214
+ Run an example test using a ``pynose`` configuration file:
215
215
 
216
216
  ```bash
217
217
  pynose my_first_test.py --config=example_config.cfg
@@ -219,7 +219,7 @@ pynose my_first_test.py --config=example_config.cfg
219
219
 
220
220
  --------
221
221
 
222
- For more advanced run commands, such as using a proxy server, see [../help_docs/customizing_test_runs.md](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md)
222
+ For more advanced **run commands**, such as using a proxy server, see [../help_docs/customizing_test_runs.md](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md)
223
223
 
224
224
  --------
225
225
 
@@ -229,7 +229,7 @@ If you just need to perform some quick website verification on various devices,
229
229
 
230
230
  --------
231
231
 
232
- To make things easier, here's a simple GUI program that allows you to run a few example tests by pressing a button:
232
+ To make things easier, here's a **simple GUI program** that allows you to run a few example tests by pressing a button:
233
233
 
234
234
  ```bash
235
235
  python gui_test_runner.py
@@ -237,17 +237,7 @@ python gui_test_runner.py
237
237
 
238
238
  <img src="https://seleniumbase.github.io/cdn/img/gui_test_runner.png" title="GUI Test Runner" width="320" />
239
239
 
240
- (The newer [SeleniumBase Commander](https://seleniumbase.io/help_docs/commander/) improves on that.)
241
-
242
- --------
243
-
244
- 🎖️ To launch the SeleniumBase Commander GUI for pytest:
245
-
246
- ```bash
247
- sbase gui
248
- ```
249
-
250
- <img src="https://seleniumbase.github.io/cdn/img/sbase_commander_wide.png" title="SeleniumBase Commander" width="600">
240
+ (The newer **[SeleniumBase Commander](https://seleniumbase.io/help_docs/commander/)** improves on that.)
251
241
 
252
242
  --------
253
243
 
@@ -19,10 +19,22 @@ PAGE_LOAD_TIMEOUT = 120
19
19
  # Selenium default = "normal"
20
20
  PAGE_LOAD_STRATEGY = "normal"
21
21
 
22
- # If False, only logs from the most recent test run will be saved.
22
+ # If True, existing logs from past test runs will be saved and take up space.
23
+ # If False, only the logs from the most recent test run will be saved locally.
24
+ # You can also archive existing logs on the command line with: "--archive_logs"
23
25
  ARCHIVE_EXISTING_LOGS = False
26
+
27
+ # If True, existing downloads from past runs will be saved and take up space.
28
+ # If False, only the downloads from the most recent run will be saved locally.
24
29
  ARCHIVE_EXISTING_DOWNLOADS = False
25
30
 
31
+ # If True, the last page screenshot will include the <body> and background.
32
+ # If False, the last page screenshot will only include the <body> section.
33
+ # Depending on the screen size, including a background could make the <body>
34
+ # appear very small in the screenshot, which may require manually zooming in
35
+ # on the <body> to see page details if you decide to include the background.
36
+ SCREENSHOT_WITH_BACKGROUND = False
37
+
26
38
  # If True, switch to new tabs automatically if a click opens a new one.
27
39
  # (Only happens if the initial tab is still on same URL as before.)
28
40
  SWITCH_TO_NEW_TABS_ON_CLICK = True
@@ -196,7 +196,7 @@ class HackTests(BaseCase):
196
196
  self.set_text_content('a[prettyslug="your-profile"]', "BASE")
197
197
  self.set_text_content('a[prettyslug="connect-tools"]', "ARE")
198
198
  self.set_text_content('a[prettyslug="administration"]', "BELONG")
199
- self.set_text_content('a[prettyslug="tutorials"]', "TO US")
199
+ self.set_text_content('a[prettyslug*="tutorials"]', "TO US")
200
200
  self.set_text_content("h1.article_title", aybabtu)
201
201
  self.highlight("h1", loops=4, scroll=False)
202
202
  self.highlight("div#global_menu", loops=2, scroll=False)
@@ -205,7 +205,7 @@ class HackTests(BaseCase):
205
205
  self.highlight('a[prettyslug="your-profile"]', loops=2, scroll=False)
206
206
  self.highlight('a[prettyslug="connect-tools"]', loops=1, scroll=False)
207
207
  self.highlight('a[prettyslug="administration"]', loops=1, scroll=False)
208
- self.highlight('a[prettyslug="tutorials"]', loops=2, scroll=False)
208
+ self.highlight('a[prettyslug*="tutorials"]', loops=2, scroll=False)
209
209
  self.highlight("h1.article_title", loops=5, scroll=False)
210
210
 
211
211
  self.open("https://kubernetes.io/")
@@ -47,7 +47,7 @@ With a complete test automation framework built, most of the hard work is alread
47
47
 
48
48
  <p>💡 With raw Selenium, commands that use selectors need to specify the type of selector (eg. <code>"css selector", "button#myButton"</code>). With SeleniumBase, there's auto-detection between CSS Selectors and XPath, which means you don't need to specify the type of selector in your commands (<i>but optionally you could</i>).</p>
49
49
 
50
- <p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in "\n".<br />With raw Selenium, those actions require multiple method calls.</p>
50
+ <p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in <code>"\n"</code>.<br />With raw Selenium, those actions require multiple method calls.</p>
51
51
 
52
52
  <p>💡 SeleniumBase uses default timeout values when not set, which means that methods automatically wait for elements to appear (<i>up to the timeout limit</i>) before failing:<br />✅<code>self.click("button")</code><br />With raw Selenium, methods would fail instantly (<i>by default</i>) if an element needed more time to load:<br />❌<code>self.driver.find_element(by="css selector", value="button").click()</code><br />(Reliable code is better than unreliable code.)</p>
53
53
 
@@ -64,4 +64,4 @@ With a complete test automation framework built, most of the hard work is alread
64
64
 
65
65
  --------
66
66
 
67
- [<img src="https://seleniumbase.io/cdn/img/fancy_logo_14.png" title="SeleniumBase" width="290">](https://github.com/seleniumbase/SeleniumBase)
67
+ [<img src="https://seleniumbase.github.io/cdn/img/fancy_logo_14.png" title="SeleniumBase" width="290">](https://github.com/seleniumbase/SeleniumBase)
@@ -1,6 +1,7 @@
1
1
  """Use SeleniumBase to download files and verify."""
2
2
  import math
3
3
  from seleniumbase import BaseCase
4
+ BaseCase.main(__name__, __file__)
4
5
 
5
6
 
6
7
  class DownloadTests(BaseCase):
@@ -14,4 +14,4 @@ class ErrorPageTests(BaseCase):
14
14
  self.highlight('img[alt*="404"]')
15
15
  self.highlight("img#octobi_wan_catnobi")
16
16
  self.highlight("img#speeder")
17
- self.save_screenshot_after_test = True # Automatic if test fails
17
+ self.save_screenshot_after_test = True
@@ -0,0 +1,41 @@
1
+ from seleniumbase import BaseCase
2
+ BaseCase.main(__name__, __file__)
3
+
4
+
5
+ class TestGeolocation(BaseCase):
6
+ def tearDown(self):
7
+ self.save_teardown_screenshot() # If test fails, or if "--screenshot"
8
+ if self.is_chromium() and not self._multithreaded:
9
+ # Reset Permissions and GeolocationOverride
10
+ self.execute_cdp_cmd("Browser.resetPermissions", {})
11
+ self.execute_cdp_cmd("Emulation.setGeolocationOverride", {})
12
+ super().tearDown()
13
+
14
+ def test_geolocation(self):
15
+ self.open("about:blank")
16
+ if self._multithreaded:
17
+ self.skip("Skipping test in multi-threaded mode.")
18
+ if not self.is_chromium():
19
+ print("\n* execute_cdp_cmd() is only for Chromium browsers")
20
+ self.skip("execute_cdp_cmd() is only for Chromium browsers")
21
+ self.execute_cdp_cmd(
22
+ "Browser.grantPermissions",
23
+ {
24
+ "origin": "https://www.openstreetmap.org/",
25
+ "permissions": ["geolocation"],
26
+ },
27
+ )
28
+ self.execute_cdp_cmd(
29
+ "Emulation.setGeolocationOverride",
30
+ {
31
+ "latitude": 48.87645,
32
+ "longitude": 2.26340,
33
+ "accuracy": 100,
34
+ },
35
+ )
36
+ self.open("https://www.openstreetmap.org/")
37
+ self.click("span.geolocate")
38
+ self.assert_url_contains("48.87645/2.26340")
39
+ self.save_screenshot_to_logs()
40
+ if not (self.headless or self.headless2 or self.xvfb):
41
+ self.sleep(2.5)
@@ -16,7 +16,7 @@ class 我的测试类(硒测试用例):
16
16
  self.输入文本("#searchInput", "麻婆豆腐")
17
17
  self.单击("#searchButton")
18
18
  self.断言文本("麻婆豆腐", "#firstHeading")
19
- self.断言元素('div.thumb div:contains("一家中餐館的麻婆豆腐")')
19
+ self.断言元素('figure:contains("一家中餐館的麻婆豆腐")')
20
20
  self.输入文本("#searchInput", "精武英雄")
21
21
  self.单击("#searchButton")
22
22
  self.断言元素('img[src*="Fist_of_legend.jpg"]')
@@ -11,11 +11,11 @@ class 테스트_클래스(셀레늄_테스트_케이스):
11
11
  self.JS_입력("#searchform input", "김치")
12
12
  self.클릭("#searchform button")
13
13
  self.텍스트_확인("김치", "#firstHeading")
14
- self.요소_확인('img[alt="Various kimchi.jpg"]')
14
+ self.요소_확인('img[src*="Various_kimchi.jpg"]')
15
15
  self.링크_텍스트_확인("한국 요리")
16
16
  self.JS_입력("#searchform input", "비빔밥")
17
17
  self.클릭("#searchform button")
18
18
  self.텍스트_확인("비빔밥", "#firstHeading")
19
- self.요소_확인('img[alt="Dolsot-bibimbap.jpg"]')
19
+ self.요소_확인('img[src*="Dolsot-bibimbap.jpg"]')
20
20
  self.링크_텍스트를_클릭합니다("돌솥비빔밥")
21
21
  self.텍스트_확인("돌솥비빔밥", "#firstHeading")
@@ -11,11 +11,11 @@ class MiClaseDePrueba(CasoDePrueba):
11
11
  self.escriba('[name="search"]', "Parque de Atracciones Tibidabo")
12
12
  self.haga_clic('button:contains("Buscar")')
13
13
  self.verificar_texto("Tibidabo", "#firstHeading")
14
- self.verificar_elemento('img[alt*="Tibidabo"]')
14
+ self.verificar_elemento('img[src*="Tibidabo"]')
15
15
  self.escriba('input[name="search"]', "Palma de Mallorca")
16
16
  self.haga_clic('button:contains("Buscar")')
17
17
  self.verificar_texto("Palma de Mallorca", "#firstHeading")
18
- self.verificar_elemento('img[alt*="Palma"]')
18
+ self.verificar_elemento('img[src*="Palma"]')
19
19
  self.volver()
20
20
  self.verificar_url_contiene("Tibidabo")
21
21
  self.adelante()
@@ -39,4 +39,14 @@ class CDPTests(BaseCase):
39
39
  try:
40
40
  self.verify_success()
41
41
  except Exception:
42
- self.fail_me()
42
+ if self.is_element_visible('input[value*="Verify"]'):
43
+ self.click('input[value*="Verify"]')
44
+ elif self.is_element_visible('iframe[title*="challenge"]'):
45
+ self.switch_to_frame('iframe[title*="challenge"]')
46
+ self.click("span.mark")
47
+ else:
48
+ self.fail_me()
49
+ try:
50
+ self.verify_success()
51
+ except Exception:
52
+ self.fail_me()
@@ -28,4 +28,14 @@ class UndetectedTest(BaseCase):
28
28
  try:
29
29
  self.verify_success()
30
30
  except Exception:
31
- self.fail_me()
31
+ if self.is_element_visible('input[value*="Verify"]'):
32
+ self.click('input[value*="Verify"]')
33
+ elif self.is_element_visible('iframe[title*="challenge"]'):
34
+ self.switch_to_frame('iframe[title*="challenge"]')
35
+ self.click("span.mark")
36
+ else:
37
+ self.fail_me()
38
+ try:
39
+ self.verify_success()
40
+ except Exception:
41
+ self.fail_me()
@@ -73,6 +73,9 @@ pytest test_swag_labs.py --mobile
73
73
  # Run mobile tests specifying CSS Width, CSS Height, and Pixel-Ratio
74
74
  pytest test_swag_labs.py --mobile --metrics="360,640,2"
75
75
 
76
+ # Run a test with an option to evade bot-detection services
77
+ pytest verify_undetected.py --uc
78
+
76
79
  # Run tests while changing SeleniumBase default settings
77
80
  pytest my_first_test.py --settings-file=custom_settings.py
78
81
  ```
@@ -177,8 +180,8 @@ pytest my_first_test.py --settings-file=custom_settings.py
177
180
  --incognito # (Enable Chrome's Incognito mode.)
178
181
  --guest # (Enable Chrome's Guest mode.)
179
182
  --devtools # (Open Chrome's DevTools when the browser opens.)
180
- --reuse-session | --rs # (Reuse browser session for all tests.)
181
- --reuse-class-session | --rcs # (Reuse session for tests in class.)
183
+ --rs | --reuse-session # (Reuse browser session for all tests.)
184
+ --rcs | --reuse-class-session # (Reuse session for tests in class.)
182
185
  --crumbs # (Delete all cookies between tests reusing a session.)
183
186
  --disable-beforeunload # (Disable the "beforeunload" event on Chrome.)
184
187
  --window-size=WIDTH,HEIGHT # (Set the browser's starting window size.)
@@ -33,6 +33,7 @@
33
33
  * [Singapore Institute of Tech](https://www.singaporetech.edu.sg)
34
34
  * [Mississippi State University](https://www.msstate.edu/)
35
35
  * [The New York Public Libary](https://www.nypl.org/)
36
+ * [Boehringer Ingelheim](https://www.boehringer-ingelheim.com/)
36
37
  * [Queen's University](https://www.queensu.ca/)
37
38
  * [L1NNA Laboratory](https://l1nna.com/)
38
39
  * [Canfield Scientific](https://www.canfieldsci.com/)
@@ -502,6 +502,8 @@ self.inspect_html()
502
502
 
503
503
  self.is_valid_url(url)
504
504
 
505
+ self.is_online()
506
+
505
507
  self.is_chromium()
506
508
 
507
509
  self.get_chrome_version()
@@ -420,7 +420,7 @@ class 我的测试类(硒测试用例):
420
420
  self.输入文本("#searchInput", "麻婆豆腐")
421
421
  self.单击("#searchButton")
422
422
  self.断言文本("麻婆豆腐", "#firstHeading")
423
- self.断言元素('div.thumb div:contains("一家中餐館的麻婆豆腐")')
423
+ self.断言元素('figure:contains("一家中餐館的麻婆豆腐")')
424
424
  self.输入文本("#searchInput", "精武英雄")
425
425
  self.单击("#searchButton")
426
426
  self.断言元素('img[src*="Fist_of_legend.jpg"]')
@@ -572,12 +572,12 @@ class 테스트_클래스(셀레늄_테스트_케이스):
572
572
  self.JS_입력("#searchform input", "김치")
573
573
  self.클릭("#searchform button")
574
574
  self.텍스트_확인("김치", "#firstHeading")
575
- self.요소_확인('img[alt="Various kimchi.jpg"]')
575
+ self.요소_확인('img[src*="Various_kimchi.jpg"]')
576
576
  self.링크_텍스트_확인("한국 요리")
577
577
  self.JS_입력("#searchform input", "비빔밥")
578
578
  self.클릭("#searchform button")
579
579
  self.텍스트_확인("비빔밥", "#firstHeading")
580
- self.요소_확인('img[alt="Dolsot-bibimbap.jpg"]')
580
+ self.요소_확인('img[src*="Dolsot-bibimbap.jpg"]')
581
581
  self.링크_텍스트를_클릭합니다("돌솥비빔밥")
582
582
  self.텍스트_확인("돌솥비빔밥", "#firstHeading")
583
583
  ```
@@ -667,11 +667,11 @@ class MiClaseDePrueba(CasoDePrueba):
667
667
  self.escriba('[name="search"]', "Parque de Atracciones Tibidabo")
668
668
  self.haga_clic('button:contains("Buscar")')
669
669
  self.verificar_texto("Tibidabo", "#firstHeading")
670
- self.verificar_elemento('img[alt*="Tibidabo"]')
670
+ self.verificar_elemento('img[src*="Tibidabo"]')
671
671
  self.escriba('input[name="search"]', "Palma de Mallorca")
672
672
  self.haga_clic('button:contains("Buscar")')
673
673
  self.verificar_texto("Palma de Mallorca", "#firstHeading")
674
- self.verificar_elemento('img[alt*="Palma"]')
674
+ self.verificar_elemento('img[src*="Palma"]')
675
675
  self.volver()
676
676
  self.verificar_url_contiene("Tibidabo")
677
677
  self.adelante()
@@ -19,11 +19,11 @@ If the necessary driver is not found in this location while running tests, Selen
19
19
  * You can also download specific versions of drivers. Examples:
20
20
 
21
21
  ```bash
22
- sbase get chromedriver 112
23
- sbase get chromedriver 112.0.5615.49
22
+ sbase get chromedriver 114
23
+ sbase get chromedriver 114.0.5735.90
24
24
  sbase get chromedriver latest
25
25
  sbase get chromedriver latest-1
26
- sbase get edgedriver 112.0.1722.58
26
+ sbase get edgedriver 114.0.1823.82
27
27
  ```
28
28
 
29
29
  (NOTE: ``sbase`` is a shortcut for ``seleniumbase``)
@@ -3,10 +3,11 @@
3
3
 
4
4
  regex>=2023.6.3
5
5
  pkginfo>=1.9.6
6
+ PyYAML>=6.0.1
6
7
  readme-renderer>=40.0
7
- pymdown-extensions>=10.0.1
8
+ pymdown-extensions>=10.1
8
9
  importlib-metadata>=6.8.0
9
- pipdeptree>=2.9.5
10
+ pipdeptree>=2.10.2
10
11
  bleach>=6.0.0
11
12
  docutils>=0.20.1
12
13
  python-dateutil>=2.8.2
@@ -15,7 +16,7 @@ joblib==1.3.1
15
16
  Markdown==3.3.7
16
17
  MarkupSafe==2.1.3
17
18
  Jinja2==3.1.2
18
- click==8.1.4
19
+ click==8.1.5
19
20
  ghp-import==2.1.0
20
21
  lunr==0.6.2
21
22
  nltk==3.8.1
@@ -27,7 +28,7 @@ cssselect2==0.7.0
27
28
  tinycss2==1.2.1
28
29
  defusedxml==0.7.1
29
30
  mkdocs==1.4.3
30
- mkdocs-material==9.1.18
31
+ mkdocs-material==9.1.19
31
32
  mkdocs-exclude-search==0.6.5
32
33
  mkdocs-simple-hooks==0.1.5
33
34
  mkdocs-material-extensions==1.1.1
@@ -1,5 +1,5 @@
1
1
  pip>=21.3.1;python_version<"3.7"
2
- pip>=23.1.2;python_version>="3.7"
2
+ pip>=23.2;python_version>="3.7"
3
3
  packaging>=21.3;python_version<"3.7"
4
4
  packaging>=23.1;python_version>="3.7"
5
5
  setuptools>=59.6.0;python_version<"3.7"
@@ -12,7 +12,7 @@ certifi>=2023.5.7
12
12
  filelock>=3.4.1;python_version<"3.7"
13
13
  filelock>=3.12.2;python_version>="3.7"
14
14
  platformdirs>=2.4.0;python_version<"3.7"
15
- platformdirs>=3.8.1;python_version>="3.7"
15
+ platformdirs>=3.9.1;python_version>="3.7"
16
16
  parse>=1.19.1
17
17
  parse-type>=0.6.2
18
18
  six==1.16.0
@@ -30,7 +30,7 @@ pynose==1.4.6
30
30
  sniffio==1.3.0;python_version>="3.7"
31
31
  h11==0.14.0;python_version>="3.7"
32
32
  outcome==1.2.0;python_version>="3.7"
33
- trio==0.22.1;python_version>="3.7"
33
+ trio==0.22.2;python_version>="3.7"
34
34
  trio-websocket==0.10.3;python_version>="3.7"
35
35
  wsproto==1.2.0;python_version>="3.7"
36
36
  selenium==3.141.0;python_version<"3.7"
@@ -70,7 +70,7 @@ pygments==2.14.0;python_version<"3.7"
70
70
  pygments==2.15.1;python_version>="3.7"
71
71
  pyreadline3==3.4.1;platform_system=="Windows"
72
72
  tabcompleter==1.2.1
73
- pdbp==1.4.2
73
+ pdbp==1.4.3
74
74
  colorama==0.4.5;python_version<"3.7"
75
75
  colorama==0.4.6;python_version>="3.7"
76
76
  exceptiongroup==1.1.2;python_version>="3.7"
@@ -6,6 +6,7 @@ from seleniumbase import DriverContext # noqa
6
6
  from seleniumbase import encryption # noqa
7
7
  from seleniumbase import get_driver # noqa
8
8
  from seleniumbase import js_utils # noqa
9
+ from seleniumbase import shared_utils # noqa
9
10
  from seleniumbase import MasterQA # noqa
10
11
  from seleniumbase import page_actions # noqa
11
12
  from seleniumbase import page_utils # noqa
@@ -14,6 +14,7 @@ from seleniumbase.core.browser_launcher import get_driver # noqa
14
14
  from seleniumbase.fixtures import js_utils # noqa
15
15
  from seleniumbase.fixtures import page_actions # noqa
16
16
  from seleniumbase.fixtures import page_utils # noqa
17
+ from seleniumbase.fixtures import shared_utils # noqa
17
18
  from seleniumbase.fixtures.base_case import BaseCase # noqa
18
19
  from seleniumbase.masterqa.master_qa import MasterQA # noqa
19
20
  from seleniumbase.plugins.sb_manager import SB # noqa
@@ -0,0 +1,2 @@
1
+ # seleniumbase package
2
+ __version__ = "4.16.0"