seleniumbase 4.31.0__tar.gz → 4.31.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. {seleniumbase-4.31.0/seleniumbase.egg-info → seleniumbase-4.31.1}/PKG-INFO +4 -3
  2. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/README.md +3 -2
  3. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/handle_alert_test.py +2 -0
  4. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/__version__.py +1 -1
  5. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/behave/behave_sb.py +12 -2
  6. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/logo_helper.py +47 -0
  7. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/run.py +7 -4
  8. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/browser_launcher.py +41 -5
  9. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/sb_driver.py +11 -0
  10. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/base_case.py +17 -1
  11. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/page_utils.py +5 -2
  12. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/driver_manager.py +81 -70
  13. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/pytest_plugin.py +17 -2
  14. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/sb_manager.py +113 -100
  15. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/selenium_plugin.py +19 -2
  16. {seleniumbase-4.31.0 → seleniumbase-4.31.1/seleniumbase.egg-info}/PKG-INFO +4 -3
  17. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/.gitignore +0 -0
  18. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/LICENSE +0 -0
  19. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/MANIFEST.in +0 -0
  20. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/__init__.py +0 -0
  21. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/basic_test.py +0 -0
  22. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/behave_bdd/__init__.py +0 -0
  23. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/behave_bdd/features/__init__.py +0 -0
  24. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/behave_bdd/features/environment.py +0 -0
  25. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/behave_bdd/features/steps/__init__.py +0 -0
  26. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/behave_bdd/features/steps/calculator.py +0 -0
  27. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/behave_bdd/features/steps/fail_page.py +0 -0
  28. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/behave_bdd/features/steps/imported.py +0 -0
  29. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
  30. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/__init__.py +0 -0
  31. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/base_test_case.py +0 -0
  32. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/boilerplate_test.py +0 -0
  33. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/classic_obj_test.py +0 -0
  34. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/page_objects.py +0 -0
  35. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/samples/__init__.py +0 -0
  36. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
  37. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
  38. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/samples/google_objects.py +0 -0
  39. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/samples/google_test.py +0 -0
  40. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/samples/sb_swag_test.py +0 -0
  41. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/samples/swag_labs_test.py +0 -0
  42. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/samples/test_page_objects.py +0 -0
  43. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/boilerplates/sb_fixture_test.py +0 -0
  44. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/capabilities/mac_cap_file.py +0 -0
  45. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/capabilities/sample_cap_file_BS.py +0 -0
  46. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/capabilities/sample_cap_file_SL.py +0 -0
  47. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/capabilities/selenoid_cap_file.py +0 -0
  48. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/capabilities/win10_cap_file.py +0 -0
  49. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/chart_maker/chart_presentation.py +0 -0
  50. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/chart_maker/my_chart.py +0 -0
  51. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/chart_maker/pie_charts.py +0 -0
  52. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/chart_maker/test_area_chart.py +0 -0
  53. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/chart_maker/test_display_chart.py +0 -0
  54. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/chart_maker/test_line_chart.py +0 -0
  55. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/chart_maker/test_multi_series.py +0 -0
  56. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/chart_maker/test_save_chart.py +0 -0
  57. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/coffee_cart_tests.py +0 -0
  58. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/custom_settings.py +0 -0
  59. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/desktop_apps/recorder.py +0 -0
  60. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/dialog_boxes/dialog_box_tour.py +0 -0
  61. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/edge_test.py +0 -0
  62. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/github_test.py +0 -0
  63. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/gui_test_runner.py +0 -0
  64. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/hack_the_planet.py +0 -0
  65. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/iframe_tests.py +0 -0
  66. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/locale_code_test.py +0 -0
  67. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/master_qa/__init__.py +0 -0
  68. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/master_qa/basic_masterqa_test_0.py +0 -0
  69. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/master_qa/masterqa_test_1.py +0 -0
  70. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/__init__.py +0 -0
  71. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/protractor/__init__.py +0 -0
  72. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/protractor/example_test.py +0 -0
  73. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/protractor/input_test.py +0 -0
  74. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/protractor/mat_paginator_test.py +0 -0
  75. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/raw_selenium/__init__.py +0 -0
  76. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
  77. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
  78. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/raw_selenium/messy_raw.py +0 -0
  79. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/raw_selenium/refined_raw.py +0 -0
  80. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/migration/raw_selenium/simple_sbase.py +0 -0
  81. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/my_first_test.py +0 -0
  82. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/nth_child_test.py +0 -0
  83. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/offline_examples/__init__.py +0 -0
  84. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/offline_examples/load_html_test.py +0 -0
  85. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/offline_examples/test_demo_page.py +0 -0
  86. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/offline_examples/test_extended_driver.py +0 -0
  87. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/offline_examples/test_handle_alerts.py +0 -0
  88. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/offline_examples/test_request_fixture.py +0 -0
  89. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/offline_examples/test_user_agent.py +0 -0
  90. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/old_wordle_script.py +0 -0
  91. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/parameterized_test.py +0 -0
  92. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/performance_test.py +0 -0
  93. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/presenter/core_presentation.py +0 -0
  94. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/presenter/edge_presentation.py +0 -0
  95. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/presenter/fundamentals.py +0 -0
  96. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/presenter/multi_uc.py +0 -0
  97. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/presenter/my_presentation.py +0 -0
  98. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/presenter/py_virtual_envs.py +0 -0
  99. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/presenter/uc_presentation.py +0 -0
  100. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/presenter/uc_presentation_3.py +0 -0
  101. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/proxy_test.py +0 -0
  102. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/rate_limiting_test.py +0 -0
  103. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_ahrefs.py +0 -0
  104. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_antibot_login.py +0 -0
  105. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_bing_captcha.py +0 -0
  106. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_block.py +0 -0
  107. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_brotector_captcha.py +0 -0
  108. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_call.py +0 -0
  109. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_cdp_logging.py +0 -0
  110. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_cf.py +0 -0
  111. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_cookies.py +0 -0
  112. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_detection.py +0 -0
  113. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_driver_context.py +0 -0
  114. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_driver_manager.py +0 -0
  115. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_file_call.py +0 -0
  116. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_form_turnstile.py +0 -0
  117. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_games.py +0 -0
  118. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_gui_click.py +0 -0
  119. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_hobbit.py +0 -0
  120. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_login_context.py +0 -0
  121. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_login_driver.py +0 -0
  122. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_login_sb.py +0 -0
  123. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_main_call.py +0 -0
  124. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_mobile.py +0 -0
  125. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_multi_drivers.py +0 -0
  126. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_nopecha.py +0 -0
  127. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_order_tickets.py +0 -0
  128. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_parameter_script.py +0 -0
  129. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_performance_logs.py +0 -0
  130. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_pixelscan.py +0 -0
  131. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_pyautogui.py +0 -0
  132. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_recaptcha.py +0 -0
  133. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_robot.py +0 -0
  134. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_sb.py +0 -0
  135. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_test_scripts.py +0 -0
  136. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_turnstile.py +0 -0
  137. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/raw_uc_mode.py +0 -0
  138. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/sb_fixture_tests.py +0 -0
  139. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/shadow_root_test.py +0 -0
  140. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/swag_labs_user_tests.py +0 -0
  141. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_3d_apis.py +0 -0
  142. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_apple_site.py +0 -0
  143. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_assert_elements.py +0 -0
  144. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_calculator.py +0 -0
  145. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_canvas.py +0 -0
  146. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_cdp_ad_blocking.py +0 -0
  147. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_checkboxes.py +0 -0
  148. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_chinese_pdf.py +0 -0
  149. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_chromedriver.py +0 -0
  150. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_coffee_cart.py +0 -0
  151. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_console_logging.py +0 -0
  152. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_contains_selector.py +0 -0
  153. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_cycle_elements.py +0 -0
  154. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_decryption.py +0 -0
  155. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_deferred_asserts.py +0 -0
  156. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_demo_site.py +0 -0
  157. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_detect_404s.py +0 -0
  158. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_docs_site.py +0 -0
  159. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_double_click.py +0 -0
  160. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_download_files.py +0 -0
  161. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_download_images.py +0 -0
  162. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_drag_and_drop.py +0 -0
  163. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_error_page.py +0 -0
  164. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_event_firing.py +0 -0
  165. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_fail.py +0 -0
  166. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_geolocation.py +0 -0
  167. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_get_coffee.py +0 -0
  168. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_get_locale_code.py +0 -0
  169. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_get_pdf_text.py +0 -0
  170. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_get_user_agent.py +0 -0
  171. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_hack_search.py +0 -0
  172. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_highlight_elements.py +0 -0
  173. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_image_saving.py +0 -0
  174. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_inspect_html.py +0 -0
  175. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_login.py +0 -0
  176. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_markers.py +0 -0
  177. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_mfa_login.py +0 -0
  178. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_multiple_drivers.py +0 -0
  179. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_null.py +0 -0
  180. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_override_driver.py +0 -0
  181. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_override_sb_fixture.py +0 -0
  182. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_parse_soup.py +0 -0
  183. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_pdf_asserts.py +0 -0
  184. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_pytest_parametrize.py +0 -0
  185. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_repeat_tests.py +0 -0
  186. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_request_sb_fixture.py +0 -0
  187. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_save_screenshots.py +0 -0
  188. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_sb_fixture.py +0 -0
  189. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_scrape_bing.py +0 -0
  190. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_select_options.py +0 -0
  191. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_shadow_dom.py +0 -0
  192. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_show_file_choosers.py +0 -0
  193. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_simple_login.py +0 -0
  194. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_skype_site.py +0 -0
  195. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_suite.py +0 -0
  196. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_swag_labs.py +0 -0
  197. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_tinymce.py +0 -0
  198. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_todomvc.py +0 -0
  199. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_url_asserts.py +0 -0
  200. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_usefixtures.py +0 -0
  201. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_verify_chromedriver.py +0 -0
  202. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_window_switching.py +0 -0
  203. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_xfail.py +0 -0
  204. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/test_xkcd.py +0 -0
  205. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/time_limit_test.py +0 -0
  206. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/bootstrap_google_tour.py +0 -0
  207. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
  208. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/driverjs_maps_tour.py +0 -0
  209. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/google_tour.py +0 -0
  210. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/hopscotch_google_tour.py +0 -0
  211. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/introjs_google_tour.py +0 -0
  212. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/maps_introjs_tour.py +0 -0
  213. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/octocat_tour.py +0 -0
  214. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/recordings/__init__.py +0 -0
  215. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/recordings/shepherd_google_tour_rec.py +0 -0
  216. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/shepherd_google_tour.py +0 -0
  217. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/tour_examples/xkcd_tour.py +0 -0
  218. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/chinese_test_1.py +0 -0
  219. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/dutch_test_1.py +0 -0
  220. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/english_test_1.py +0 -0
  221. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/french_test_1.py +0 -0
  222. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/italian_test_1.py +0 -0
  223. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/japanese_test_1.py +0 -0
  224. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/korean_test_1.py +0 -0
  225. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/portuguese_test_1.py +0 -0
  226. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/russian_test_1.py +0 -0
  227. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/translations/spanish_test_1.py +0 -0
  228. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/uc_cdp_events.py +0 -0
  229. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/unit_tests/verify_framework.py +0 -0
  230. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/upgrade_chromedriver.py +0 -0
  231. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/upload_file_test.py +0 -0
  232. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/user_agent_test.py +0 -0
  233. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/verify_undetected.py +0 -0
  234. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/visual_testing/__init__.py +0 -0
  235. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/visual_testing/layout_test.py +0 -0
  236. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/visual_testing/python_home_test.py +0 -0
  237. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/visual_testing/test_layout_fail.py +0 -0
  238. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/visual_testing/xkcd_visual_test.py +0 -0
  239. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/wordle_test.py +0 -0
  240. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/xpath_test.py +0 -0
  241. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/examples/youtube_search_test.py +0 -0
  242. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/install.sh +0 -0
  243. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/__init__.py +0 -0
  244. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/behave/features/__init__.py +0 -0
  245. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/behave/features/environment.py +0 -0
  246. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/behave/features/steps/__init__.py +0 -0
  247. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/behave/features/steps/calculator.py +0 -0
  248. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/behave/features/steps/fail_page.py +0 -0
  249. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/behave/features/steps/real_world.py +0 -0
  250. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/behave/features/steps/swag_labs.py +0 -0
  251. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/brython/index.py +0 -0
  252. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/node_js/__init__.py +0 -0
  253. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/node_js/my_first_test.py +0 -0
  254. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/integrations/node_js/test_demo_site.py +0 -0
  255. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/mkdocs_build/prepare.py +0 -0
  256. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/pyproject.toml +0 -0
  257. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/pytest.ini +0 -0
  258. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/requirements.txt +0 -0
  259. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/sbase/__init__.py +0 -0
  260. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/sbase/__main__.py +0 -0
  261. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/sbase/steps.py +0 -0
  262. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/__init__.py +0 -0
  263. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/__main__.py +0 -0
  264. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/behave/__init__.py +0 -0
  265. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/behave/behave_helper.py +0 -0
  266. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/behave/steps.py +0 -0
  267. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/common/__init__.py +0 -0
  268. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/common/decorators.py +0 -0
  269. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/common/encryption.py +0 -0
  270. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/common/exceptions.py +0 -0
  271. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/common/obfuscate.py +0 -0
  272. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/common/unobfuscate.py +0 -0
  273. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/config/__init__.py +0 -0
  274. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/config/ad_block_list.py +0 -0
  275. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/config/proxy_list.py +0 -0
  276. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/config/settings.py +0 -0
  277. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/__init__.py +0 -0
  278. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/rich_helper.py +0 -0
  279. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  280. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  281. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_commander.py +0 -0
  282. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_install.py +0 -0
  283. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  284. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  285. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  286. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  287. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  288. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  289. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_print.py +0 -0
  290. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  291. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/__init__.py +0 -0
  292. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/application_manager.py +0 -0
  293. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/capabilities_parser.py +0 -0
  294. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/colored_traceback.py +0 -0
  295. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/create_db_tables.sql +0 -0
  296. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/detect_b_ver.py +0 -0
  297. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/download_helper.py +0 -0
  298. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/encoded_images.py +0 -0
  299. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/jqc_helper.py +0 -0
  300. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/log_helper.py +0 -0
  301. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/mysql.py +0 -0
  302. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/proxy_helper.py +0 -0
  303. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/recorder_helper.py +0 -0
  304. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/report_helper.py +0 -0
  305. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/s3_manager.py +0 -0
  306. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/session_helper.py +0 -0
  307. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/settings_parser.py +0 -0
  308. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/style_sheet.py +0 -0
  309. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/testcase_manager.py +0 -0
  310. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/tour_helper.py +0 -0
  311. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/core/visual_helper.py +0 -0
  312. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/drivers/__init__.py +0 -0
  313. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/extensions/__init__.py +0 -0
  314. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/extensions/ad_block.zip +0 -0
  315. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/extensions/disable_csp.zip +0 -0
  316. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/extensions/recorder.zip +0 -0
  317. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/extensions/sbase_ext.zip +0 -0
  318. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/__init__.py +0 -0
  319. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/constants.py +0 -0
  320. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  321. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/errors.py +0 -0
  322. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/js_utils.py +0 -0
  323. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/page_actions.py +0 -0
  324. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/shared_utils.py +0 -0
  325. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/unittest_helper.py +0 -0
  326. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/words.py +0 -0
  327. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  328. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/js_code/__init__.py +0 -0
  329. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/js_code/active_css_js.py +0 -0
  330. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/js_code/live_js.py +0 -0
  331. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/js_code/recorder_js.py +0 -0
  332. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/masterqa/__init__.py +0 -0
  333. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/masterqa/master_qa.py +0 -0
  334. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/__init__.py +0 -0
  335. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/base_plugin.py +0 -0
  336. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/basic_test_info.py +0 -0
  337. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  338. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/page_source.py +0 -0
  339. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  340. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/plugins/screen_shots.py +0 -0
  341. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/resources/__init__.py +0 -0
  342. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/__init__.py +0 -0
  343. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/chinese.py +0 -0
  344. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/dutch.py +0 -0
  345. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/french.py +0 -0
  346. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/italian.py +0 -0
  347. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/japanese.py +0 -0
  348. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/korean.py +0 -0
  349. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/master_dict.py +0 -0
  350. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/portuguese.py +0 -0
  351. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/russian.py +0 -0
  352. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/spanish.py +0 -0
  353. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/translate/translator.py +0 -0
  354. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/undetected/__init__.py +0 -0
  355. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/undetected/cdp.py +0 -0
  356. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/undetected/dprocess.py +0 -0
  357. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/undetected/options.py +0 -0
  358. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/undetected/patcher.py +0 -0
  359. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/undetected/reactor.py +0 -0
  360. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/undetected/webelement.py +0 -0
  361. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/__init__.py +0 -0
  362. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  363. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  364. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  365. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  366. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  367. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  368. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  369. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  370. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  371. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  372. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  373. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  374. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  375. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase.egg-info/SOURCES.txt +0 -0
  376. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase.egg-info/dependency_links.txt +0 -0
  377. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase.egg-info/entry_points.txt +0 -0
  378. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase.egg-info/requires.txt +0 -0
  379. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/seleniumbase.egg-info/top_level.txt +0 -0
  380. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/setup.cfg +0 -0
  381. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/setup.py +0 -0
  382. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/site/prepare.py +0 -0
  383. {seleniumbase-4.31.0 → seleniumbase-4.31.1}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.31.0
3
+ Version: 4.31.1
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
@@ -821,8 +821,9 @@ pytest test_coffee_cart.py --trace
821
821
  --sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.)
822
822
  --wfa # (Wait for AngularJS to be done loading after specific web actions.)
823
823
  --pls=PLS # (Set pageLoadStrategy on Chrome: "normal", "eager", or "none".)
824
- --headless # (Run tests in headless mode. The default arg on Linux OS.)
825
- --headless2 # (Use the new headless mode, which supports extensions.)
824
+ --headless # (The default headless mode. Linux uses this mode by default.)
825
+ --headless1 # (Use Chrome's old headless mode. Fast, but has limitations.)
826
+ --headless2 # (Use Chrome's new headless mode, which supports extensions.)
826
827
  --headed # (Run tests in headed/GUI mode on Linux OS, where not default.)
827
828
  --xvfb # (Run tests using the Xvfb virtual display server on Linux OS.)
828
829
  --xvfb-metrics=STRING # (Set Xvfb display size on Linux: "Width,Height".)
@@ -653,8 +653,9 @@ pytest test_coffee_cart.py --trace
653
653
  --sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.)
654
654
  --wfa # (Wait for AngularJS to be done loading after specific web actions.)
655
655
  --pls=PLS # (Set pageLoadStrategy on Chrome: "normal", "eager", or "none".)
656
- --headless # (Run tests in headless mode. The default arg on Linux OS.)
657
- --headless2 # (Use the new headless mode, which supports extensions.)
656
+ --headless # (The default headless mode. Linux uses this mode by default.)
657
+ --headless1 # (Use Chrome's old headless mode. Fast, but has limitations.)
658
+ --headless2 # (Use Chrome's new headless mode, which supports extensions.)
658
659
  --headed # (Run tests in headed/GUI mode on Linux OS, where not default.)
659
660
  --xvfb # (Run tests using the Xvfb virtual display server on Linux OS.)
660
661
  --xvfb-metrics=STRING # (Set Xvfb display size on Linux: "Width,Height".)
@@ -7,6 +7,7 @@ class HandleAlertTests(BaseCase):
7
7
  self.open("about:blank")
8
8
  self.execute_script('window.alert("ALERT!!!");')
9
9
  self.sleep(1) # Not needed (Lets you see the alert pop up)
10
+ self.assert_true(self.is_alert_present())
10
11
  self.accept_alert()
11
12
  self.sleep(1) # Not needed (Lets you see the alert go away)
12
13
  self.execute_script('window.prompt("My Prompt","defaultText");')
@@ -15,6 +16,7 @@ class HandleAlertTests(BaseCase):
15
16
  self.assert_equal(alert.text, "My Prompt") # Not input field
16
17
  self.dismiss_alert()
17
18
  self.sleep(1) # Not needed (Lets you see the alert go away)
19
+ self.assert_false(self.is_alert_present())
18
20
  if self.browser == "safari" and self._reuse_session:
19
21
  # Alerts can freeze Safari if reusing the browser session
20
22
  self.driver.quit()
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.31.0"
2
+ __version__ = "4.31.1"
@@ -44,8 +44,9 @@ behave -D agent="User Agent String" -D demo
44
44
  -D sjw (Skip JS Waits for readyState to be "complete" or Angular to load.)
45
45
  -D wfa (Wait for AngularJS to be done loading after specific web actions.)
46
46
  -D pls=PLS (Set pageLoadStrategy on Chrome: "normal", "eager", or "none".)
47
- -D headless (Run tests in headless mode. The default arg on Linux OS.)
48
- -D headless2 (Use the new headless mode, which supports extensions.)
47
+ -D headless (The default headless mode. Linux uses this mode by default.)
48
+ -D headless1 (Use Chrome's old headless mode. Fast, but has limitations.)
49
+ -D headless2 (Use Chrome's new headless mode, which supports extensions.)
49
50
  -D headed (Run tests in headed/GUI mode on Linux OS, where not default.)
50
51
  -D xvfb (Run tests using the Xvfb virtual display server on Linux OS.)
51
52
  -D xvfb-metrics=STRING (Set Xvfb display size on Linux: "Width,Height".)
@@ -144,6 +145,7 @@ def get_configured_sb(context):
144
145
  sb.browser = "chrome"
145
146
  sb.is_behave = True
146
147
  sb.headless = False
148
+ sb.headless1 = False
147
149
  sb.headless2 = False
148
150
  sb.headless_active = False
149
151
  sb.headed = False
@@ -296,6 +298,11 @@ def get_configured_sb(context):
296
298
  sb.headless = True
297
299
  continue
298
300
  # Handle: -D headless2
301
+ if low_key == "headless1":
302
+ sb.headless1 = True
303
+ sb.headless = True
304
+ continue
305
+ # Handle: -D headless2
299
306
  if low_key == "headless2":
300
307
  sb.headless2 = True
301
308
  continue
@@ -864,6 +871,7 @@ def get_configured_sb(context):
864
871
  # Recorder Mode can still optimize scripts in "-D headless2" mode.
865
872
  if sb.recorder_ext and sb.headless:
866
873
  sb.headless = False
874
+ sb.headless1 = False
867
875
  sb.headless2 = True
868
876
  if sb.headless2 and sb.browser == "firefox":
869
877
  sb.headless2 = False # Only for Chromium browsers
@@ -900,11 +908,13 @@ def get_configured_sb(context):
900
908
  # Recorder Mode can still optimize scripts in --headless2 mode.
901
909
  if sb.recorder_mode and sb.headless:
902
910
  sb.headless = False
911
+ sb.headless1 = False
903
912
  sb.headless2 = True
904
913
  if not sb.headless and not sb.headless2:
905
914
  sb.headed = True
906
915
  if sb.browser == "safari" and sb.headless:
907
916
  sb.headless = False # Safari doesn't support headless mode
917
+ sb.headless1 = False
908
918
  if sb.save_screenshot_after_test and sb.no_screenshot_after_test:
909
919
  sb.save_screenshot_after_test = False # "no_screenshot" has priority
910
920
  if sb.servername != "localhost":
@@ -3,7 +3,9 @@
3
3
  http://www.patorjk.com/software/taag/#p=display&f=Slant&t=SeleniumBase """
4
4
 
5
5
  import colorama
6
+ import os
6
7
  import sys
8
+ from contextlib import suppress
7
9
 
8
10
  r"""
9
11
  ______ __ _ ____
@@ -66,4 +68,49 @@ def get_seleniumbase_logo():
66
68
  sb += " "
67
69
  sb += cr
68
70
  sb += cr
71
+ with suppress(Exception):
72
+ terminal_width = os.get_terminal_size().columns
73
+ if isinstance(terminal_width, int) and terminal_width >= 66:
74
+ return sb
75
+
76
+ # If the logo is wider than the screen width, use a smaller one:
77
+ r"""
78
+ ___ _ _ ___
79
+ / __| ___| |___ _ _ (_)_ _ _ __ | _ ) __ _ ______
80
+ \__ \/ -_) / -_) ' \| | \| | ' \ | _ \/ _` (_-< -_)
81
+ |___/\___|_\___|_||_|_|\_,_|_|_|_\|___/\__,_/__|___|
82
+ """
83
+ sb = " "
84
+ sb += cr
85
+ sb += "\n"
86
+ sb += c1
87
+ sb += " ___ _ _ "
88
+ sb += c2
89
+ sb += " ___ "
90
+ sb += cr
91
+ sb += "\n"
92
+ sb += c1
93
+ sb += "/ __| ___| |___ _ _ (_)_ _ _ __ "
94
+ sb += c2
95
+ sb += "| _ ) __ _ ______ "
96
+ sb += cr
97
+ sb += "\n"
98
+ sb += c1
99
+ sb += "\\__ \\/ -_) / -_) ' \\| | \\| | ' \\ "
100
+ sb += c2
101
+ sb += "| _ \\/ _` (_-< -_)"
102
+ sb += cr
103
+ sb += "\n"
104
+ sb += c1
105
+ sb += "|___/\\___|_\\___|_||_|_|\\_,_|_|_|_\\"
106
+ sb += c2
107
+ sb += "|___/\\__,_/__|___|"
108
+ sb += cr
109
+ sb += "\n"
110
+ sb += c3
111
+ sb += " "
112
+ sb += c4
113
+ sb += " "
114
+ sb += cr
115
+ sb += cr
69
116
  return sb
@@ -54,8 +54,8 @@ else:
54
54
  def show_usage():
55
55
  show_basic_usage()
56
56
  sc = ""
57
- sc += ' Type "sbase help [COMMAND]" for specific command info.\n'
58
- sc += ' For info on all commands, type: "seleniumbase --help".\n'
57
+ sc += ' Type "sbase help [COMMAND]" for specific info.\n'
58
+ sc += ' For all commands, type: "seleniumbase --help".\n'
59
59
  sc += ' Use "pytest" for running tests.\n'
60
60
  if "linux" not in sys.platform:
61
61
  c1 = colorama.Fore.BLUE + colorama.Back.LIGHTCYAN_EX
@@ -76,12 +76,15 @@ def show_basic_usage():
76
76
 
77
77
  seleniumbase_logo = logo_helper.get_seleniumbase_logo()
78
78
  print(seleniumbase_logo)
79
+ time.sleep(0.044)
79
80
  print("")
80
- time.sleep(0.28) # Enough time to see the logo
81
+ time.sleep(0.033)
81
82
  show_package_location()
83
+ time.sleep(0.032)
82
84
  show_version_info()
85
+ time.sleep(0.031)
83
86
  print("")
84
- time.sleep(0.62) # Enough time to see the version
87
+ time.sleep(0.68) # Enough time to see the logo & version
85
88
  sc = ""
86
89
  sc += ' * USAGE: "seleniumbase [COMMAND] [PARAMETERS]"\n'
87
90
  sc += ' * OR: "sbase [COMMAND] [PARAMETERS]"\n'
@@ -203,6 +203,8 @@ def extend_driver(driver):
203
203
  driver.is_exact_text_visible = DM.is_exact_text_visible
204
204
  driver.is_attribute_present = DM.is_attribute_present
205
205
  driver.is_non_empty_text_visible = DM.is_non_empty_text_visible
206
+ driver.is_valid_url = DM.is_valid_url
207
+ driver.is_alert_present = DM.is_alert_present
206
208
  driver.is_online = DM.is_online
207
209
  driver.js_click = DM.js_click
208
210
  driver.get_text = DM.get_text
@@ -1553,6 +1555,7 @@ def _set_chrome_options(
1553
1555
  log_cdp_events,
1554
1556
  no_sandbox,
1555
1557
  disable_gpu,
1558
+ headless1,
1556
1559
  headless2,
1557
1560
  incognito,
1558
1561
  guest_mode,
@@ -1771,7 +1774,10 @@ def _set_chrome_options(
1771
1774
  pass # Processed After Version Check
1772
1775
  elif headless:
1773
1776
  if not undetectable:
1774
- chrome_options.add_argument("--headless")
1777
+ if headless1:
1778
+ chrome_options.add_argument("--headless=old")
1779
+ else:
1780
+ chrome_options.add_argument("--headless")
1775
1781
  if undetectable and servername and servername != "localhost":
1776
1782
  # The Grid Node will need Chrome 109 or newer
1777
1783
  chrome_options.add_argument("--headless=new")
@@ -2193,6 +2199,7 @@ def get_driver(
2193
2199
  log_cdp_events=False,
2194
2200
  no_sandbox=False,
2195
2201
  disable_gpu=False,
2202
+ headless1=False,
2196
2203
  headless2=False,
2197
2204
  incognito=False,
2198
2205
  guest_mode=False,
@@ -2406,6 +2413,7 @@ def get_driver(
2406
2413
  log_cdp_events,
2407
2414
  no_sandbox,
2408
2415
  disable_gpu,
2416
+ headless1,
2409
2417
  headless2,
2410
2418
  incognito,
2411
2419
  guest_mode,
@@ -2462,6 +2470,7 @@ def get_driver(
2462
2470
  log_cdp_events,
2463
2471
  no_sandbox,
2464
2472
  disable_gpu,
2473
+ headless1,
2465
2474
  headless2,
2466
2475
  incognito,
2467
2476
  guest_mode,
@@ -2522,6 +2531,7 @@ def get_remote_driver(
2522
2531
  log_cdp_events,
2523
2532
  no_sandbox,
2524
2533
  disable_gpu,
2534
+ headless1,
2525
2535
  headless2,
2526
2536
  incognito,
2527
2537
  guest_mode,
@@ -2657,6 +2667,7 @@ def get_remote_driver(
2657
2667
  log_cdp_events,
2658
2668
  no_sandbox,
2659
2669
  disable_gpu,
2670
+ headless1,
2660
2671
  headless2,
2661
2672
  incognito,
2662
2673
  guest_mode,
@@ -2829,6 +2840,7 @@ def get_remote_driver(
2829
2840
  log_cdp_events,
2830
2841
  no_sandbox,
2831
2842
  disable_gpu,
2843
+ headless1,
2832
2844
  headless2,
2833
2845
  incognito,
2834
2846
  guest_mode,
@@ -2948,6 +2960,7 @@ def get_local_driver(
2948
2960
  log_cdp_events,
2949
2961
  no_sandbox,
2950
2962
  disable_gpu,
2963
+ headless1,
2951
2964
  headless2,
2952
2965
  incognito,
2953
2966
  guest_mode,
@@ -3425,8 +3438,14 @@ def get_local_driver(
3425
3438
  else:
3426
3439
  pass # Will need Xvfb on Linux
3427
3440
  elif headless:
3428
- if "--headless" not in edge_options.arguments:
3429
- edge_options.add_argument("--headless")
3441
+ if (
3442
+ "--headless" not in edge_options.arguments
3443
+ and "--headless=old" not in edge_options.arguments
3444
+ ):
3445
+ if headless1:
3446
+ edge_options.add_argument("--headless=old")
3447
+ else:
3448
+ edge_options.add_argument("--headless")
3430
3449
  if mobile_emulator and not is_using_uc(undetectable, browser_name):
3431
3450
  emulator_settings = {}
3432
3451
  device_metrics = {}
@@ -3788,6 +3807,7 @@ def get_local_driver(
3788
3807
  log_cdp_events,
3789
3808
  no_sandbox,
3790
3809
  disable_gpu,
3810
+ headless1,
3791
3811
  headless2,
3792
3812
  incognito,
3793
3813
  guest_mode,
@@ -3960,8 +3980,14 @@ def get_local_driver(
3960
3980
  except Exception:
3961
3981
  pass # Will need Xvfb on Linux
3962
3982
  elif headless:
3963
- if "--headless" not in chrome_options.arguments:
3964
- chrome_options.add_argument("--headless")
3983
+ if (
3984
+ "--headless" not in chrome_options.arguments
3985
+ and "--headless=old" not in chrome_options.arguments
3986
+ ):
3987
+ if headless1:
3988
+ chrome_options.add_argument("--headless=old")
3989
+ else:
3990
+ chrome_options.add_argument("--headless")
3965
3991
  if LOCAL_CHROMEDRIVER and os.path.exists(LOCAL_CHROMEDRIVER):
3966
3992
  try:
3967
3993
  make_driver_executable_if_not(LOCAL_CHROMEDRIVER)
@@ -4227,6 +4253,12 @@ def get_local_driver(
4227
4253
  chrome_options.arguments.remove(
4228
4254
  "--headless"
4229
4255
  )
4256
+ if "--headless=old" in (
4257
+ chrome_options.arguments
4258
+ ):
4259
+ chrome_options.arguments.remove(
4260
+ "--headless=old"
4261
+ )
4230
4262
  uc_chrome_version = None
4231
4263
  if (
4232
4264
  use_version.isnumeric()
@@ -4300,6 +4332,7 @@ def get_local_driver(
4300
4332
  False, # log_cdp_events
4301
4333
  no_sandbox,
4302
4334
  disable_gpu,
4335
+ False, # headless1
4303
4336
  False, # headless2
4304
4337
  incognito,
4305
4338
  guest_mode,
@@ -4541,6 +4574,7 @@ def get_local_driver(
4541
4574
  False, # log_cdp_events
4542
4575
  no_sandbox,
4543
4576
  disable_gpu,
4577
+ False, # headless1
4544
4578
  False, # headless2
4545
4579
  incognito,
4546
4580
  guest_mode,
@@ -4792,6 +4826,8 @@ def get_local_driver(
4792
4826
  )
4793
4827
  if "--headless" in chrome_options.arguments:
4794
4828
  chrome_options.arguments.remove("--headless")
4829
+ if "--headless=old" in chrome_options.arguments:
4830
+ chrome_options.arguments.remove("--headless=old")
4795
4831
  service = ChromeService(
4796
4832
  log_output=os.devnull,
4797
4833
  service_args=["--disable-build-check"]
@@ -161,6 +161,17 @@ class DriverMethods():
161
161
  self.driver, *args, **kwargs
162
162
  )
163
163
 
164
+ def is_valid_url(self, url):
165
+ """Return True if the url is a valid url."""
166
+ return page_utils.is_valid_url(url)
167
+
168
+ def is_alert_present(self):
169
+ try:
170
+ self.driver.switch_to.alert
171
+ return True
172
+ except Exception:
173
+ return False
174
+
164
175
  def is_online(self):
165
176
  return self.driver.execute_script("return navigator.onLine;")
166
177
 
@@ -3771,6 +3771,7 @@ class BaseCase(unittest.TestCase):
3771
3771
  log_cdp_events=None,
3772
3772
  no_sandbox=None,
3773
3773
  disable_gpu=None,
3774
+ headless1=None,
3774
3775
  headless2=None,
3775
3776
  incognito=None,
3776
3777
  guest_mode=None,
@@ -3830,6 +3831,7 @@ class BaseCase(unittest.TestCase):
3830
3831
  log_cdp_events - capture {"performance": "ALL", "browser": "ALL"})
3831
3832
  no_sandbox - the option to enable the "No-Sandbox" feature (Chrome)
3832
3833
  disable_gpu - the option to enable Chrome's "Disable GPU" feature
3834
+ headless1 - the option to use the older headless mode (Chromium)
3833
3835
  headless2 - the option to use the newer headless mode (Chromium)
3834
3836
  incognito - the option to enable Chrome's Incognito mode (Chrome)
3835
3837
  guest_mode - the option to enable Chrome's Guest mode (Chrome)
@@ -3938,6 +3940,8 @@ class BaseCase(unittest.TestCase):
3938
3940
  no_sandbox = self.no_sandbox
3939
3941
  if disable_gpu is None:
3940
3942
  disable_gpu = self.disable_gpu
3943
+ if headless1 is None:
3944
+ headless1 = self.headless1
3941
3945
  if headless2 is None:
3942
3946
  headless2 = self.headless2
3943
3947
  if incognito is None:
@@ -4036,6 +4040,7 @@ class BaseCase(unittest.TestCase):
4036
4040
  log_cdp_events=log_cdp_events,
4037
4041
  no_sandbox=no_sandbox,
4038
4042
  disable_gpu=disable_gpu,
4043
+ headless1=headless1,
4039
4044
  headless2=headless2,
4040
4045
  incognito=incognito,
4041
4046
  guest_mode=guest_mode,
@@ -7808,6 +7813,13 @@ class BaseCase(unittest.TestCase):
7808
7813
  """Return True if the url is a valid url."""
7809
7814
  return page_utils.is_valid_url(url)
7810
7815
 
7816
+ def is_alert_present(self):
7817
+ try:
7818
+ self.driver.switch_to.alert
7819
+ return True
7820
+ except Exception:
7821
+ return False
7822
+
7811
7823
  def is_online(self):
7812
7824
  """Return True if connected to the Internet."""
7813
7825
  return self.execute_script("return navigator.onLine;")
@@ -14324,6 +14336,10 @@ class BaseCase(unittest.TestCase):
14324
14336
  self.env = self.environment # Add a shortened version
14325
14337
  self.with_selenium = sb_config.with_selenium # Should be True
14326
14338
  self.headless = sb_config.headless
14339
+ self.headless1 = sb_config.headless1
14340
+ if self.headless1:
14341
+ self.headless = True
14342
+ self.headless2 = sb_config.headless2
14327
14343
  self.headless_active = False
14328
14344
  sb_config.headless_active = False
14329
14345
  self.headed = sb_config.headed
@@ -14392,7 +14408,6 @@ class BaseCase(unittest.TestCase):
14392
14408
  self.log_cdp_events = sb_config.log_cdp_events
14393
14409
  self.no_sandbox = sb_config.no_sandbox
14394
14410
  self.disable_gpu = sb_config.disable_gpu
14395
- self.headless2 = sb_config.headless2
14396
14411
  self.incognito = sb_config.incognito
14397
14412
  self.guest_mode = sb_config.guest_mode
14398
14413
  self.dark_mode = sb_config.dark_mode
@@ -14768,6 +14783,7 @@ class BaseCase(unittest.TestCase):
14768
14783
  log_cdp_events=self.log_cdp_events,
14769
14784
  no_sandbox=self.no_sandbox,
14770
14785
  disable_gpu=self.disable_gpu,
14786
+ headless1=self.headless1,
14771
14787
  headless2=self.headless2,
14772
14788
  incognito=self.incognito,
14773
14789
  guest_mode=self.guest_mode,
@@ -163,12 +163,15 @@ def is_valid_url(url):
163
163
  r"(?:/?|[/?]\S+)$",
164
164
  re.IGNORECASE,
165
165
  )
166
- return (
166
+ if (
167
167
  regex.match(url)
168
168
  or url.startswith((
169
169
  "about:", "blob:", "chrome:", "data:", "edge:", "file:"
170
170
  ))
171
- )
171
+ ):
172
+ return True
173
+ else:
174
+ return False
172
175
 
173
176
 
174
177
  def _get_unique_links(page_url, soup):