seleniumbase 4.22.5__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.5 → seleniumbase-4.22.6}/PKG-INFO +6 -5
  2. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/README.md +1 -0
  3. seleniumbase-4.22.6/examples/boilerplates/boilerplate_test.py +14 -0
  4. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_parameter_script.py +1 -0
  5. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_todomvc.py +3 -3
  6. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/russian_test_1.py +1 -1
  7. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/customizing_test_runs.md +1 -0
  8. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/requirements.txt +5 -5
  9. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/requirements.txt +4 -4
  10. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/__version__.py +1 -1
  11. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/behave/behave_sb.py +8 -0
  12. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/run.py +2 -1
  13. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/browser_launcher.py +75 -21
  14. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/base_case.py +7 -0
  15. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/driver_manager.py +26 -0
  16. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/pytest_plugin.py +15 -0
  17. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/sb_manager.py +27 -0
  18. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/selenium_plugin.py +12 -0
  19. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase.egg-info/PKG-INFO +6 -5
  20. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase.egg-info/requires.txt +4 -4
  21. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/setup.py +4 -4
  22. seleniumbase-4.22.5/examples/boilerplates/boilerplate_test.py +0 -9
  23. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/.github/Workflows.md +0 -0
  24. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/.github/workflows/pages.yml +0 -0
  25. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/.github/workflows/python-nightly-mac.yml +0 -0
  26. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/.github/workflows/python-nightly-ubuntu.yml +0 -0
  27. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/.github/workflows/python-nightly-windows.yml +0 -0
  28. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/.github/workflows/python-package.yml +0 -0
  29. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/.gitignore +0 -0
  30. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/CHANGELOG.md +0 -0
  31. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/CNAME +0 -0
  32. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/CODE_OF_CONDUCT.md +0 -0
  33. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/CONTRIBUTING.md +0 -0
  34. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/Dockerfile +0 -0
  35. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/LICENSE +0 -0
  36. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/MANIFEST.in +0 -0
  37. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/SECURITY.md +0 -0
  38. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/_config.yml +0 -0
  39. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/azure-pipelines.yml +0 -0
  40. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/ReadMe.md +0 -0
  41. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/__init__.py +0 -0
  42. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/basic_test.py +0 -0
  43. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/ReadMe.md +0 -0
  44. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/__init__.py +0 -0
  45. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/behave.ini +0 -0
  46. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/__init__.py +0 -0
  47. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/behave.ini +0 -0
  48. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/calculator.feature +0 -0
  49. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/environment.py +0 -0
  50. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/fail_page.feature +0 -0
  51. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/realworld.feature +0 -0
  52. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/__init__.py +0 -0
  53. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/calculator.py +0 -0
  54. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/fail_page.py +0 -0
  55. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/imported.py +0 -0
  56. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
  57. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/behave_bdd/features/swag_labs.feature +0 -0
  58. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/ReadMe.md +0 -0
  59. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/__init__.py +0 -0
  60. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/base_test_case.py +0 -0
  61. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/classic_obj_test.py +0 -0
  62. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/page_objects.py +0 -0
  63. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/__init__.py +0 -0
  64. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
  65. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
  66. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
  67. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
  68. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/google_objects.py +0 -0
  69. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/google_test.py +0 -0
  70. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/sb_swag_test.py +0 -0
  71. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/swag_labs_test.py +0 -0
  72. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/samples/test_page_objects.py +0 -0
  73. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/boilerplates/sb_fixture_test.py +0 -0
  74. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/capabilities/ReadMe.md +0 -0
  75. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/capabilities/mac_cap_file.py +0 -0
  76. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/capabilities/sample_cap_file_BS.py +0 -0
  77. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/capabilities/sample_cap_file_SL.py +0 -0
  78. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/capabilities/selenoid_cap_file.py +0 -0
  79. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/capabilities/win10_cap_file.py +0 -0
  80. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
  81. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
  82. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
  83. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
  84. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
  85. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
  86. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
  87. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
  88. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/case_summary.md +0 -0
  89. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/ReadMe.md +0 -0
  90. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/chart_presentation.py +0 -0
  91. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/my_chart.py +0 -0
  92. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/pie_charts.py +0 -0
  93. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/test_area_chart.py +0 -0
  94. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/test_display_chart.py +0 -0
  95. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/test_line_chart.py +0 -0
  96. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/test_multi_series.py +0 -0
  97. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/chart_maker/test_save_chart.py +0 -0
  98. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/coffee_cart_tests.py +0 -0
  99. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/custom_settings.py +0 -0
  100. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/desktop_apps/ReadMe.md +0 -0
  101. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/desktop_apps/recorder.py +0 -0
  102. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/dialog_boxes/ReadMe.md +0 -0
  103. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/dialog_boxes/dialog_box_tour.py +0 -0
  104. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/edge_test.py +0 -0
  105. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/example_config.cfg +0 -0
  106. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/example_logs/ReadMe.md +0 -0
  107. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/example_logs/basic_test_info.txt +0 -0
  108. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/example_logs/page_source.html +0 -0
  109. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/example_logs/screenshot.png +0 -0
  110. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/github_test.py +0 -0
  111. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/gui_test_runner.py +0 -0
  112. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/hack_the_planet.py +0 -0
  113. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/handle_alert_test.py +0 -0
  114. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/iframe_tests.py +0 -0
  115. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/locale_code_test.py +0 -0
  116. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/master_qa/ReadMe.md +0 -0
  117. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/master_qa/__init__.py +0 -0
  118. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/master_qa/basic_masterqa_test_0.py +0 -0
  119. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/master_qa/masterqa_test_1.py +0 -0
  120. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/master_qa/pytest.ini +0 -0
  121. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/__init__.py +0 -0
  122. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/protractor/ReadMe.md +0 -0
  123. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/protractor/__init__.py +0 -0
  124. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/protractor/example_spec.js +0 -0
  125. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/protractor/example_test.py +0 -0
  126. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/protractor/input_spec.js +0 -0
  127. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/protractor/input_test.py +0 -0
  128. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/protractor/mat_paginator_spec.js +0 -0
  129. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/protractor/mat_paginator_test.py +0 -0
  130. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/raw_selenium/ReadMe.md +0 -0
  131. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/raw_selenium/__init__.py +0 -0
  132. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
  133. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
  134. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/raw_selenium/messy_raw.py +0 -0
  135. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/raw_selenium/pytest.ini +0 -0
  136. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/raw_selenium/refined_raw.py +0 -0
  137. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/migration/raw_selenium/simple_sbase.py +0 -0
  138. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/my_first_test.py +0 -0
  139. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/nth_child_test.py +0 -0
  140. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/offline_examples/__init__.py +0 -0
  141. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/offline_examples/demo_page.html +0 -0
  142. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/offline_examples/load_html_test.py +0 -0
  143. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/offline_examples/test_demo_page.py +0 -0
  144. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/offline_examples/test_handle_alerts.py +0 -0
  145. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/offline_examples/test_request_fixture.py +0 -0
  146. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/offline_examples/test_user_agent.py +0 -0
  147. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/old_wordle_script.py +0 -0
  148. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/parameterized_test.py +0 -0
  149. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/performance_test.py +0 -0
  150. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/presenter/ReadMe.md +0 -0
  151. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/presenter/core_presentation.py +0 -0
  152. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/presenter/edge_presentation.py +0 -0
  153. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/presenter/fundamentals.py +0 -0
  154. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/presenter/my_presentation.py +0 -0
  155. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/presenter/py_virtual_envs.py +0 -0
  156. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/proxy_test.py +0 -0
  157. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/pytest.ini +0 -0
  158. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/rate_limiting_test.py +0 -0
  159. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_browser_launcher.py +0 -0
  160. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_call.py +0 -0
  161. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_driver_context.py +0 -0
  162. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_file_call.py +0 -0
  163. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_main_call.py +0 -0
  164. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_sb.py +0 -0
  165. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_test_scripts.py +0 -0
  166. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/raw_uc_mode.py +0 -0
  167. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/setup.cfg +0 -0
  168. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/shadow_root_test.py +0 -0
  169. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/swag_labs_user_tests.py +0 -0
  170. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_apple_site.py +0 -0
  171. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_assert_elements.py +0 -0
  172. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_calculator.py +0 -0
  173. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_canvas.py +0 -0
  174. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_checkboxes.py +0 -0
  175. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_chinese_pdf.py +0 -0
  176. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_chromedriver.py +0 -0
  177. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_coffee_cart.py +0 -0
  178. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_console_logging.py +0 -0
  179. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_contains_selector.py +0 -0
  180. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_cycle_elements.py +0 -0
  181. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_decryption.py +0 -0
  182. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_deferred_asserts.py +0 -0
  183. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_demo_site.py +0 -0
  184. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_detect_404s.py +0 -0
  185. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_docs_site.py +0 -0
  186. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_double_click.py +0 -0
  187. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_download_files.py +0 -0
  188. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_download_images.py +0 -0
  189. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_drag_and_drop.py +0 -0
  190. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_error_page.py +0 -0
  191. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_event_firing.py +0 -0
  192. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_fail.py +0 -0
  193. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_geolocation.py +0 -0
  194. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_get_coffee.py +0 -0
  195. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_get_locale_code.py +0 -0
  196. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_get_pdf_text.py +0 -0
  197. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_get_user_agent.py +0 -0
  198. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_hack_search.py +0 -0
  199. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_image_saving.py +0 -0
  200. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_inspect_html.py +0 -0
  201. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_login.py +0 -0
  202. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_markers.py +0 -0
  203. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_mfa_login.py +0 -0
  204. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_multiple_drivers.py +0 -0
  205. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_null.py +0 -0
  206. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_override_driver.py +0 -0
  207. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_override_sb_fixture.py +0 -0
  208. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_parse_soup.py +0 -0
  209. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_pdf_asserts.py +0 -0
  210. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_pytest_parametrize.py +0 -0
  211. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_repeat_tests.py +0 -0
  212. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_request_sb_fixture.py +0 -0
  213. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_save_screenshots.py +0 -0
  214. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_sb_fixture.py +0 -0
  215. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_scrape_bing.py +0 -0
  216. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_select_options.py +0 -0
  217. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_shadow_dom.py +0 -0
  218. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_show_file_choosers.py +0 -0
  219. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_skype_site.py +0 -0
  220. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_suite.py +0 -0
  221. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_swag_labs.py +0 -0
  222. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_tinymce.py +0 -0
  223. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_url_asserts.py +0 -0
  224. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_usefixtures.py +0 -0
  225. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_verify_chromedriver.py +0 -0
  226. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_window_switching.py +0 -0
  227. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_xfail.py +0 -0
  228. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/test_xkcd.py +0 -0
  229. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/time_limit_test.py +0 -0
  230. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/ReadMe.md +0 -0
  231. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/bootstrap_google_tour.py +0 -0
  232. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
  233. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/driverjs_maps_tour.py +0 -0
  234. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/google_tour.py +0 -0
  235. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/hopscotch_google_tour.py +0 -0
  236. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/introjs_google_tour.py +0 -0
  237. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/maps_introjs_tour.py +0 -0
  238. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/octocat_tour.py +0 -0
  239. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/shepherd_google_tour.py +0 -0
  240. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/tour_examples/xkcd_tour.py +0 -0
  241. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/ReadMe.md +0 -0
  242. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/chinese_test_1.py +0 -0
  243. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/dutch_test_1.py +0 -0
  244. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/english_test_1.py +0 -0
  245. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/french_test_1.py +0 -0
  246. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/italian_test_1.py +0 -0
  247. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/japanese_test_1.py +0 -0
  248. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/korean_test_1.py +0 -0
  249. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/portuguese_test_1.py +0 -0
  250. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/pytest.ini +0 -0
  251. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/translations/spanish_test_1.py +0 -0
  252. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/uc_cdp_events.py +0 -0
  253. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/unit_tests/ReadMe.md +0 -0
  254. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/unit_tests/verify_framework.py +0 -0
  255. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/upgrade_chromedriver.py +0 -0
  256. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/upload_file_test.py +0 -0
  257. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/user_agent_test.py +0 -0
  258. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/verify_undetected.py +0 -0
  259. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/ReadMe.md +0 -0
  260. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/__init__.py +0 -0
  261. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
  262. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
  263. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
  264. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
  265. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
  266. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
  267. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/layout_test.py +0 -0
  268. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/python_home_test.py +0 -0
  269. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/test_layout_fail.py +0 -0
  270. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/visual_testing/xkcd_visual_test.py +0 -0
  271. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/wordle_test.py +0 -0
  272. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/xpath_test.py +0 -0
  273. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/examples/youtube_search_test.py +0 -0
  274. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/ReadMe.md +0 -0
  275. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/behave_gui.md +0 -0
  276. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/case_plans.md +0 -0
  277. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/chinese.md +0 -0
  278. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/commander.md +0 -0
  279. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/demo_mode.md +0 -0
  280. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/desired_capabilities.md +0 -0
  281. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/features_list.md +0 -0
  282. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/handling_iframes.md +0 -0
  283. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/happy_customers.md +0 -0
  284. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/hidden_files_info.md +0 -0
  285. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/how_it_works.md +0 -0
  286. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/html_inspector.md +0 -0
  287. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/install.md +0 -0
  288. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/install_python_pip_git.md +0 -0
  289. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/js_package_manager.md +0 -0
  290. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/locale_codes.md +0 -0
  291. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/method_summary.md +0 -0
  292. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/mobile_testing.md +0 -0
  293. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/mysql_installation.md +0 -0
  294. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/recorder_mode.md +0 -0
  295. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/shadow_dom.md +0 -0
  296. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/syntax_formats.md +0 -0
  297. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/thank_you.md +0 -0
  298. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/translations.md +0 -0
  299. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/useful_grep_commands.md +0 -0
  300. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/using_safari_driver.md +0 -0
  301. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/verify_webdriver.md +0 -0
  302. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/virtualenv_instructions.md +0 -0
  303. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/help_docs/webdriver_installation.md +0 -0
  304. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/install.sh +0 -0
  305. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/__init__.py +0 -0
  306. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
  307. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/azure/jenkins/ReadMe.md +0 -0
  308. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/ReadMe.md +0 -0
  309. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/behave.ini +0 -0
  310. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/__init__.py +0 -0
  311. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/behave.ini +0 -0
  312. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/calculator.feature +0 -0
  313. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/environment.py +0 -0
  314. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/fail_page.feature +0 -0
  315. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/realworld.feature +0 -0
  316. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/steps/__init__.py +0 -0
  317. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/steps/calculator.py +0 -0
  318. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/steps/fail_page.py +0 -0
  319. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/steps/real_world.py +0 -0
  320. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/steps/swag_labs.py +0 -0
  321. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/behave/features/swag_labs.feature +0 -0
  322. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/brython/ReadMe.md +0 -0
  323. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/brython/index.html +0 -0
  324. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/brython/index.py +0 -0
  325. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/brython/library.html +0 -0
  326. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/docker/ReadMe.md +0 -0
  327. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/docker/docker-entrypoint.sh +0 -0
  328. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/docker/docker_config.cfg +0 -0
  329. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
  330. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/docker/run_docker_test_in_firefox.sh +0 -0
  331. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/github/ReadMe.md +0 -0
  332. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/github/workflows/ReadMe.md +0 -0
  333. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/github/workflows/extras.md +0 -0
  334. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/google_cloud/ReadMe.md +0 -0
  335. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/katalon/ReadMe.md +0 -0
  336. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/linux/Linuxfile.sh +0 -0
  337. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/linux/ReadMe.md +0 -0
  338. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/linux/Xvfb_launcher.sh +0 -0
  339. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/linux/jenkins_permissions.sh +0 -0
  340. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/linux/tomcat_permissions.sh +0 -0
  341. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/node_js/ReadMe.md +0 -0
  342. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/node_js/__init__.py +0 -0
  343. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/node_js/index.html +0 -0
  344. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/node_js/my_first_test.py +0 -0
  345. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/node_js/npm-shrinkwrap.json +0 -0
  346. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/node_js/package.json +0 -0
  347. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/node_js/server.js +0 -0
  348. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/node_js/test_demo_site.py +0 -0
  349. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/selenium_grid/ReadMe.md +0 -0
  350. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/integrations/selenium_ide/ReadMe.md +0 -0
  351. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs.yml +0 -0
  352. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/ReadMe.txt +0 -0
  353. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/docs_instructions.txt +0 -0
  354. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/dash_pie.png +0 -0
  355. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/dash_pie_2.png +0 -0
  356. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/dash_pie_3.png +0 -0
  357. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/favicon.ico +0 -0
  358. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/grad_logo.png +0 -0
  359. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/green_icon.png +0 -0
  360. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/green_logo.png +0 -0
  361. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/green_logo2.png +0 -0
  362. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/green_logo3.png +0 -0
  363. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/logo3.png +0 -0
  364. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/logo3a.png +0 -0
  365. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/logo3b.png +0 -0
  366. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/logo3c.png +0 -0
  367. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/logo4.png +0 -0
  368. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/logo5.png +0 -0
  369. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/logo6.png +0 -0
  370. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/logo7.png +0 -0
  371. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/sb_icon.png +0 -0
  372. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/sb_logo_10.png +0 -0
  373. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/sb_logo_7.png +0 -0
  374. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/side_by_side.png +0 -0
  375. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_facebook.svg +0 -0
  376. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_github.svg +0 -0
  377. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_gitter.svg +0 -0
  378. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_instagram.svg +0 -0
  379. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/img/social/share_twitter.svg +0 -0
  380. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/index.txt +0 -0
  381. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/mkdocs_build/prepare.py +0 -0
  382. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/pytest.ini +0 -0
  383. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/sbase/ReadMe.txt +0 -0
  384. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/sbase/__init__.py +0 -0
  385. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/sbase/__main__.py +0 -0
  386. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/sbase/steps.py +0 -0
  387. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/ReadMe.md +0 -0
  388. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/__init__.py +0 -0
  389. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/__main__.py +0 -0
  390. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/behave/__init__.py +0 -0
  391. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/behave/behave_helper.py +0 -0
  392. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/behave/steps.py +0 -0
  393. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/common/ReadMe.md +0 -0
  394. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/common/__init__.py +0 -0
  395. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/common/decorators.py +0 -0
  396. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/common/encryption.py +0 -0
  397. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/common/exceptions.py +0 -0
  398. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/common/obfuscate.py +0 -0
  399. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/common/unobfuscate.py +0 -0
  400. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/config/__init__.py +0 -0
  401. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/config/ad_block_list.py +0 -0
  402. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/config/proxy_list.py +0 -0
  403. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/config/settings.py +0 -0
  404. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/ReadMe.md +0 -0
  405. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/__init__.py +0 -0
  406. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/logo_helper.py +0 -0
  407. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/rich_helper.py +0 -0
  408. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  409. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  410. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_commander.py +0 -0
  411. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_install.py +0 -0
  412. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  413. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  414. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  415. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  416. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  417. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  418. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_print.py +0 -0
  419. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  420. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/__init__.py +0 -0
  421. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/application_manager.py +0 -0
  422. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/capabilities_parser.py +0 -0
  423. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/colored_traceback.py +0 -0
  424. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/create_db_tables.sql +0 -0
  425. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/detect_b_ver.py +0 -0
  426. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/download_helper.py +0 -0
  427. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/encoded_images.py +0 -0
  428. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/jqc_helper.py +0 -0
  429. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/log_helper.py +0 -0
  430. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/mysql.py +0 -0
  431. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/proxy_helper.py +0 -0
  432. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/recorder_helper.py +0 -0
  433. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/report_helper.py +0 -0
  434. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/s3_manager.py +0 -0
  435. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/sb_driver.py +0 -0
  436. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/session_helper.py +0 -0
  437. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/settings_parser.py +0 -0
  438. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/style_sheet.py +0 -0
  439. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/testcase_manager.py +0 -0
  440. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/tour_helper.py +0 -0
  441. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/core/visual_helper.py +0 -0
  442. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/drivers/ReadMe.md +0 -0
  443. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/drivers/__init__.py +0 -0
  444. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/extensions/ReadMe.md +0 -0
  445. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/extensions/__init__.py +0 -0
  446. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/extensions/ad_block.zip +0 -0
  447. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/extensions/disable_csp.zip +0 -0
  448. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/extensions/recorder.zip +0 -0
  449. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/extensions/sbase_ext.zip +0 -0
  450. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/__init__.py +0 -0
  451. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/constants.py +0 -0
  452. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  453. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/errors.py +0 -0
  454. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/js_utils.py +0 -0
  455. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/page_actions.py +0 -0
  456. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/page_utils.py +0 -0
  457. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/shared_utils.py +0 -0
  458. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/unittest_helper.py +0 -0
  459. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/words.py +0 -0
  460. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  461. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/js_code/__init__.py +0 -0
  462. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/js_code/active_css_js.py +0 -0
  463. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/js_code/live_js.py +0 -0
  464. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/js_code/recorder_js.py +0 -0
  465. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/masterqa/ReadMe.md +0 -0
  466. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/masterqa/__init__.py +0 -0
  467. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/masterqa/master_qa.py +0 -0
  468. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/__init__.py +0 -0
  469. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/base_plugin.py +0 -0
  470. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/basic_test_info.py +0 -0
  471. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  472. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/page_source.py +0 -0
  473. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  474. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/plugins/screen_shots.py +0 -0
  475. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/resources/ReadMe.md +0 -0
  476. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/resources/__init__.py +0 -0
  477. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/resources/favicon.ico +0 -0
  478. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/__init__.py +0 -0
  479. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/chinese.py +0 -0
  480. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/dutch.py +0 -0
  481. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/french.py +0 -0
  482. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/italian.py +0 -0
  483. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/japanese.py +0 -0
  484. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/korean.py +0 -0
  485. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/master_dict.py +0 -0
  486. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/portuguese.py +0 -0
  487. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/russian.py +0 -0
  488. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/spanish.py +0 -0
  489. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/translate/translator.py +0 -0
  490. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/undetected/__init__.py +0 -0
  491. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/undetected/cdp.py +0 -0
  492. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/undetected/dprocess.py +0 -0
  493. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/undetected/options.py +0 -0
  494. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/undetected/patcher.py +0 -0
  495. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/undetected/reactor.py +0 -0
  496. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/undetected/webelement.py +0 -0
  497. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/__init__.py +0 -0
  498. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
  499. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  500. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  501. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  502. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  503. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  504. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  505. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  506. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  507. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  508. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  509. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  510. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
  511. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  512. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  513. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase.egg-info/SOURCES.txt +0 -0
  514. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase.egg-info/dependency_links.txt +0 -0
  515. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase.egg-info/entry_points.txt +0 -0
  516. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/seleniumbase.egg-info/top_level.txt +0 -0
  517. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/setup.cfg +0 -0
  518. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/virtualenv_install.sh +0 -0
  519. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/win_install.bat +0 -0
  520. {seleniumbase-4.22.5 → seleniumbase-4.22.6}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.22.5
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
@@ -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
@@ -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.5"
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'
@@ -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,
@@ -1955,6 +1984,7 @@ def get_remote_driver(
1955
1984
  user_data_dir,
1956
1985
  extension_zip,
1957
1986
  extension_dir,
1987
+ disable_features,
1958
1988
  binary_location,
1959
1989
  driver_version,
1960
1990
  page_load_strategy,
@@ -2075,6 +2105,7 @@ def get_local_driver(
2075
2105
  user_data_dir,
2076
2106
  extension_zip,
2077
2107
  extension_dir,
2108
+ disable_features,
2078
2109
  binary_location,
2079
2110
  driver_version,
2080
2111
  page_load_strategy,
@@ -2570,18 +2601,6 @@ def get_local_driver(
2570
2601
  edge_options.add_argument(
2571
2602
  "--disable-autofill-keyboard-accessory-view[8]"
2572
2603
  )
2573
- edge_options.add_argument("--ash-no-nudges")
2574
- edge_options.add_argument("--deny-permission-prompts")
2575
- if user_data_dir:
2576
- edge_options.add_argument(
2577
- "--disable-features=OptimizationHintsFetching,Translate,"
2578
- "OptimizationTargetPrediction,PrivacySandboxSettings4"
2579
- )
2580
- else:
2581
- edge_options.add_argument(
2582
- "--disable-features=OptimizationHintsFetching,Translate,"
2583
- "OptimizationTargetPrediction"
2584
- )
2585
2604
  edge_options.add_argument("--disable-browser-side-navigation")
2586
2605
  edge_options.add_argument("--disable-translate")
2587
2606
  if not enable_ws:
@@ -2596,6 +2615,12 @@ def get_local_driver(
2596
2615
  if headless or headless2 or is_using_uc(undetectable, browser_name):
2597
2616
  edge_options.add_argument("--disable-renderer-backgrounding")
2598
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")
2599
2624
  if (
2600
2625
  page_load_strategy
2601
2626
  and page_load_strategy.lower() in ["eager", "none"]
@@ -2677,6 +2702,7 @@ def get_local_driver(
2677
2702
  edge_options.add_argument("--disable-gpu")
2678
2703
  if IS_LINUX:
2679
2704
  edge_options.add_argument("--disable-dev-shm-usage")
2705
+ extra_disabled_features = []
2680
2706
  set_binary = False
2681
2707
  if chromium_arg:
2682
2708
  # Can be a comma-separated list of Chromium args
@@ -2690,8 +2716,33 @@ def get_local_driver(
2690
2716
  chromium_arg_item = "--" + chromium_arg_item
2691
2717
  if "set-binary" in chromium_arg_item:
2692
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)
2693
2722
  elif len(chromium_arg_item) >= 3:
2694
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)
2695
2746
  if (set_binary or IS_LINUX) and not binary_location:
2696
2747
  br_app = "edge"
2697
2748
  binary_loc = detect_b_ver.get_binary_location(br_app)
@@ -2831,6 +2882,7 @@ def get_local_driver(
2831
2882
  user_data_dir,
2832
2883
  extension_zip,
2833
2884
  extension_dir,
2885
+ disable_features,
2834
2886
  binary_location,
2835
2887
  driver_version,
2836
2888
  page_load_strategy,
@@ -3348,6 +3400,7 @@ def get_local_driver(
3348
3400
  None, # user_data_dir
3349
3401
  None, # extension_zip
3350
3402
  None, # extension_dir
3403
+ None, # disable_features
3351
3404
  binary_location,
3352
3405
  driver_version,
3353
3406
  page_load_strategy,
@@ -3565,6 +3618,7 @@ def get_local_driver(
3565
3618
  None, # user_data_dir
3566
3619
  None, # extension_zip
3567
3620
  None, # extension_dir
3621
+ None, # disable_features
3568
3622
  binary_location,
3569
3623
  driver_version,
3570
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,
@@ -14331,6 +14336,7 @@ class BaseCase(unittest.TestCase):
14331
14336
  self.user_data_dir = sb_config.user_data_dir
14332
14337
  self.extension_zip = sb_config.extension_zip
14333
14338
  self.extension_dir = sb_config.extension_dir
14339
+ self.disable_features = sb_config.disable_features
14334
14340
  self.binary_location = sb_config.binary_location
14335
14341
  self.driver_version = sb_config.driver_version
14336
14342
  self.page_load_strategy = sb_config.page_load_strategy
@@ -14652,6 +14658,7 @@ class BaseCase(unittest.TestCase):
14652
14658
  user_data_dir=self.user_data_dir,
14653
14659
  extension_zip=self.extension_zip,
14654
14660
  extension_dir=self.extension_dir,
14661
+ disable_features=self.disable_features,
14655
14662
  binary_location=self.binary_location,
14656
14663
  driver_version=self.driver_version,
14657
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,
@@ -55,6 +55,7 @@ def pytest_addoption(parser):
55
55
  --firefox-pref=SET (Set a Firefox preference:value set, comma-separated.)
56
56
  --extension-zip=ZIP (Load a Chrome Extension .zip|.crx, comma-separated.)
57
57
  --extension-dir=DIR (Load a Chrome Extension directory, comma-separated.)
58
+ --disable-features="F1,F2" (Disable features, comma-separated, no spaces.)
58
59
  --binary-location=PATH (Set path of the Chromium browser binary to use.)
59
60
  --driver-version=VER (Set the chromedriver or uc_driver version to use.)
60
61
  --sjw (Skip JS Waits for readyState to be "complete" or Angular to load.)
@@ -199,6 +200,8 @@ def pytest_addoption(parser):
199
200
  constants.Environment.DEVELOP,
200
201
  constants.Environment.PRODUCTION,
201
202
  constants.Environment.PERFORMANCE,
203
+ constants.Environment.REPLICA,
204
+ constants.Environment.FEDRAMP,
202
205
  constants.Environment.OFFLINE,
203
206
  constants.Environment.ONLINE,
204
207
  constants.Environment.MASTER,
@@ -208,6 +211,7 @@ def pytest_addoption(parser):
208
211
  constants.Environment.ALPHA,
209
212
  constants.Environment.BETA,
210
213
  constants.Environment.DEMO,
214
+ constants.Environment.GDPR,
211
215
  constants.Environment.MAIN,
212
216
  constants.Environment.TEST,
213
217
  constants.Environment.GOV,
@@ -624,6 +628,16 @@ def pytest_addoption(parser):
624
628
  (Can also be a comma-separated list of directories.)
625
629
  Default: None.""",
626
630
  )
631
+ parser.addoption(
632
+ "--disable_features",
633
+ "--disable-features",
634
+ action="store",
635
+ dest="disable_features",
636
+ default=None,
637
+ help="""Disable Chromium features from Chrome/Edge browsers.
638
+ Format: A comma-separated list of Chromium features.
639
+ Default: None.""",
640
+ )
627
641
  parser.addoption(
628
642
  "--binary_location",
629
643
  "--binary-location",
@@ -1477,6 +1491,7 @@ def pytest_configure(config):
1477
1491
  sb_config.firefox_pref = config.getoption("firefox_pref")
1478
1492
  sb_config.extension_zip = config.getoption("extension_zip")
1479
1493
  sb_config.extension_dir = config.getoption("extension_dir")
1494
+ sb_config.disable_features = config.getoption("disable_features")
1480
1495
  sb_config.binary_location = config.getoption("binary_location")
1481
1496
  sb_config.driver_version = config.getoption("driver_version")
1482
1497
  sb_config.page_load_strategy = config.getoption("page_load_strategy")
@@ -72,6 +72,7 @@ def SB(
72
72
  user_data_dir=None, # Set the Chrome user data directory to use.
73
73
  extension_zip=None, # Load a Chrome Extension .zip|.crx, comma-separated.
74
74
  extension_dir=None, # Load a Chrome Extension directory, comma-separated.
75
+ disable_features=None, # "F1,F2" (Disable Chrome features, ","-separated.)
75
76
  binary_location=None, # Set path of the Chromium browser binary to use.
76
77
  driver_version=None, # Set the chromedriver or uc_driver version to use.
77
78
  skip_js_waits=None, # Skip JS Waits (readyState=="complete" and Angular).
@@ -325,6 +326,30 @@ def SB(
325
326
  proxy_string = proxy_string[1:-1]
326
327
  elif proxy_string.startswith("'") and proxy_string.endswith("'"):
327
328
  proxy_string = proxy_string[1:-1]
329
+ c_a = chromium_arg
330
+ if c_a is None and "--chromium-arg" in arg_join:
331
+ if "--chromium-arg=" in arg_join:
332
+ c_a = arg_join.split("--chromium-arg=")[1].split(" ")[0]
333
+ elif "--chromium-arg " in arg_join:
334
+ c_a = arg_join.split("--chromium-arg ")[1].split(" ")[0]
335
+ if c_a:
336
+ if c_a.startswith('"') and c_a.endswith('"'):
337
+ c_a = c_a[1:-1]
338
+ elif c_a.startswith("'") and c_a.endswith("'"):
339
+ c_a = c_a[1:-1]
340
+ chromium_arg = c_a
341
+ d_f = disable_features
342
+ if d_f is None and "--disable-features" in arg_join:
343
+ if "--disable-features=" in arg_join:
344
+ d_f = arg_join.split("--disable-features=")[1].split(" ")[0]
345
+ elif "--disable-features " in arg_join:
346
+ d_f = arg_join.split("--disable-features ")[1].split(" ")[0]
347
+ if d_f:
348
+ if d_f.startswith('"') and d_f.endswith('"'):
349
+ d_f = d_f[1:-1]
350
+ elif c_a.startswith("'") and d_f.endswith("'"):
351
+ d_f = d_f[1:-1]
352
+ disable_features = d_f
328
353
  user_agent = agent
329
354
  recorder_mode = False
330
355
  if recorder_ext:
@@ -731,6 +756,7 @@ def SB(
731
756
  sb_config.chromium_arg = chromium_arg
732
757
  sb_config.firefox_arg = firefox_arg
733
758
  sb_config.firefox_pref = firefox_pref
759
+ sb_config.disable_features = disable_features
734
760
  sb_config.proxy_string = proxy_string
735
761
  sb_config.proxy_bypass_list = proxy_bypass_list
736
762
  sb_config.proxy_pac_url = proxy_pac_url
@@ -833,6 +859,7 @@ def SB(
833
859
  sb.chromium_arg = sb_config.chromium_arg
834
860
  sb.firefox_arg = sb_config.firefox_arg
835
861
  sb.firefox_pref = sb_config.firefox_pref
862
+ sb.disable_features = sb_config.disable_features
836
863
  sb.proxy_string = sb_config.proxy_string
837
864
  sb.proxy_bypass_list = sb_config.proxy_bypass_list
838
865
  sb.proxy_pac_url = sb_config.proxy_pac_url