seleniumbase 4.22.4__tar.gz → 4.22.6__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 (520) hide show
  1. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/LICENSE +1 -1
  2. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/PKG-INFO +7 -6
  3. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/README.md +1 -0
  4. seleniumbase-4.22.6/examples/boilerplates/boilerplate_test.py +14 -0
  5. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_parameter_script.py +1 -0
  6. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/shadow_root_test.py +2 -2
  7. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_todomvc.py +3 -3
  8. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/russian_test_1.py +1 -1
  9. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/customizing_test_runs.md +1 -0
  10. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/requirements.txt +5 -5
  11. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/requirements.txt +4 -4
  12. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/__version__.py +1 -1
  13. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/behave/behave_sb.py +8 -0
  14. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/run.py +2 -1
  15. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_install.py +1 -1
  16. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/browser_launcher.py +84 -21
  17. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/base_case.py +10 -2
  18. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/driver_manager.py +26 -0
  19. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/pytest_plugin.py +15 -0
  20. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/sb_manager.py +27 -0
  21. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/selenium_plugin.py +12 -0
  22. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase.egg-info/PKG-INFO +7 -6
  23. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase.egg-info/requires.txt +5 -5
  24. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/setup.py +5 -5
  25. seleniumbase-4.22.4/examples/boilerplates/boilerplate_test.py +0 -9
  26. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/.github/Workflows.md +0 -0
  27. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/.github/workflows/pages.yml +0 -0
  28. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/.github/workflows/python-nightly-mac.yml +0 -0
  29. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/.github/workflows/python-nightly-ubuntu.yml +0 -0
  30. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/.github/workflows/python-nightly-windows.yml +0 -0
  31. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/.github/workflows/python-package.yml +0 -0
  32. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/.gitignore +0 -0
  33. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/CHANGELOG.md +0 -0
  34. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/CNAME +0 -0
  35. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/CODE_OF_CONDUCT.md +0 -0
  36. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/CONTRIBUTING.md +0 -0
  37. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/Dockerfile +0 -0
  38. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/MANIFEST.in +0 -0
  39. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/SECURITY.md +0 -0
  40. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/_config.yml +0 -0
  41. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/azure-pipelines.yml +0 -0
  42. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/ReadMe.md +0 -0
  43. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/__init__.py +0 -0
  44. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/basic_test.py +0 -0
  45. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/ReadMe.md +0 -0
  46. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/__init__.py +0 -0
  47. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/behave.ini +0 -0
  48. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/__init__.py +0 -0
  49. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/behave.ini +0 -0
  50. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/calculator.feature +0 -0
  51. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/environment.py +0 -0
  52. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/fail_page.feature +0 -0
  53. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/realworld.feature +0 -0
  54. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/__init__.py +0 -0
  55. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/calculator.py +0 -0
  56. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/fail_page.py +0 -0
  57. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/imported.py +0 -0
  58. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
  59. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/behave_bdd/features/swag_labs.feature +0 -0
  60. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/ReadMe.md +0 -0
  61. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/__init__.py +0 -0
  62. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/base_test_case.py +0 -0
  63. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/classic_obj_test.py +0 -0
  64. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/page_objects.py +0 -0
  65. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/__init__.py +0 -0
  66. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
  67. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
  68. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
  69. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
  70. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/google_objects.py +0 -0
  71. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/google_test.py +0 -0
  72. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/sb_swag_test.py +0 -0
  73. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/swag_labs_test.py +0 -0
  74. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/samples/test_page_objects.py +0 -0
  75. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/boilerplates/sb_fixture_test.py +0 -0
  76. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/capabilities/ReadMe.md +0 -0
  77. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/capabilities/mac_cap_file.py +0 -0
  78. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/capabilities/sample_cap_file_BS.py +0 -0
  79. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/capabilities/sample_cap_file_SL.py +0 -0
  80. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/capabilities/selenoid_cap_file.py +0 -0
  81. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/capabilities/win10_cap_file.py +0 -0
  82. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
  83. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
  84. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
  85. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
  86. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
  87. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
  88. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
  89. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
  90. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/case_summary.md +0 -0
  91. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/ReadMe.md +0 -0
  92. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/chart_presentation.py +0 -0
  93. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/my_chart.py +0 -0
  94. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/pie_charts.py +0 -0
  95. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/test_area_chart.py +0 -0
  96. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/test_display_chart.py +0 -0
  97. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/test_line_chart.py +0 -0
  98. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/test_multi_series.py +0 -0
  99. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/chart_maker/test_save_chart.py +0 -0
  100. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/coffee_cart_tests.py +0 -0
  101. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/custom_settings.py +0 -0
  102. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/desktop_apps/ReadMe.md +0 -0
  103. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/desktop_apps/recorder.py +0 -0
  104. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/dialog_boxes/ReadMe.md +0 -0
  105. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/dialog_boxes/dialog_box_tour.py +0 -0
  106. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/edge_test.py +0 -0
  107. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/example_config.cfg +0 -0
  108. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/example_logs/ReadMe.md +0 -0
  109. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/example_logs/basic_test_info.txt +0 -0
  110. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/example_logs/page_source.html +0 -0
  111. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/example_logs/screenshot.png +0 -0
  112. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/github_test.py +0 -0
  113. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/gui_test_runner.py +0 -0
  114. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/hack_the_planet.py +0 -0
  115. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/handle_alert_test.py +0 -0
  116. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/iframe_tests.py +0 -0
  117. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/locale_code_test.py +0 -0
  118. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/master_qa/ReadMe.md +0 -0
  119. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/master_qa/__init__.py +0 -0
  120. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/master_qa/basic_masterqa_test_0.py +0 -0
  121. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/master_qa/masterqa_test_1.py +0 -0
  122. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/master_qa/pytest.ini +0 -0
  123. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/__init__.py +0 -0
  124. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/protractor/ReadMe.md +0 -0
  125. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/protractor/__init__.py +0 -0
  126. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/protractor/example_spec.js +0 -0
  127. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/protractor/example_test.py +0 -0
  128. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/protractor/input_spec.js +0 -0
  129. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/protractor/input_test.py +0 -0
  130. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/protractor/mat_paginator_spec.js +0 -0
  131. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/protractor/mat_paginator_test.py +0 -0
  132. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/raw_selenium/ReadMe.md +0 -0
  133. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/raw_selenium/__init__.py +0 -0
  134. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
  135. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
  136. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/raw_selenium/messy_raw.py +0 -0
  137. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/raw_selenium/pytest.ini +0 -0
  138. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/raw_selenium/refined_raw.py +0 -0
  139. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/migration/raw_selenium/simple_sbase.py +0 -0
  140. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/my_first_test.py +0 -0
  141. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/nth_child_test.py +0 -0
  142. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/offline_examples/__init__.py +0 -0
  143. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/offline_examples/demo_page.html +0 -0
  144. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/offline_examples/load_html_test.py +0 -0
  145. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/offline_examples/test_demo_page.py +0 -0
  146. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/offline_examples/test_handle_alerts.py +0 -0
  147. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/offline_examples/test_request_fixture.py +0 -0
  148. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/offline_examples/test_user_agent.py +0 -0
  149. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/old_wordle_script.py +0 -0
  150. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/parameterized_test.py +0 -0
  151. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/performance_test.py +0 -0
  152. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/presenter/ReadMe.md +0 -0
  153. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/presenter/core_presentation.py +0 -0
  154. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/presenter/edge_presentation.py +0 -0
  155. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/presenter/fundamentals.py +0 -0
  156. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/presenter/my_presentation.py +0 -0
  157. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/presenter/py_virtual_envs.py +0 -0
  158. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/proxy_test.py +0 -0
  159. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/pytest.ini +0 -0
  160. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/rate_limiting_test.py +0 -0
  161. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_browser_launcher.py +0 -0
  162. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_call.py +0 -0
  163. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_driver_context.py +0 -0
  164. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_file_call.py +0 -0
  165. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_main_call.py +0 -0
  166. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_sb.py +0 -0
  167. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_test_scripts.py +0 -0
  168. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/raw_uc_mode.py +0 -0
  169. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/setup.cfg +0 -0
  170. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/swag_labs_user_tests.py +0 -0
  171. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_apple_site.py +0 -0
  172. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_assert_elements.py +0 -0
  173. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_calculator.py +0 -0
  174. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_canvas.py +0 -0
  175. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_checkboxes.py +0 -0
  176. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_chinese_pdf.py +0 -0
  177. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_chromedriver.py +0 -0
  178. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_coffee_cart.py +0 -0
  179. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_console_logging.py +0 -0
  180. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_contains_selector.py +0 -0
  181. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_cycle_elements.py +0 -0
  182. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_decryption.py +0 -0
  183. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_deferred_asserts.py +0 -0
  184. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_demo_site.py +0 -0
  185. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_detect_404s.py +0 -0
  186. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_docs_site.py +0 -0
  187. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_double_click.py +0 -0
  188. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_download_files.py +0 -0
  189. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_download_images.py +0 -0
  190. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_drag_and_drop.py +0 -0
  191. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_error_page.py +0 -0
  192. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_event_firing.py +0 -0
  193. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_fail.py +0 -0
  194. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_geolocation.py +0 -0
  195. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_get_coffee.py +0 -0
  196. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_get_locale_code.py +0 -0
  197. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_get_pdf_text.py +0 -0
  198. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_get_user_agent.py +0 -0
  199. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_hack_search.py +0 -0
  200. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_image_saving.py +0 -0
  201. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_inspect_html.py +0 -0
  202. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_login.py +0 -0
  203. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_markers.py +0 -0
  204. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_mfa_login.py +0 -0
  205. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_multiple_drivers.py +0 -0
  206. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_null.py +0 -0
  207. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_override_driver.py +0 -0
  208. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_override_sb_fixture.py +0 -0
  209. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_parse_soup.py +0 -0
  210. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_pdf_asserts.py +0 -0
  211. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_pytest_parametrize.py +0 -0
  212. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_repeat_tests.py +0 -0
  213. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_request_sb_fixture.py +0 -0
  214. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_save_screenshots.py +0 -0
  215. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_sb_fixture.py +0 -0
  216. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_scrape_bing.py +0 -0
  217. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_select_options.py +0 -0
  218. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_shadow_dom.py +0 -0
  219. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_show_file_choosers.py +0 -0
  220. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_skype_site.py +0 -0
  221. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_suite.py +0 -0
  222. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_swag_labs.py +0 -0
  223. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_tinymce.py +0 -0
  224. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_url_asserts.py +0 -0
  225. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_usefixtures.py +0 -0
  226. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_verify_chromedriver.py +0 -0
  227. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_window_switching.py +0 -0
  228. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_xfail.py +0 -0
  229. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/test_xkcd.py +0 -0
  230. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/time_limit_test.py +0 -0
  231. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/ReadMe.md +0 -0
  232. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/bootstrap_google_tour.py +0 -0
  233. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
  234. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/driverjs_maps_tour.py +0 -0
  235. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/google_tour.py +0 -0
  236. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/hopscotch_google_tour.py +0 -0
  237. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/introjs_google_tour.py +0 -0
  238. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/maps_introjs_tour.py +0 -0
  239. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/octocat_tour.py +0 -0
  240. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/shepherd_google_tour.py +0 -0
  241. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/tour_examples/xkcd_tour.py +0 -0
  242. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/ReadMe.md +0 -0
  243. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/chinese_test_1.py +0 -0
  244. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/dutch_test_1.py +0 -0
  245. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/english_test_1.py +0 -0
  246. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/french_test_1.py +0 -0
  247. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/italian_test_1.py +0 -0
  248. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/japanese_test_1.py +0 -0
  249. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/korean_test_1.py +0 -0
  250. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/portuguese_test_1.py +0 -0
  251. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/pytest.ini +0 -0
  252. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/translations/spanish_test_1.py +0 -0
  253. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/uc_cdp_events.py +0 -0
  254. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/unit_tests/ReadMe.md +0 -0
  255. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/unit_tests/verify_framework.py +0 -0
  256. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/upgrade_chromedriver.py +0 -0
  257. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/upload_file_test.py +0 -0
  258. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/user_agent_test.py +0 -0
  259. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/verify_undetected.py +0 -0
  260. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/ReadMe.md +0 -0
  261. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/__init__.py +0 -0
  262. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
  263. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
  264. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
  265. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
  266. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
  267. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
  268. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/layout_test.py +0 -0
  269. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/python_home_test.py +0 -0
  270. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/test_layout_fail.py +0 -0
  271. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/visual_testing/xkcd_visual_test.py +0 -0
  272. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/wordle_test.py +0 -0
  273. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/xpath_test.py +0 -0
  274. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/examples/youtube_search_test.py +0 -0
  275. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/ReadMe.md +0 -0
  276. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/behave_gui.md +0 -0
  277. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/case_plans.md +0 -0
  278. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/chinese.md +0 -0
  279. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/commander.md +0 -0
  280. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/demo_mode.md +0 -0
  281. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/desired_capabilities.md +0 -0
  282. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/features_list.md +0 -0
  283. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/handling_iframes.md +0 -0
  284. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/happy_customers.md +0 -0
  285. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/hidden_files_info.md +0 -0
  286. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/how_it_works.md +0 -0
  287. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/html_inspector.md +0 -0
  288. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/install.md +0 -0
  289. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/install_python_pip_git.md +0 -0
  290. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/js_package_manager.md +0 -0
  291. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/locale_codes.md +0 -0
  292. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/method_summary.md +0 -0
  293. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/mobile_testing.md +0 -0
  294. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/mysql_installation.md +0 -0
  295. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/recorder_mode.md +0 -0
  296. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/shadow_dom.md +0 -0
  297. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/syntax_formats.md +0 -0
  298. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/thank_you.md +0 -0
  299. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/translations.md +0 -0
  300. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/useful_grep_commands.md +0 -0
  301. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/using_safari_driver.md +0 -0
  302. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/verify_webdriver.md +0 -0
  303. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/virtualenv_instructions.md +0 -0
  304. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/help_docs/webdriver_installation.md +0 -0
  305. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/install.sh +0 -0
  306. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/__init__.py +0 -0
  307. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
  308. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/azure/jenkins/ReadMe.md +0 -0
  309. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/ReadMe.md +0 -0
  310. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/behave.ini +0 -0
  311. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/__init__.py +0 -0
  312. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/behave.ini +0 -0
  313. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/calculator.feature +0 -0
  314. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/environment.py +0 -0
  315. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/fail_page.feature +0 -0
  316. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/realworld.feature +0 -0
  317. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/steps/__init__.py +0 -0
  318. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/steps/calculator.py +0 -0
  319. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/steps/fail_page.py +0 -0
  320. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/steps/real_world.py +0 -0
  321. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/steps/swag_labs.py +0 -0
  322. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/behave/features/swag_labs.feature +0 -0
  323. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/brython/ReadMe.md +0 -0
  324. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/brython/index.html +0 -0
  325. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/brython/index.py +0 -0
  326. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/brython/library.html +0 -0
  327. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/docker/ReadMe.md +0 -0
  328. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/docker/docker-entrypoint.sh +0 -0
  329. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/docker/docker_config.cfg +0 -0
  330. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
  331. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/docker/run_docker_test_in_firefox.sh +0 -0
  332. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/github/ReadMe.md +0 -0
  333. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/github/workflows/ReadMe.md +0 -0
  334. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/github/workflows/extras.md +0 -0
  335. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/google_cloud/ReadMe.md +0 -0
  336. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/katalon/ReadMe.md +0 -0
  337. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/linux/Linuxfile.sh +0 -0
  338. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/linux/ReadMe.md +0 -0
  339. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/linux/Xvfb_launcher.sh +0 -0
  340. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/linux/jenkins_permissions.sh +0 -0
  341. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/linux/tomcat_permissions.sh +0 -0
  342. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/node_js/ReadMe.md +0 -0
  343. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/node_js/__init__.py +0 -0
  344. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/node_js/index.html +0 -0
  345. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/node_js/my_first_test.py +0 -0
  346. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/node_js/npm-shrinkwrap.json +0 -0
  347. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/node_js/package.json +0 -0
  348. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/node_js/server.js +0 -0
  349. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/node_js/test_demo_site.py +0 -0
  350. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/selenium_grid/ReadMe.md +0 -0
  351. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/integrations/selenium_ide/ReadMe.md +0 -0
  352. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs.yml +0 -0
  353. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/ReadMe.txt +0 -0
  354. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/docs_instructions.txt +0 -0
  355. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/dash_pie.png +0 -0
  356. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/dash_pie_2.png +0 -0
  357. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/dash_pie_3.png +0 -0
  358. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/favicon.ico +0 -0
  359. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/grad_logo.png +0 -0
  360. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/green_icon.png +0 -0
  361. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/green_logo.png +0 -0
  362. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/green_logo2.png +0 -0
  363. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/green_logo3.png +0 -0
  364. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/logo3.png +0 -0
  365. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/logo3a.png +0 -0
  366. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/logo3b.png +0 -0
  367. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/logo3c.png +0 -0
  368. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/logo4.png +0 -0
  369. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/logo5.png +0 -0
  370. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/logo6.png +0 -0
  371. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/logo7.png +0 -0
  372. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/sb_icon.png +0 -0
  373. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/sb_logo_10.png +0 -0
  374. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/sb_logo_7.png +0 -0
  375. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/side_by_side.png +0 -0
  376. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_facebook.svg +0 -0
  377. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_github.svg +0 -0
  378. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_gitter.svg +0 -0
  379. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_instagram.svg +0 -0
  380. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_twitter.svg +0 -0
  381. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/index.txt +0 -0
  382. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/mkdocs_build/prepare.py +0 -0
  383. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/pytest.ini +0 -0
  384. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/sbase/ReadMe.txt +0 -0
  385. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/sbase/__init__.py +0 -0
  386. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/sbase/__main__.py +0 -0
  387. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/sbase/steps.py +0 -0
  388. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/ReadMe.md +0 -0
  389. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/__init__.py +0 -0
  390. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/__main__.py +0 -0
  391. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/behave/__init__.py +0 -0
  392. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/behave/behave_helper.py +0 -0
  393. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/behave/steps.py +0 -0
  394. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/common/ReadMe.md +0 -0
  395. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/common/__init__.py +0 -0
  396. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/common/decorators.py +0 -0
  397. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/common/encryption.py +0 -0
  398. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/common/exceptions.py +0 -0
  399. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/common/obfuscate.py +0 -0
  400. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/common/unobfuscate.py +0 -0
  401. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/config/__init__.py +0 -0
  402. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/config/ad_block_list.py +0 -0
  403. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/config/proxy_list.py +0 -0
  404. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/config/settings.py +0 -0
  405. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/ReadMe.md +0 -0
  406. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/__init__.py +0 -0
  407. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/logo_helper.py +0 -0
  408. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/rich_helper.py +0 -0
  409. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  410. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  411. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_commander.py +0 -0
  412. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  413. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  414. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  415. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  416. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  417. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  418. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_print.py +0 -0
  419. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  420. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/__init__.py +0 -0
  421. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/application_manager.py +0 -0
  422. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/capabilities_parser.py +0 -0
  423. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/colored_traceback.py +0 -0
  424. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/create_db_tables.sql +0 -0
  425. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/detect_b_ver.py +0 -0
  426. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/download_helper.py +0 -0
  427. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/encoded_images.py +0 -0
  428. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/jqc_helper.py +0 -0
  429. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/log_helper.py +0 -0
  430. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/mysql.py +0 -0
  431. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/proxy_helper.py +0 -0
  432. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/recorder_helper.py +0 -0
  433. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/report_helper.py +0 -0
  434. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/s3_manager.py +0 -0
  435. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/sb_driver.py +0 -0
  436. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/session_helper.py +0 -0
  437. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/settings_parser.py +0 -0
  438. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/style_sheet.py +0 -0
  439. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/testcase_manager.py +0 -0
  440. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/tour_helper.py +0 -0
  441. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/core/visual_helper.py +0 -0
  442. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/drivers/ReadMe.md +0 -0
  443. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/drivers/__init__.py +0 -0
  444. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/extensions/ReadMe.md +0 -0
  445. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/extensions/__init__.py +0 -0
  446. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/extensions/ad_block.zip +0 -0
  447. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/extensions/disable_csp.zip +0 -0
  448. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/extensions/recorder.zip +0 -0
  449. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/extensions/sbase_ext.zip +0 -0
  450. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/__init__.py +0 -0
  451. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/constants.py +0 -0
  452. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  453. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/errors.py +0 -0
  454. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/js_utils.py +0 -0
  455. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/page_actions.py +0 -0
  456. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/page_utils.py +0 -0
  457. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/shared_utils.py +0 -0
  458. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/unittest_helper.py +0 -0
  459. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/words.py +0 -0
  460. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  461. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/js_code/__init__.py +0 -0
  462. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/js_code/active_css_js.py +0 -0
  463. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/js_code/live_js.py +0 -0
  464. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/js_code/recorder_js.py +0 -0
  465. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/masterqa/ReadMe.md +0 -0
  466. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/masterqa/__init__.py +0 -0
  467. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/masterqa/master_qa.py +0 -0
  468. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/__init__.py +0 -0
  469. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/base_plugin.py +0 -0
  470. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/basic_test_info.py +0 -0
  471. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  472. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/page_source.py +0 -0
  473. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  474. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/plugins/screen_shots.py +0 -0
  475. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/resources/ReadMe.md +0 -0
  476. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/resources/__init__.py +0 -0
  477. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/resources/favicon.ico +0 -0
  478. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/__init__.py +0 -0
  479. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/chinese.py +0 -0
  480. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/dutch.py +0 -0
  481. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/french.py +0 -0
  482. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/italian.py +0 -0
  483. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/japanese.py +0 -0
  484. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/korean.py +0 -0
  485. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/master_dict.py +0 -0
  486. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/portuguese.py +0 -0
  487. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/russian.py +0 -0
  488. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/spanish.py +0 -0
  489. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/translate/translator.py +0 -0
  490. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/undetected/__init__.py +0 -0
  491. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/undetected/cdp.py +0 -0
  492. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/undetected/dprocess.py +0 -0
  493. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/undetected/options.py +0 -0
  494. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/undetected/patcher.py +0 -0
  495. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/undetected/reactor.py +0 -0
  496. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/undetected/webelement.py +0 -0
  497. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/__init__.py +0 -0
  498. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
  499. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  500. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  501. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  502. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  503. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  504. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  505. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  506. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  507. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  508. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  509. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  510. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
  511. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  512. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  513. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase.egg-info/SOURCES.txt +0 -0
  514. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase.egg-info/dependency_links.txt +0 -0
  515. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase.egg-info/entry_points.txt +0 -0
  516. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/seleniumbase.egg-info/top_level.txt +0 -0
  517. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/setup.cfg +0 -0
  518. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/virtualenv_install.sh +0 -0
  519. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/win_install.bat +0 -0
  520. {seleniumbase-4.22.4 → seleniumbase-4.22.6}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2014-2023 Michael Mintz
3
+ Copyright (c) 2014-2024 Michael Mintz
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.22.4
3
+ Version: 4.22.6
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
@@ -81,7 +81,7 @@ Requires-Dist: sniffio==1.3.0
81
81
  Requires-Dist: h11==0.14.0
82
82
  Requires-Dist: outcome==1.3.0.post0
83
83
  Requires-Dist: trio==0.22.2; python_version < "3.8"
84
- Requires-Dist: trio==0.23.2; python_version >= "3.8"
84
+ Requires-Dist: trio==0.24.0; python_version >= "3.8"
85
85
  Requires-Dist: trio-websocket==0.11.1
86
86
  Requires-Dist: wsproto==1.2.0
87
87
  Requires-Dist: selenium==4.11.2; python_version < "3.8"
@@ -105,7 +105,7 @@ Requires-Dist: sbvirtualdisplay==1.3.0
105
105
  Requires-Dist: behave==1.2.6
106
106
  Requires-Dist: soupsieve==2.4.1; python_version < "3.8"
107
107
  Requires-Dist: soupsieve==2.5; python_version >= "3.8"
108
- Requires-Dist: beautifulsoup4==4.12.2
108
+ Requires-Dist: beautifulsoup4==4.12.3
109
109
  Requires-Dist: pygments==2.17.2
110
110
  Requires-Dist: pyreadline3==3.4.1; platform_system == "Windows"
111
111
  Requires-Dist: tabcompleter==1.3.0
@@ -127,10 +127,10 @@ Requires-Dist: coverage==7.4.0; python_version >= "3.8" and extra == "coverage"
127
127
  Requires-Dist: pytest-cov==4.1.0; extra == "coverage"
128
128
  Provides-Extra: flake8
129
129
  Requires-Dist: flake8==5.0.4; python_version < "3.9" and extra == "flake8"
130
- Requires-Dist: flake8==6.1.0; python_version >= "3.9" and extra == "flake8"
130
+ Requires-Dist: flake8==7.0.0; python_version >= "3.9" and extra == "flake8"
131
131
  Requires-Dist: mccabe==0.7.0; extra == "flake8"
132
132
  Requires-Dist: pyflakes==2.5.0; python_version < "3.9" and extra == "flake8"
133
- Requires-Dist: pyflakes==3.1.0; python_version >= "3.9" and extra == "flake8"
133
+ Requires-Dist: pyflakes==3.2.0; python_version >= "3.9" and extra == "flake8"
134
134
  Requires-Dist: pycodestyle==2.9.1; python_version < "3.9" and extra == "flake8"
135
135
  Requires-Dist: pycodestyle==2.11.1; python_version >= "3.9" and extra == "flake8"
136
136
  Provides-Extra: ipdb
@@ -146,7 +146,7 @@ Requires-Dist: cffi==1.16.0; python_version >= "3.8" and extra == "pdfminer"
146
146
  Requires-Dist: pycparser==2.21; extra == "pdfminer"
147
147
  Provides-Extra: pillow
148
148
  Requires-Dist: Pillow==9.5.0; python_version < "3.8" and extra == "pillow"
149
- Requires-Dist: Pillow==10.1.0; python_version >= "3.8" and extra == "pillow"
149
+ Requires-Dist: Pillow==10.2.0; python_version >= "3.8" and extra == "pillow"
150
150
  Provides-Extra: psutil
151
151
  Requires-Dist: psutil==5.9.6; extra == "psutil"
152
152
  Provides-Extra: selenium-stealth
@@ -820,6 +820,7 @@ pytest test_coffee_cart.py --trace
820
820
  --firefox-pref=SET # (Set a Firefox preference:value set, comma-separated.)
821
821
  --extension-zip=ZIP # (Load a Chrome Extension .zip|.crx, comma-separated.)
822
822
  --extension-dir=DIR # (Load a Chrome Extension directory, comma-separated.)
823
+ --disable-features="F1,F2" # (Disable features, comma-separated, no spaces.)
823
824
  --binary-location=PATH # (Set path of the Chromium browser binary to use.)
824
825
  --driver-version=VER # (Set the chromedriver or uc_driver version to use.)
825
826
  --sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.)
@@ -662,6 +662,7 @@ pytest test_coffee_cart.py --trace
662
662
  --firefox-pref=SET # (Set a Firefox preference:value set, comma-separated.)
663
663
  --extension-zip=ZIP # (Load a Chrome Extension .zip|.crx, comma-separated.)
664
664
  --extension-dir=DIR # (Load a Chrome Extension directory, comma-separated.)
665
+ --disable-features="F1,F2" # (Disable features, comma-separated, no spaces.)
665
666
  --binary-location=PATH # (Set path of the Chromium browser binary to use.)
666
667
  --driver-version=VER # (Set the chromedriver or uc_driver version to use.)
667
668
  --sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.)
@@ -0,0 +1,14 @@
1
+ try: # Run with "pytest" (relative imports are valid)
2
+ from .base_test_case import BaseTestCase
3
+ from .page_objects import Page
4
+ except (ImportError, ValueError): # Run with "python"
5
+ from base_test_case import BaseTestCase
6
+ from page_objects import Page
7
+ BaseTestCase.main(__name__, __file__)
8
+
9
+
10
+ class MyTestClass(BaseTestCase):
11
+ def test_boilerplate(self):
12
+ self.login()
13
+ self.example_method()
14
+ self.assert_element(Page.html)
@@ -81,6 +81,7 @@ if pure_python:
81
81
  sb.window_size = None
82
82
  sb.maximize_option = False
83
83
  sb.visual_baseline = False
84
+ sb.disable_features = None
84
85
  sb._disable_beforeunload = False
85
86
  sb.save_screenshot_after_test = False
86
87
  sb.no_screenshot_after_test = False
@@ -11,9 +11,9 @@ class ShadowRootTest(BaseCase):
11
11
  message = "Skipping test in Recorder Mode."
12
12
  print(message)
13
13
  self.skip(message)
14
- elif self.browser == "safari":
14
+ elif not self.is_chromium():
15
15
  self.open_if_not_url("about:blank")
16
- message = "Skipping test for using Safari."
16
+ message = "This test is only for Chromium browsers!"
17
17
  print(message)
18
18
  self.skip(message)
19
19
  self.open("https://seleniumbase.io/other/shadow_dom")
@@ -8,7 +8,7 @@ class TodoMVC(BaseCase):
8
8
  def test_todomvc(self, framework):
9
9
  self.open("https://todomvc.com/")
10
10
  self.clear_local_storage()
11
- self.click('a[href="examples/%s"]' % framework)
11
+ self.click('a[href*="examples/%s/dist"]' % framework)
12
12
  self.assert_element("section.todoapp")
13
13
  self.assert_text("todos", "header h1")
14
14
  self.wait_for_ready_state_complete()
@@ -25,5 +25,5 @@ class TodoMVC(BaseCase):
25
25
  self.check_if_unchecked("ul.todo-list li:nth-of-type(2) input")
26
26
  self.check_if_unchecked("ul.todo-list li:nth-of-type(3) input")
27
27
  self.assert_text("0 items left", todo_count_span)
28
- self.click('label[for="toggle-all"]')
29
- self.assert_text("3 items left", todo_count_span)
28
+ self.click("button.clear-completed")
29
+ self.assert_element_not_visible(todo_count_span)
@@ -7,7 +7,7 @@ class МойТестовыйКласс(ТестНаСелен):
7
7
  def test_пример_1(self):
8
8
  self.открыть("https://ru.wikipedia.org/wiki/")
9
9
  self.подтвердить_элемент('[title="Русский язык"]')
10
- self.подтвердить_текст("Википедия", "h2.main-wikimedia-header")
10
+ self.подтвердить_текст("Википедия", "div.main-wikimedia-header")
11
11
  self.введите("#searchInput", "МГУ")
12
12
  self.нажмите("#searchButton")
13
13
  self.подтвердить_текст("университет", "#firstHeading")
@@ -138,6 +138,7 @@ pytest my_first_test.py --settings-file=custom_settings.py
138
138
  --firefox-pref=SET # (Set a Firefox preference:value set, comma-separated.)
139
139
  --extension-zip=ZIP # (Load a Chrome Extension .zip|.crx, comma-separated.)
140
140
  --extension-dir=DIR # (Load a Chrome Extension directory, comma-separated.)
141
+ --disable-features="F1,F2" # (Disable features, comma-separated, no spaces.)
141
142
  --binary-location=PATH # (Set path of the Chromium browser binary to use.)
142
143
  --driver-version=VER # (Set the chromedriver or uc_driver version to use.)
143
144
  --sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.)
@@ -3,12 +3,12 @@
3
3
 
4
4
  regex>=2023.12.25
5
5
  pymdown-extensions>=10.7
6
- pipdeptree>=2.13.1
6
+ pipdeptree>=2.13.2
7
7
  python-dateutil>=2.8.2
8
- Markdown==3.5.1
8
+ Markdown==3.5.2
9
9
  markdown2==2.4.12
10
10
  MarkupSafe==2.1.3
11
- Jinja2==3.1.2
11
+ Jinja2==3.1.3
12
12
  click==8.1.7
13
13
  ghp-import==2.1.0
14
14
  watchdog==3.0.0
@@ -16,11 +16,11 @@ cairocffi==1.6.1
16
16
  pathspec==0.12.1
17
17
  Babel==2.14.0
18
18
  paginate==0.5.6
19
- lxml==5.0.0
19
+ lxml==5.1.0
20
20
  pyquery==2.0.0
21
21
  readtime==3.0.0
22
22
  mkdocs==1.5.3
23
- mkdocs-material==9.5.3
23
+ mkdocs-material==9.5.4
24
24
  mkdocs-exclude-search==0.6.6
25
25
  mkdocs-simple-hooks==0.1.5
26
26
  mkdocs-material-extensions==1.3.1
@@ -24,7 +24,7 @@ sniffio==1.3.0
24
24
  h11==0.14.0
25
25
  outcome==1.3.0.post0
26
26
  trio==0.22.2;python_version<"3.8"
27
- trio==0.23.2;python_version>="3.8"
27
+ trio==0.24.0;python_version>="3.8"
28
28
  trio-websocket==0.11.1
29
29
  wsproto==1.2.0
30
30
  selenium==4.11.2;python_version<"3.8"
@@ -48,7 +48,7 @@ sbvirtualdisplay==1.3.0
48
48
  behave==1.2.6
49
49
  soupsieve==2.4.1;python_version<"3.8"
50
50
  soupsieve==2.5;python_version>="3.8"
51
- beautifulsoup4==4.12.2
51
+ beautifulsoup4==4.12.3
52
52
  pygments==2.17.2
53
53
  pyreadline3==3.4.1;platform_system=="Windows"
54
54
  tabcompleter==1.3.0
@@ -70,9 +70,9 @@ coverage==7.4.0;python_version>="3.8"
70
70
  pytest-cov==4.0.0;python_version<"3.7"
71
71
  pytest-cov==4.1.0;python_version>="3.7"
72
72
  flake8==5.0.4;python_version<"3.9"
73
- flake8==6.1.0;python_version>="3.9"
73
+ flake8==7.0.0;python_version>="3.9"
74
74
  mccabe==0.7.0
75
75
  pyflakes==2.5.0;python_version<"3.9"
76
- pyflakes==3.1.0;python_version>="3.9"
76
+ pyflakes==3.2.0;python_version>="3.9"
77
77
  pycodestyle==2.9.1;python_version<"3.9"
78
78
  pycodestyle==2.11.1;python_version>="3.9"
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.22.4"
2
+ __version__ = "4.22.6"
@@ -226,6 +226,7 @@ def get_configured_sb(context):
226
226
  sb.chromium_arg = None
227
227
  sb.firefox_arg = None
228
228
  sb.firefox_pref = None
229
+ sb.disable_features = None
229
230
  sb.proxy_string = None
230
231
  sb.proxy_bypass_list = None
231
232
  sb.proxy_pac_url = None
@@ -748,6 +749,13 @@ def get_configured_sb(context):
748
749
  firefox_pref = sb.firefox_pref # revert to default
749
750
  sb.firefox_pref = firefox_pref
750
751
  continue
752
+ # Handle: -D disable-features="F1,F2" / disable_features="F1,F2"
753
+ if low_key in ["disable-features", "disable_features"]:
754
+ disable_features = userdata[key]
755
+ if disable_features == "true":
756
+ disable_features = sb.disable_features # revert to default
757
+ sb.disable_features = disable_features
758
+ continue
751
759
  # Handle: -D proxy=SERVER:PORT / proxy=USERNAME:PASSWORD@SERVER:PORT
752
760
  if low_key in ["proxy", "proxy-server", "proxy-string"]:
753
761
  proxy_string = userdata[key]
@@ -75,10 +75,11 @@ def show_basic_usage():
75
75
  seleniumbase_logo = logo_helper.get_seleniumbase_logo()
76
76
  print(seleniumbase_logo)
77
77
  print("")
78
- time.sleep(0.25) # Enough time to see the logo
78
+ time.sleep(0.28) # Enough time to see the logo
79
79
  show_package_location()
80
80
  show_version_info()
81
81
  print("")
82
+ time.sleep(0.72) # Enough time to see the version
82
83
  sc = ""
83
84
  sc += ' * USAGE: "seleniumbase [COMMAND] [PARAMETERS]"\n'
84
85
  sc += ' * OR: "sbase [COMMAND] [PARAMETERS]"\n'
@@ -50,7 +50,7 @@ IS_WINDOWS = shared_utils.is_windows()
50
50
  DRIVER_DIR = os.path.dirname(os.path.realpath(drivers.__file__))
51
51
  LOCAL_PATH = "/usr/local/bin/" # On Mac and Linux systems
52
52
  DEFAULT_CHROMEDRIVER_VERSION = "114.0.5735.90" # (If can't find LATEST_STABLE)
53
- DEFAULT_GECKODRIVER_VERSION = "v0.33.0"
53
+ DEFAULT_GECKODRIVER_VERSION = "v0.34.0"
54
54
  DEFAULT_EDGEDRIVER_VERSION = "115.0.1901.183" # (If can't find LATEST_STABLE)
55
55
 
56
56
 
@@ -763,6 +763,7 @@ def _set_chrome_options(
763
763
  user_data_dir,
764
764
  extension_zip,
765
765
  extension_dir,
766
+ disable_features,
766
767
  binary_location,
767
768
  driver_version,
768
769
  page_load_strategy,
@@ -1044,6 +1045,7 @@ def _set_chrome_options(
1044
1045
  binary_loc = detect_b_ver.get_binary_location(br_app, True)
1045
1046
  if os.path.exists(binary_loc):
1046
1047
  binary_location = binary_loc
1048
+ extra_disabled_features = []
1047
1049
  if chromium_arg:
1048
1050
  # Can be a comma-separated list of Chromium args
1049
1051
  chromium_arg_list = chromium_arg.split(",")
@@ -1069,8 +1071,13 @@ def _set_chrome_options(
1069
1071
  )
1070
1072
  if os.path.exists(binary_loc):
1071
1073
  binary_location = binary_loc
1074
+ elif "disable-features=" in chromium_arg_item:
1075
+ d_f = chromium_arg_item.split("disable-features=")[-1]
1076
+ extra_disabled_features.append(d_f)
1072
1077
  elif len(chromium_arg_item) >= 3:
1073
1078
  chrome_options.add_argument(chromium_arg_item)
1079
+ if disable_features:
1080
+ extra_disabled_features.extend(disable_features.split(","))
1074
1081
  if devtools and not headless:
1075
1082
  chrome_options.add_argument("--auto-open-devtools-for-tabs")
1076
1083
  if user_agent:
@@ -1089,19 +1096,36 @@ def _set_chrome_options(
1089
1096
  if headless or headless2 or is_using_uc(undetectable, browser_name):
1090
1097
  chrome_options.add_argument("--disable-renderer-backgrounding")
1091
1098
  chrome_options.add_argument("--disable-backgrounding-occluded-windows")
1099
+ chrome_options.add_argument("--disable-client-side-phishing-detection")
1100
+ chrome_options.add_argument("--disable-oopr-debug-crash-dump")
1101
+ chrome_options.add_argument("--disable-top-sites")
1092
1102
  chrome_options.add_argument("--ash-no-nudges")
1103
+ chrome_options.add_argument("--no-crash-upload")
1093
1104
  chrome_options.add_argument("--deny-permission-prompts")
1105
+ included_disabled_features = []
1094
1106
  if user_data_dir:
1095
- chrome_options.add_argument(
1096
- "--disable-features=OptimizationHintsFetching,Translate,"
1097
- "OptimizationTargetPrediction,PrivacySandboxSettings4,"
1098
- "DownloadBubble,DownloadBubbleV2"
1099
- )
1107
+ included_disabled_features.append("OptimizationHintsFetching")
1108
+ included_disabled_features.append("Translate")
1109
+ included_disabled_features.append("OptimizationTargetPrediction")
1110
+ included_disabled_features.append("PrivacySandboxSettings4")
1111
+ included_disabled_features.append("DownloadBubble")
1112
+ included_disabled_features.append("DownloadBubbleV2")
1113
+ for item in extra_disabled_features:
1114
+ if item not in included_disabled_features:
1115
+ included_disabled_features.append(item)
1116
+ d_f_string = ",".join(included_disabled_features)
1117
+ chrome_options.add_argument("--disable-features=%s" % d_f_string)
1100
1118
  else:
1101
- chrome_options.add_argument(
1102
- "--disable-features=OptimizationHintsFetching,Translate,"
1103
- "OptimizationTargetPrediction,DownloadBubble,DownloadBubbleV2"
1104
- )
1119
+ included_disabled_features.append("OptimizationHintsFetching")
1120
+ included_disabled_features.append("Translate")
1121
+ included_disabled_features.append("OptimizationTargetPrediction")
1122
+ included_disabled_features.append("DownloadBubble")
1123
+ included_disabled_features.append("DownloadBubbleV2")
1124
+ for item in extra_disabled_features:
1125
+ if item not in included_disabled_features:
1126
+ included_disabled_features.append(item)
1127
+ d_f_string = ",".join(included_disabled_features)
1128
+ chrome_options.add_argument("--disable-features=%s" % d_f_string)
1105
1129
  if (
1106
1130
  is_using_uc(undetectable, browser_name)
1107
1131
  and (
@@ -1338,6 +1362,7 @@ def get_driver(
1338
1362
  user_data_dir=None,
1339
1363
  extension_zip=None,
1340
1364
  extension_dir=None,
1365
+ disable_features=None,
1341
1366
  binary_location=None,
1342
1367
  driver_version=None,
1343
1368
  page_load_strategy=None,
@@ -1550,6 +1575,7 @@ def get_driver(
1550
1575
  user_data_dir,
1551
1576
  extension_zip,
1552
1577
  extension_dir,
1578
+ disable_features,
1553
1579
  binary_location,
1554
1580
  driver_version,
1555
1581
  page_load_strategy,
@@ -1605,6 +1631,7 @@ def get_driver(
1605
1631
  user_data_dir,
1606
1632
  extension_zip,
1607
1633
  extension_dir,
1634
+ disable_features,
1608
1635
  binary_location,
1609
1636
  driver_version,
1610
1637
  page_load_strategy,
@@ -1664,6 +1691,7 @@ def get_remote_driver(
1664
1691
  user_data_dir,
1665
1692
  extension_zip,
1666
1693
  extension_dir,
1694
+ disable_features,
1667
1695
  binary_location,
1668
1696
  driver_version,
1669
1697
  page_load_strategy,
@@ -1784,6 +1812,7 @@ def get_remote_driver(
1784
1812
  user_data_dir,
1785
1813
  extension_zip,
1786
1814
  extension_dir,
1815
+ disable_features,
1787
1816
  binary_location,
1788
1817
  driver_version,
1789
1818
  page_load_strategy,
@@ -1816,6 +1845,9 @@ def get_remote_driver(
1816
1845
  platform_name = desired_caps[key]
1817
1846
  elif re.match("[a-zA-Z0-9]*:[a-zA-Z0-9]*", key):
1818
1847
  extension_capabilities[key] = desired_caps[key]
1848
+ cap_str = str(desired_caps).lower()
1849
+ if "browserstack" in cap_str or "bstack" in cap_str:
1850
+ chrome_options.set_capability("bstack:options", desired_caps)
1819
1851
  chrome_options.set_capability("cloud:options", capabilities)
1820
1852
  if selenoid:
1821
1853
  snops = selenoid_options
@@ -1876,6 +1908,9 @@ def get_remote_driver(
1876
1908
  platform_name = desired_caps[key]
1877
1909
  elif re.match("[a-zA-Z0-9]*:[a-zA-Z0-9]*", key):
1878
1910
  extension_capabilities[key] = desired_caps[key]
1911
+ cap_str = str(desired_caps).lower()
1912
+ if "browserstack" in cap_str or "bstack" in cap_str:
1913
+ firefox_options.set_capability("bstack:options", desired_caps)
1879
1914
  firefox_options.set_capability("cloud:options", capabilities)
1880
1915
  if selenoid:
1881
1916
  snops = selenoid_options
@@ -1949,6 +1984,7 @@ def get_remote_driver(
1949
1984
  user_data_dir,
1950
1985
  extension_zip,
1951
1986
  extension_dir,
1987
+ disable_features,
1952
1988
  binary_location,
1953
1989
  driver_version,
1954
1990
  page_load_strategy,
@@ -2016,6 +2052,9 @@ def get_remote_driver(
2016
2052
  remote_options = ArgOptions()
2017
2053
  for cap_name, cap_value in desired_caps.items():
2018
2054
  remote_options.set_capability(cap_name, cap_value)
2055
+ cap_str = str(desired_caps).lower()
2056
+ if "browserstack" in cap_str or "bstack" in cap_str:
2057
+ remote_options.set_capability("bstack:options", desired_caps)
2019
2058
  driver = webdriver.Remote(
2020
2059
  command_executor=address,
2021
2060
  options=remote_options,
@@ -2066,6 +2105,7 @@ def get_local_driver(
2066
2105
  user_data_dir,
2067
2106
  extension_zip,
2068
2107
  extension_dir,
2108
+ disable_features,
2069
2109
  binary_location,
2070
2110
  driver_version,
2071
2111
  page_load_strategy,
@@ -2561,18 +2601,6 @@ def get_local_driver(
2561
2601
  edge_options.add_argument(
2562
2602
  "--disable-autofill-keyboard-accessory-view[8]"
2563
2603
  )
2564
- edge_options.add_argument("--ash-no-nudges")
2565
- edge_options.add_argument("--deny-permission-prompts")
2566
- if user_data_dir:
2567
- edge_options.add_argument(
2568
- "--disable-features=OptimizationHintsFetching,Translate,"
2569
- "OptimizationTargetPrediction,PrivacySandboxSettings4"
2570
- )
2571
- else:
2572
- edge_options.add_argument(
2573
- "--disable-features=OptimizationHintsFetching,Translate,"
2574
- "OptimizationTargetPrediction"
2575
- )
2576
2604
  edge_options.add_argument("--disable-browser-side-navigation")
2577
2605
  edge_options.add_argument("--disable-translate")
2578
2606
  if not enable_ws:
@@ -2587,6 +2615,12 @@ def get_local_driver(
2587
2615
  if headless or headless2 or is_using_uc(undetectable, browser_name):
2588
2616
  edge_options.add_argument("--disable-renderer-backgrounding")
2589
2617
  edge_options.add_argument("--disable-backgrounding-occluded-windows")
2618
+ edge_options.add_argument("--disable-client-side-phishing-detection")
2619
+ edge_options.add_argument("--disable-oopr-debug-crash-dump")
2620
+ edge_options.add_argument("--disable-top-sites")
2621
+ edge_options.add_argument("--ash-no-nudges")
2622
+ edge_options.add_argument("--no-crash-upload")
2623
+ edge_options.add_argument("--deny-permission-prompts")
2590
2624
  if (
2591
2625
  page_load_strategy
2592
2626
  and page_load_strategy.lower() in ["eager", "none"]
@@ -2668,6 +2702,7 @@ def get_local_driver(
2668
2702
  edge_options.add_argument("--disable-gpu")
2669
2703
  if IS_LINUX:
2670
2704
  edge_options.add_argument("--disable-dev-shm-usage")
2705
+ extra_disabled_features = []
2671
2706
  set_binary = False
2672
2707
  if chromium_arg:
2673
2708
  # Can be a comma-separated list of Chromium args
@@ -2681,8 +2716,33 @@ def get_local_driver(
2681
2716
  chromium_arg_item = "--" + chromium_arg_item
2682
2717
  if "set-binary" in chromium_arg_item:
2683
2718
  set_binary = True
2719
+ elif "disable-features=" in chromium_arg_item:
2720
+ d_f = chromium_arg_item.split("disable-features=")[-1]
2721
+ extra_disabled_features.append(d_f)
2684
2722
  elif len(chromium_arg_item) >= 3:
2685
2723
  edge_options.add_argument(chromium_arg_item)
2724
+ if disable_features:
2725
+ extra_disabled_features.extend(disable_features.split(","))
2726
+ included_disabled_features = []
2727
+ if user_data_dir:
2728
+ included_disabled_features.append("OptimizationHintsFetching")
2729
+ included_disabled_features.append("Translate")
2730
+ included_disabled_features.append("OptimizationTargetPrediction")
2731
+ included_disabled_features.append("PrivacySandboxSettings4")
2732
+ for item in extra_disabled_features:
2733
+ if item not in included_disabled_features:
2734
+ included_disabled_features.append(item)
2735
+ d_f_string = ",".join(included_disabled_features)
2736
+ edge_options.add_argument("--disable-features=%s" % d_f_string)
2737
+ else:
2738
+ included_disabled_features.append("OptimizationHintsFetching")
2739
+ included_disabled_features.append("Translate")
2740
+ included_disabled_features.append("OptimizationTargetPrediction")
2741
+ for item in extra_disabled_features:
2742
+ if item not in included_disabled_features:
2743
+ included_disabled_features.append(item)
2744
+ d_f_string = ",".join(included_disabled_features)
2745
+ edge_options.add_argument("--disable-features=%s" % d_f_string)
2686
2746
  if (set_binary or IS_LINUX) and not binary_location:
2687
2747
  br_app = "edge"
2688
2748
  binary_loc = detect_b_ver.get_binary_location(br_app)
@@ -2822,6 +2882,7 @@ def get_local_driver(
2822
2882
  user_data_dir,
2823
2883
  extension_zip,
2824
2884
  extension_dir,
2885
+ disable_features,
2825
2886
  binary_location,
2826
2887
  driver_version,
2827
2888
  page_load_strategy,
@@ -3339,6 +3400,7 @@ def get_local_driver(
3339
3400
  None, # user_data_dir
3340
3401
  None, # extension_zip
3341
3402
  None, # extension_dir
3403
+ None, # disable_features
3342
3404
  binary_location,
3343
3405
  driver_version,
3344
3406
  page_load_strategy,
@@ -3556,6 +3618,7 @@ def get_local_driver(
3556
3618
  None, # user_data_dir
3557
3619
  None, # extension_zip
3558
3620
  None, # extension_dir
3621
+ None, # disable_features
3559
3622
  binary_location,
3560
3623
  driver_version,
3561
3624
  page_load_strategy,
@@ -3777,6 +3777,7 @@ class BaseCase(unittest.TestCase):
3777
3777
  user_data_dir=None,
3778
3778
  extension_zip=None,
3779
3779
  extension_dir=None,
3780
+ disable_features=None,
3780
3781
  binary_location=None,
3781
3782
  driver_version=None,
3782
3783
  page_load_strategy=None,
@@ -3835,6 +3836,7 @@ class BaseCase(unittest.TestCase):
3835
3836
  user_data_dir - Chrome's User Data Directory to use (Chrome-only)
3836
3837
  extension_zip - A Chrome Extension ZIP file to use (Chrome-only)
3837
3838
  extension_dir - A Chrome Extension folder to use (Chrome-only)
3839
+ disable_features - the option to disable features on Chrome/Edge
3838
3840
  binary_location - the path of the browser binary to use (Chromium)
3839
3841
  driver_version - the chromedriver or uc_driver version to force
3840
3842
  page_load_strategy - the option to change pageLoadStrategy (Chrome)
@@ -3960,6 +3962,8 @@ class BaseCase(unittest.TestCase):
3960
3962
  extension_zip = self.extension_zip
3961
3963
  if extension_dir is None:
3962
3964
  extension_dir = self.extension_dir
3965
+ if disable_features is None:
3966
+ disable_features = self.disable_features
3963
3967
  if binary_location is None:
3964
3968
  binary_location = self.binary_location
3965
3969
  if driver_version is None:
@@ -4040,6 +4044,7 @@ class BaseCase(unittest.TestCase):
4040
4044
  user_data_dir=user_data_dir,
4041
4045
  extension_zip=extension_zip,
4042
4046
  extension_dir=extension_dir,
4047
+ disable_features=disable_features,
4043
4048
  binary_location=binary_location,
4044
4049
  driver_version=driver_version,
4045
4050
  page_load_strategy=page_load_strategy,
@@ -6918,13 +6923,14 @@ class BaseCase(unittest.TestCase):
6918
6923
  image = Image.open(image_file_path)
6919
6924
  draw = ImageDraw.Draw(image)
6920
6925
  draw.rectangle(
6921
- (0, 0, (max_width * 6) + 6, 16 * len_text_rows),
6926
+ (0, 0, int(max_width * 8.32) + 10, 23 * len_text_rows + 2),
6922
6927
  fill=(236, 236, 28),
6923
6928
  )
6924
6929
  draw.text(
6925
6930
  (4, 2), # Coordinates
6926
6931
  overlay_text, # Text
6927
- (8, 38, 176), # Color
6932
+ fill=(8, 38, 176), # Color
6933
+ font_size=18, # Font Size
6928
6934
  )
6929
6935
  image.save(image_file_path, "PNG", quality=100, optimize=True)
6930
6936
 
@@ -14330,6 +14336,7 @@ class BaseCase(unittest.TestCase):
14330
14336
  self.user_data_dir = sb_config.user_data_dir
14331
14337
  self.extension_zip = sb_config.extension_zip
14332
14338
  self.extension_dir = sb_config.extension_dir
14339
+ self.disable_features = sb_config.disable_features
14333
14340
  self.binary_location = sb_config.binary_location
14334
14341
  self.driver_version = sb_config.driver_version
14335
14342
  self.page_load_strategy = sb_config.page_load_strategy
@@ -14651,6 +14658,7 @@ class BaseCase(unittest.TestCase):
14651
14658
  user_data_dir=self.user_data_dir,
14652
14659
  extension_zip=self.extension_zip,
14653
14660
  extension_dir=self.extension_dir,
14661
+ disable_features=self.disable_features,
14654
14662
  binary_location=self.binary_location,
14655
14663
  driver_version=self.driver_version,
14656
14664
  page_load_strategy=self.page_load_strategy,
@@ -108,6 +108,7 @@ def Driver(
108
108
  user_data_dir=None, # Set the Chrome user data directory to use.
109
109
  extension_zip=None, # Load a Chrome Extension .zip|.crx, comma-separated.
110
110
  extension_dir=None, # Load a Chrome Extension directory, comma-separated.
111
+ disable_features=None, # "F1,F2" (Disable Chrome features, ","-separated.)
111
112
  binary_location=None, # Set path of the Chromium browser binary to use.
112
113
  driver_version=None, # Set the chromedriver or uc_driver version to use.
113
114
  page_load_strategy=None, # Set Chrome PLS to "normal", "eager", or "none".
@@ -264,6 +265,30 @@ def Driver(
264
265
  proxy_string = proxy_string[1:-1]
265
266
  elif proxy_string.startswith("'") and proxy_string.endswith("'"):
266
267
  proxy_string = proxy_string[1:-1]
268
+ c_a = chromium_arg
269
+ if c_a is None and "--chromium-arg" in arg_join:
270
+ if "--chromium-arg=" in arg_join:
271
+ c_a = arg_join.split("--chromium-arg=")[1].split(" ")[0]
272
+ elif "--chromium-arg " in arg_join:
273
+ c_a = arg_join.split("--chromium-arg ")[1].split(" ")[0]
274
+ if c_a:
275
+ if c_a.startswith('"') and c_a.endswith('"'):
276
+ c_a = c_a[1:-1]
277
+ elif c_a.startswith("'") and c_a.endswith("'"):
278
+ c_a = c_a[1:-1]
279
+ chromium_arg = c_a
280
+ d_f = disable_features
281
+ if d_f is None and "--disable-features" in arg_join:
282
+ if "--disable-features=" in arg_join:
283
+ d_f = arg_join.split("--disable-features=")[1].split(" ")[0]
284
+ elif "--disable-features " in arg_join:
285
+ d_f = arg_join.split("--disable-features ")[1].split(" ")[0]
286
+ if d_f:
287
+ if d_f.startswith('"') and d_f.endswith('"'):
288
+ d_f = d_f[1:-1]
289
+ elif c_a.startswith("'") and d_f.endswith("'"):
290
+ d_f = d_f[1:-1]
291
+ disable_features = d_f
267
292
  user_agent = agent
268
293
  recorder_mode = False
269
294
  if recorder_ext:
@@ -505,6 +530,7 @@ def Driver(
505
530
  user_data_dir=user_data_dir,
506
531
  extension_zip=extension_zip,
507
532
  extension_dir=extension_dir,
533
+ disable_features=disable_features,
508
534
  binary_location=binary_location,
509
535
  driver_version=driver_version,
510
536
  page_load_strategy=page_load_strategy,