seleniumbase 4.25.1__tar.gz → 4.25.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/PKG-INFO +31 -26
  2. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/README.md +25 -21
  3. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/requirements.txt +1 -1
  4. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/requirements.txt +5 -4
  5. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/__version__.py +1 -1
  6. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/base_case.py +17 -0
  7. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/webelement.py +4 -1
  8. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/PKG-INFO +31 -26
  9. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/requires.txt +5 -4
  10. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/setup.py +5 -4
  11. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/Workflows.md +0 -0
  12. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/pages.yml +0 -0
  13. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/python-nightly-mac.yml +0 -0
  14. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/python-nightly-ubuntu.yml +0 -0
  15. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/python-nightly-windows.yml +0 -0
  16. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/python-package.yml +0 -0
  17. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.gitignore +0 -0
  18. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/CHANGELOG.md +0 -0
  19. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/CNAME +0 -0
  20. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/CODE_OF_CONDUCT.md +0 -0
  21. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/CONTRIBUTING.md +0 -0
  22. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/Dockerfile +0 -0
  23. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/LICENSE +0 -0
  24. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/MANIFEST.in +0 -0
  25. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/SECURITY.md +0 -0
  26. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/_config.yml +0 -0
  27. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/azure-pipelines.yml +0 -0
  28. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/ReadMe.md +0 -0
  29. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/__init__.py +0 -0
  30. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/basic_test.py +0 -0
  31. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/ReadMe.md +0 -0
  32. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/__init__.py +0 -0
  33. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/behave.ini +0 -0
  34. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/__init__.py +0 -0
  35. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/behave.ini +0 -0
  36. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/calculator.feature +0 -0
  37. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/environment.py +0 -0
  38. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/fail_page.feature +0 -0
  39. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/realworld.feature +0 -0
  40. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/__init__.py +0 -0
  41. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/calculator.py +0 -0
  42. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/fail_page.py +0 -0
  43. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/imported.py +0 -0
  44. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
  45. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/swag_labs.feature +0 -0
  46. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/ReadMe.md +0 -0
  47. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/__init__.py +0 -0
  48. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/base_test_case.py +0 -0
  49. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/boilerplate_test.py +0 -0
  50. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/classic_obj_test.py +0 -0
  51. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/page_objects.py +0 -0
  52. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/__init__.py +0 -0
  53. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
  54. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
  55. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
  56. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
  57. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/google_objects.py +0 -0
  58. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/google_test.py +0 -0
  59. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/sb_swag_test.py +0 -0
  60. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/swag_labs_test.py +0 -0
  61. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/test_page_objects.py +0 -0
  62. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/sb_fixture_test.py +0 -0
  63. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/ReadMe.md +0 -0
  64. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/mac_cap_file.py +0 -0
  65. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/sample_cap_file_BS.py +0 -0
  66. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/sample_cap_file_SL.py +0 -0
  67. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/selenoid_cap_file.py +0 -0
  68. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/win10_cap_file.py +0 -0
  69. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
  70. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
  71. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
  72. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
  73. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
  74. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
  75. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
  76. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
  77. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_summary.md +0 -0
  78. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/ReadMe.md +0 -0
  79. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/chart_presentation.py +0 -0
  80. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/my_chart.py +0 -0
  81. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/pie_charts.py +0 -0
  82. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_area_chart.py +0 -0
  83. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_display_chart.py +0 -0
  84. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_line_chart.py +0 -0
  85. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_multi_series.py +0 -0
  86. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_save_chart.py +0 -0
  87. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/coffee_cart_tests.py +0 -0
  88. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/custom_settings.py +0 -0
  89. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/desktop_apps/ReadMe.md +0 -0
  90. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/desktop_apps/recorder.py +0 -0
  91. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/dialog_boxes/ReadMe.md +0 -0
  92. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/dialog_boxes/dialog_box_tour.py +0 -0
  93. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/edge_test.py +0 -0
  94. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_config.cfg +0 -0
  95. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_logs/ReadMe.md +0 -0
  96. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_logs/basic_test_info.txt +0 -0
  97. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_logs/page_source.html +0 -0
  98. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_logs/screenshot.png +0 -0
  99. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/github_test.py +0 -0
  100. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/gui_test_runner.py +0 -0
  101. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/hack_the_planet.py +0 -0
  102. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/handle_alert_test.py +0 -0
  103. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/iframe_tests.py +0 -0
  104. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/locale_code_test.py +0 -0
  105. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/ReadMe.md +0 -0
  106. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/__init__.py +0 -0
  107. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/basic_masterqa_test_0.py +0 -0
  108. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/masterqa_test_1.py +0 -0
  109. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/pytest.ini +0 -0
  110. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/__init__.py +0 -0
  111. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/ReadMe.md +0 -0
  112. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/__init__.py +0 -0
  113. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/example_spec.js +0 -0
  114. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/example_test.py +0 -0
  115. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/input_spec.js +0 -0
  116. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/input_test.py +0 -0
  117. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/mat_paginator_spec.js +0 -0
  118. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/mat_paginator_test.py +0 -0
  119. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/ReadMe.md +0 -0
  120. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/__init__.py +0 -0
  121. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
  122. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
  123. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/messy_raw.py +0 -0
  124. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/pytest.ini +0 -0
  125. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/refined_raw.py +0 -0
  126. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/simple_sbase.py +0 -0
  127. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/my_first_test.py +0 -0
  128. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/nth_child_test.py +0 -0
  129. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/__init__.py +0 -0
  130. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/demo_page.html +0 -0
  131. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/load_html_test.py +0 -0
  132. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/test_demo_page.py +0 -0
  133. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/test_handle_alerts.py +0 -0
  134. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/test_request_fixture.py +0 -0
  135. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/test_user_agent.py +0 -0
  136. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/old_wordle_script.py +0 -0
  137. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/parameterized_test.py +0 -0
  138. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/performance_test.py +0 -0
  139. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/ReadMe.md +0 -0
  140. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/core_presentation.py +0 -0
  141. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/edge_presentation.py +0 -0
  142. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/fundamentals.py +0 -0
  143. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/my_presentation.py +0 -0
  144. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/py_virtual_envs.py +0 -0
  145. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/proxy_test.py +0 -0
  146. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/pytest.ini +0 -0
  147. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/rate_limiting_test.py +0 -0
  148. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_call.py +0 -0
  149. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_driver_context.py +0 -0
  150. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_file_call.py +0 -0
  151. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_main_call.py +0 -0
  152. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_parameter_script.py +0 -0
  153. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_sb.py +0 -0
  154. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_test_scripts.py +0 -0
  155. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_uc_mode.py +0 -0
  156. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/setup.cfg +0 -0
  157. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/shadow_root_test.py +0 -0
  158. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/swag_labs_user_tests.py +0 -0
  159. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_apple_site.py +0 -0
  160. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_assert_elements.py +0 -0
  161. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_calculator.py +0 -0
  162. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_canvas.py +0 -0
  163. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_checkboxes.py +0 -0
  164. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_chinese_pdf.py +0 -0
  165. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_chromedriver.py +0 -0
  166. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_coffee_cart.py +0 -0
  167. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_console_logging.py +0 -0
  168. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_contains_selector.py +0 -0
  169. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_cycle_elements.py +0 -0
  170. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_decryption.py +0 -0
  171. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_deferred_asserts.py +0 -0
  172. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_demo_site.py +0 -0
  173. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_detect_404s.py +0 -0
  174. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_docs_site.py +0 -0
  175. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_double_click.py +0 -0
  176. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_download_files.py +0 -0
  177. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_download_images.py +0 -0
  178. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_drag_and_drop.py +0 -0
  179. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_error_page.py +0 -0
  180. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_event_firing.py +0 -0
  181. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_fail.py +0 -0
  182. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_geolocation.py +0 -0
  183. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_get_coffee.py +0 -0
  184. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_get_locale_code.py +0 -0
  185. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_get_pdf_text.py +0 -0
  186. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_get_user_agent.py +0 -0
  187. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_hack_search.py +0 -0
  188. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_image_saving.py +0 -0
  189. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_inspect_html.py +0 -0
  190. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_login.py +0 -0
  191. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_markers.py +0 -0
  192. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_mfa_login.py +0 -0
  193. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_multiple_drivers.py +0 -0
  194. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_null.py +0 -0
  195. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_override_driver.py +0 -0
  196. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_override_sb_fixture.py +0 -0
  197. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_parse_soup.py +0 -0
  198. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_pdf_asserts.py +0 -0
  199. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_pytest_parametrize.py +0 -0
  200. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_repeat_tests.py +0 -0
  201. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_request_sb_fixture.py +0 -0
  202. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_save_screenshots.py +0 -0
  203. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_sb_fixture.py +0 -0
  204. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_scrape_bing.py +0 -0
  205. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_select_options.py +0 -0
  206. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_shadow_dom.py +0 -0
  207. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_show_file_choosers.py +0 -0
  208. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_skype_site.py +0 -0
  209. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_suite.py +0 -0
  210. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_swag_labs.py +0 -0
  211. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_tinymce.py +0 -0
  212. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_todomvc.py +0 -0
  213. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_url_asserts.py +0 -0
  214. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_usefixtures.py +0 -0
  215. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_verify_chromedriver.py +0 -0
  216. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_window_switching.py +0 -0
  217. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_xfail.py +0 -0
  218. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_xkcd.py +0 -0
  219. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/time_limit_test.py +0 -0
  220. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/ReadMe.md +0 -0
  221. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/bootstrap_google_tour.py +0 -0
  222. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
  223. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/driverjs_maps_tour.py +0 -0
  224. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/google_tour.py +0 -0
  225. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/hopscotch_google_tour.py +0 -0
  226. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/introjs_google_tour.py +0 -0
  227. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/maps_introjs_tour.py +0 -0
  228. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/octocat_tour.py +0 -0
  229. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/shepherd_google_tour.py +0 -0
  230. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/xkcd_tour.py +0 -0
  231. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/ReadMe.md +0 -0
  232. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/chinese_test_1.py +0 -0
  233. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/dutch_test_1.py +0 -0
  234. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/english_test_1.py +0 -0
  235. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/french_test_1.py +0 -0
  236. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/italian_test_1.py +0 -0
  237. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/japanese_test_1.py +0 -0
  238. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/korean_test_1.py +0 -0
  239. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/portuguese_test_1.py +0 -0
  240. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/pytest.ini +0 -0
  241. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/russian_test_1.py +0 -0
  242. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/spanish_test_1.py +0 -0
  243. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/uc_cdp_events.py +0 -0
  244. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/unit_tests/ReadMe.md +0 -0
  245. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/unit_tests/verify_framework.py +0 -0
  246. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/upgrade_chromedriver.py +0 -0
  247. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/upload_file_test.py +0 -0
  248. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/user_agent_test.py +0 -0
  249. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/verify_undetected.py +0 -0
  250. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/ReadMe.md +0 -0
  251. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/__init__.py +0 -0
  252. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
  253. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
  254. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
  255. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
  256. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
  257. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
  258. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/layout_test.py +0 -0
  259. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/python_home_test.py +0 -0
  260. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/test_layout_fail.py +0 -0
  261. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/xkcd_visual_test.py +0 -0
  262. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/wordle_test.py +0 -0
  263. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/xpath_test.py +0 -0
  264. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/youtube_search_test.py +0 -0
  265. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/ReadMe.md +0 -0
  266. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/behave_gui.md +0 -0
  267. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/case_plans.md +0 -0
  268. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/chinese.md +0 -0
  269. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/commander.md +0 -0
  270. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/customizing_test_runs.md +0 -0
  271. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/demo_mode.md +0 -0
  272. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/desired_capabilities.md +0 -0
  273. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/features_list.md +0 -0
  274. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/handling_iframes.md +0 -0
  275. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/happy_customers.md +0 -0
  276. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/hidden_files_info.md +0 -0
  277. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/how_it_works.md +0 -0
  278. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/html_inspector.md +0 -0
  279. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/install.md +0 -0
  280. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/install_python_pip_git.md +0 -0
  281. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/js_package_manager.md +0 -0
  282. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/locale_codes.md +0 -0
  283. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/method_summary.md +0 -0
  284. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/mobile_testing.md +0 -0
  285. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/mysql_installation.md +0 -0
  286. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/recorder_mode.md +0 -0
  287. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/shadow_dom.md +0 -0
  288. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/syntax_formats.md +0 -0
  289. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/thank_you.md +0 -0
  290. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/translations.md +0 -0
  291. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/useful_grep_commands.md +0 -0
  292. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/using_safari_driver.md +0 -0
  293. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/verify_webdriver.md +0 -0
  294. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/virtualenv_instructions.md +0 -0
  295. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/webdriver_installation.md +0 -0
  296. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/install.sh +0 -0
  297. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/__init__.py +0 -0
  298. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
  299. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/azure/jenkins/ReadMe.md +0 -0
  300. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/ReadMe.md +0 -0
  301. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/behave.ini +0 -0
  302. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/__init__.py +0 -0
  303. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/behave.ini +0 -0
  304. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/calculator.feature +0 -0
  305. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/environment.py +0 -0
  306. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/fail_page.feature +0 -0
  307. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/realworld.feature +0 -0
  308. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/__init__.py +0 -0
  309. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/calculator.py +0 -0
  310. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/fail_page.py +0 -0
  311. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/real_world.py +0 -0
  312. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/swag_labs.py +0 -0
  313. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/swag_labs.feature +0 -0
  314. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/brython/ReadMe.md +0 -0
  315. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/brython/index.html +0 -0
  316. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/brython/index.py +0 -0
  317. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/brython/library.html +0 -0
  318. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/ReadMe.md +0 -0
  319. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/docker-entrypoint.sh +0 -0
  320. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/docker_config.cfg +0 -0
  321. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
  322. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/run_docker_test_in_firefox.sh +0 -0
  323. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/github/ReadMe.md +0 -0
  324. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/github/workflows/ReadMe.md +0 -0
  325. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/github/workflows/extras.md +0 -0
  326. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/google_cloud/ReadMe.md +0 -0
  327. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/katalon/ReadMe.md +0 -0
  328. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/Linuxfile.sh +0 -0
  329. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/ReadMe.md +0 -0
  330. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/Xvfb_launcher.sh +0 -0
  331. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/jenkins_permissions.sh +0 -0
  332. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/tomcat_permissions.sh +0 -0
  333. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/ReadMe.md +0 -0
  334. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/__init__.py +0 -0
  335. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/index.html +0 -0
  336. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/my_first_test.py +0 -0
  337. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/npm-shrinkwrap.json +0 -0
  338. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/package.json +0 -0
  339. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/server.js +0 -0
  340. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/test_demo_site.py +0 -0
  341. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/selenium_grid/ReadMe.md +0 -0
  342. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/selenium_ide/ReadMe.md +0 -0
  343. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs.yml +0 -0
  344. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/ReadMe.txt +0 -0
  345. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/docs_instructions.txt +0 -0
  346. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/dash_pie.png +0 -0
  347. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/dash_pie_2.png +0 -0
  348. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/dash_pie_3.png +0 -0
  349. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/favicon.ico +0 -0
  350. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/grad_logo.png +0 -0
  351. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/green_icon.png +0 -0
  352. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/green_logo.png +0 -0
  353. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/green_logo2.png +0 -0
  354. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/green_logo3.png +0 -0
  355. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo3.png +0 -0
  356. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo3a.png +0 -0
  357. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo3b.png +0 -0
  358. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo3c.png +0 -0
  359. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo4.png +0 -0
  360. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo5.png +0 -0
  361. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo6.png +0 -0
  362. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo7.png +0 -0
  363. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/sb_icon.png +0 -0
  364. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/sb_logo_10.png +0 -0
  365. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/sb_logo_7.png +0 -0
  366. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/side_by_side.png +0 -0
  367. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_facebook.svg +0 -0
  368. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_github.svg +0 -0
  369. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_gitter.svg +0 -0
  370. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_instagram.svg +0 -0
  371. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_twitter.svg +0 -0
  372. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/index.txt +0 -0
  373. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/prepare.py +0 -0
  374. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/pytest.ini +0 -0
  375. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/sbase/ReadMe.txt +0 -0
  376. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/sbase/__init__.py +0 -0
  377. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/sbase/__main__.py +0 -0
  378. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/sbase/steps.py +0 -0
  379. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/ReadMe.md +0 -0
  380. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/__init__.py +0 -0
  381. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/__main__.py +0 -0
  382. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/behave/__init__.py +0 -0
  383. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/behave/behave_helper.py +0 -0
  384. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/behave/behave_sb.py +0 -0
  385. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/behave/steps.py +0 -0
  386. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/ReadMe.md +0 -0
  387. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/__init__.py +0 -0
  388. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/decorators.py +0 -0
  389. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/encryption.py +0 -0
  390. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/exceptions.py +0 -0
  391. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/obfuscate.py +0 -0
  392. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/unobfuscate.py +0 -0
  393. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/config/__init__.py +0 -0
  394. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/config/ad_block_list.py +0 -0
  395. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/config/proxy_list.py +0 -0
  396. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/config/settings.py +0 -0
  397. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/ReadMe.md +0 -0
  398. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/__init__.py +0 -0
  399. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/logo_helper.py +0 -0
  400. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/rich_helper.py +0 -0
  401. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/run.py +0 -0
  402. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  403. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  404. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_commander.py +0 -0
  405. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_install.py +0 -0
  406. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  407. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  408. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  409. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  410. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  411. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  412. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_print.py +0 -0
  413. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  414. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/__init__.py +0 -0
  415. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/application_manager.py +0 -0
  416. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/browser_launcher.py +0 -0
  417. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/capabilities_parser.py +0 -0
  418. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/colored_traceback.py +0 -0
  419. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/create_db_tables.sql +0 -0
  420. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/detect_b_ver.py +0 -0
  421. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/download_helper.py +0 -0
  422. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/encoded_images.py +0 -0
  423. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/jqc_helper.py +0 -0
  424. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/log_helper.py +0 -0
  425. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/mysql.py +0 -0
  426. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/proxy_helper.py +0 -0
  427. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/recorder_helper.py +0 -0
  428. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/report_helper.py +0 -0
  429. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/s3_manager.py +0 -0
  430. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/sb_driver.py +0 -0
  431. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/session_helper.py +0 -0
  432. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/settings_parser.py +0 -0
  433. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/style_sheet.py +0 -0
  434. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/testcase_manager.py +0 -0
  435. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/tour_helper.py +0 -0
  436. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/visual_helper.py +0 -0
  437. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/drivers/ReadMe.md +0 -0
  438. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/drivers/__init__.py +0 -0
  439. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/ReadMe.md +0 -0
  440. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/__init__.py +0 -0
  441. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/ad_block.zip +0 -0
  442. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/disable_csp.zip +0 -0
  443. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/recorder.zip +0 -0
  444. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/sbase_ext.zip +0 -0
  445. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/__init__.py +0 -0
  446. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/constants.py +0 -0
  447. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  448. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/errors.py +0 -0
  449. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/js_utils.py +0 -0
  450. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/page_actions.py +0 -0
  451. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/page_utils.py +0 -0
  452. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/shared_utils.py +0 -0
  453. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/unittest_helper.py +0 -0
  454. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/words.py +0 -0
  455. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  456. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/js_code/__init__.py +0 -0
  457. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/js_code/active_css_js.py +0 -0
  458. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/js_code/live_js.py +0 -0
  459. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/js_code/recorder_js.py +0 -0
  460. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/masterqa/ReadMe.md +0 -0
  461. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/masterqa/__init__.py +0 -0
  462. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/masterqa/master_qa.py +0 -0
  463. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/__init__.py +0 -0
  464. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/base_plugin.py +0 -0
  465. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/basic_test_info.py +0 -0
  466. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  467. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/driver_manager.py +0 -0
  468. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/page_source.py +0 -0
  469. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/pytest_plugin.py +0 -0
  470. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  471. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/sb_manager.py +0 -0
  472. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/screen_shots.py +0 -0
  473. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/selenium_plugin.py +0 -0
  474. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/resources/ReadMe.md +0 -0
  475. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/resources/__init__.py +0 -0
  476. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/resources/favicon.ico +0 -0
  477. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/__init__.py +0 -0
  478. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/chinese.py +0 -0
  479. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/dutch.py +0 -0
  480. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/french.py +0 -0
  481. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/italian.py +0 -0
  482. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/japanese.py +0 -0
  483. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/korean.py +0 -0
  484. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/master_dict.py +0 -0
  485. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/portuguese.py +0 -0
  486. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/russian.py +0 -0
  487. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/spanish.py +0 -0
  488. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/translator.py +0 -0
  489. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/__init__.py +0 -0
  490. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/cdp.py +0 -0
  491. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/dprocess.py +0 -0
  492. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/options.py +0 -0
  493. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/patcher.py +0 -0
  494. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/reactor.py +0 -0
  495. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/__init__.py +0 -0
  496. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
  497. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  498. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  499. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  500. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  501. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  502. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  503. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  504. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  505. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  506. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  507. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  508. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
  509. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  510. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  511. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/SOURCES.txt +0 -0
  512. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/dependency_links.txt +0 -0
  513. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/entry_points.txt +0 -0
  514. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/top_level.txt +0 -0
  515. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/setup.cfg +0 -0
  516. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/virtualenv_install.sh +0 -0
  517. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/win_install.bat +0 -0
  518. {seleniumbase-4.25.1 → seleniumbase-4.25.3}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.25.1
3
+ Version: 4.25.3
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
@@ -67,15 +67,15 @@ Requires-Dist: wheel>=0.43.0; python_version >= "3.8"
67
67
  Requires-Dist: attrs>=23.2.0
68
68
  Requires-Dist: certifi>=2024.2.2
69
69
  Requires-Dist: filelock>=3.12.2; python_version < "3.8"
70
- Requires-Dist: filelock>=3.13.3; python_version >= "3.8"
70
+ Requires-Dist: filelock>=3.13.4; python_version >= "3.8"
71
71
  Requires-Dist: platformdirs>=4.0.0; python_version < "3.8"
72
72
  Requires-Dist: platformdirs>=4.2.0; python_version >= "3.8"
73
- Requires-Dist: typing-extensions>=4.10.0; python_version >= "3.8"
73
+ Requires-Dist: typing-extensions>=4.11.0; python_version >= "3.8"
74
74
  Requires-Dist: parse>=1.20.1
75
75
  Requires-Dist: parse-type>=0.6.2
76
76
  Requires-Dist: pyyaml>=6.0.1
77
77
  Requires-Dist: six==1.16.0
78
- Requires-Dist: idna==3.6
78
+ Requires-Dist: idna==3.7
79
79
  Requires-Dist: chardet==5.2.0
80
80
  Requires-Dist: charset-normalizer==3.3.2
81
81
  Requires-Dist: urllib3<2,>=1.26.18; python_version < "3.10"
@@ -94,7 +94,8 @@ Requires-Dist: selenium==4.19.0; python_version >= "3.8"
94
94
  Requires-Dist: cssselect==1.2.0
95
95
  Requires-Dist: sortedcontainers==2.4.0
96
96
  Requires-Dist: fasteners==0.19
97
- Requires-Dist: execnet==2.0.2
97
+ Requires-Dist: execnet==2.0.2; python_version < "3.8"
98
+ Requires-Dist: execnet==2.1.1; python_version >= "3.8"
98
99
  Requires-Dist: iniconfig==2.0.0
99
100
  Requires-Dist: pluggy==1.2.0; python_version < "3.8"
100
101
  Requires-Dist: pluggy==1.4.0; python_version >= "3.8"
@@ -180,9 +181,10 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
180
181
 
181
182
  <h1>SeleniumBase</h1>
182
183
 
183
- <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/mac_sb_logo_b.png" alt="SeleniumBase" title="SeleniumBase" width="440" /></a></p>
184
+ <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
184
185
 
185
- <h3 align="center" class="hero__title"><b>Web Automation and Testing with Python have evolved.</b></h3>
186
+
187
+ <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
186
188
 
187
189
  <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></p>
188
190
 
@@ -226,7 +228,11 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
226
228
 
227
229
  --------
228
230
 
229
- 📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/**](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.
231
+ 📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/** folder](https://github.com/seleniumbase/SeleniumBase/tree/master/examples).
232
+
233
+ 👤 Note that <span translate="no">SeleniumBase</span> <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">UC Mode / Stealth Mode has its own ReadMe</a>.
234
+
235
+ ℹ️ Scripts can be called via <code translate="no"><b>python</b></code>, although some <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a> expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover & collect tests automatically).
230
236
 
231
237
  <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>, which tests login, shopping, and checkout:</p>
232
238
 
@@ -234,7 +240,7 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
234
240
  pytest my_first_test.py
235
241
  ```
236
242
 
237
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
243
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
238
244
 
239
245
  > ``pytest`` uses ``--chrome`` by default unless set differently.
240
246
 
@@ -246,7 +252,7 @@ pytest my_first_test.py
246
252
  pytest test_coffee_cart.py --demo
247
253
  ```
248
254
 
249
- <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="480" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
255
+ <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="520" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
250
256
 
251
257
  > <p>(<code translate="no">--demo</code> mode slows down tests and highlights actions)</p>
252
258
 
@@ -260,7 +266,7 @@ pytest test_coffee_cart.py --demo
260
266
  pytest test_demo_site.py
261
267
  ```
262
268
 
263
- <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="480" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
269
+ <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="520" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
264
270
 
265
271
  > Easy to type, click, select, toggle, drag & drop, and more.
266
272
 
@@ -268,7 +274,7 @@ pytest test_demo_site.py
268
274
 
269
275
  --------
270
276
 
271
- <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb2.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
277
+ <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
272
278
 
273
279
  <blockquote>
274
280
  <p dir="auto"><strong>Explore the README:</strong></p>
@@ -563,7 +569,7 @@ cd examples/
563
569
  pytest my_first_test.py
564
570
  ```
565
571
 
566
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
572
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
567
573
 
568
574
  <p align="left"><b>Here's the code for <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</b></p>
569
575
 
@@ -1004,14 +1010,14 @@ python -m http.server 1948
1004
1010
  pytest test_suite.py test_image_saving.py --dashboard --rs --headless
1005
1011
  ```
1006
1012
 
1007
- <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="480" />
1013
+ <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="520" />
1008
1014
 
1009
1015
  --------
1010
1016
 
1011
1017
  <a id="creating_visual_reports"></a>
1012
1018
  <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
1013
1019
 
1014
- <h3>🔵 Pytest Reports:</h3>
1020
+ <h3>🔵 <code>pytest</code> HTML Reports:</h3>
1015
1021
 
1016
1022
  ✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
1017
1023
 
@@ -1039,7 +1045,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
1039
1045
  pytest test_suite.py --junit-xml=report.xml
1040
1046
  ```
1041
1047
 
1042
- <h3>🔵 pynose Reports:</h3>
1048
+ <h3>🔵 <code>pynose</code> Reports:</h3>
1043
1049
 
1044
1050
  The ``--report`` option gives you a fancy report after your test suite completes.
1045
1051
 
@@ -1051,7 +1057,7 @@ pynose test_suite.py --report
1051
1057
 
1052
1058
  (NOTE: You can add ``--show-report`` to immediately display pynose reports after the test suite completes. Only use ``--show-report`` when running tests locally because it pauses the test run.)
1053
1059
 
1054
- <h3>🔵 Behave Dashboard & Reports:</h3>
1060
+ <h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
1055
1061
 
1056
1062
  (The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
1057
1063
 
@@ -1059,7 +1065,7 @@ pynose test_suite.py --report
1059
1065
  behave behave_bdd/features/ -D dashboard -D headless
1060
1066
  ```
1061
1067
 
1062
- <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="500">
1068
+ <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="520">
1063
1069
 
1064
1070
  You can also use ``--junit`` to get ``.xml`` reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.
1065
1071
 
@@ -1123,7 +1129,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
1123
1129
  ```
1124
1130
 
1125
1131
 
1126
- <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up / Pop Up Alerts:</h3>
1132
+ <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up Alerts:</h3>
1127
1133
 
1128
1134
  🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.
1129
1135
 
@@ -1521,11 +1527,13 @@ pytest --reruns=1 --reruns-delay=1
1521
1527
 
1522
1528
  <p>
1523
1529
  <div><b>If you see something, say something!</b></div>
1524
- <div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
1530
+ <div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
1525
1531
  </p>
1526
1532
 
1527
1533
  <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="266" /></a></p>
1528
1534
 
1535
+ <a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a>
1536
+
1529
1537
  <p><div>
1530
1538
  <span><a href="https://www.youtube.com/playlist?list=PLp9uKicxkBc5UIlGi2BuE3aWC7JyXpD3m"><img src="https://seleniumbase.github.io/cdn/img/youtube.png" title="SeleniumBase Playlist on YouTube" alt="SeleniumBase Playlist on YouTube" width="68" /></a></span>
1531
1539
  <span><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/img/social/share_github.svg" title="SeleniumBase on GitHub" alt="SeleniumBase on GitHub" width="62" /></a></span>
@@ -1535,11 +1543,8 @@ pytest --reruns=1 --reruns-delay=1
1535
1543
 
1536
1544
  <p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
1537
1545
 
1538
- <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/fancy_logo_14.png" title="SeleniumBase" width="240" /></a></div> <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
1546
+ <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="240" /></a></div>
1547
+ <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
1539
1548
  <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
1540
1549
  <div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
1541
-
1542
- --------
1543
-
1544
- <p><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" alt="SeleniumBase" title="SeleniumBase" width="300" /></a></p>
1545
- <p><a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a></p>
1550
+ <div align="left"><img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="124px" height="28px" alt="Views" /></div>
@@ -9,9 +9,10 @@
9
9
 
10
10
  <h1>SeleniumBase</h1>
11
11
 
12
- <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/mac_sb_logo_b.png" alt="SeleniumBase" title="SeleniumBase" width="440" /></a></p>
12
+ <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
13
13
 
14
- <h3 align="center" class="hero__title"><b>Web Automation and Testing with Python have evolved.</b></h3>
14
+
15
+ <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
15
16
 
16
17
  <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></p>
17
18
 
@@ -55,7 +56,11 @@
55
56
 
56
57
  --------
57
58
 
58
- 📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/**](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.
59
+ 📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/** folder](https://github.com/seleniumbase/SeleniumBase/tree/master/examples).
60
+
61
+ 👤 Note that <span translate="no">SeleniumBase</span> <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">UC Mode / Stealth Mode has its own ReadMe</a>.
62
+
63
+ ℹ️ Scripts can be called via <code translate="no"><b>python</b></code>, although some <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a> expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover & collect tests automatically).
59
64
 
60
65
  <p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>, which tests login, shopping, and checkout:</p>
61
66
 
@@ -63,7 +68,7 @@
63
68
  pytest my_first_test.py
64
69
  ```
65
70
 
66
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
71
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
67
72
 
68
73
  > ``pytest`` uses ``--chrome`` by default unless set differently.
69
74
 
@@ -75,7 +80,7 @@ pytest my_first_test.py
75
80
  pytest test_coffee_cart.py --demo
76
81
  ```
77
82
 
78
- <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="480" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
83
+ <p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="520" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
79
84
 
80
85
  > <p>(<code translate="no">--demo</code> mode slows down tests and highlights actions)</p>
81
86
 
@@ -89,7 +94,7 @@ pytest test_coffee_cart.py --demo
89
94
  pytest test_demo_site.py
90
95
  ```
91
96
 
92
- <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="480" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
97
+ <p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="520" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
93
98
 
94
99
  > Easy to type, click, select, toggle, drag & drop, and more.
95
100
 
@@ -97,7 +102,7 @@ pytest test_demo_site.py
97
102
 
98
103
  --------
99
104
 
100
- <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb2.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
105
+ <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
101
106
 
102
107
  <blockquote>
103
108
  <p dir="auto"><strong>Explore the README:</strong></p>
@@ -392,7 +397,7 @@ cd examples/
392
397
  pytest my_first_test.py
393
398
  ```
394
399
 
395
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
400
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
396
401
 
397
402
  <p align="left"><b>Here's the code for <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</b></p>
398
403
 
@@ -833,14 +838,14 @@ python -m http.server 1948
833
838
  pytest test_suite.py test_image_saving.py --dashboard --rs --headless
834
839
  ```
835
840
 
836
- <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="480" />
841
+ <img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="520" />
837
842
 
838
843
  --------
839
844
 
840
845
  <a id="creating_visual_reports"></a>
841
846
  <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
842
847
 
843
- <h3>🔵 Pytest Reports:</h3>
848
+ <h3>🔵 <code>pytest</code> HTML Reports:</h3>
844
849
 
845
850
  ✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
846
851
 
@@ -868,7 +873,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
868
873
  pytest test_suite.py --junit-xml=report.xml
869
874
  ```
870
875
 
871
- <h3>🔵 pynose Reports:</h3>
876
+ <h3>🔵 <code>pynose</code> Reports:</h3>
872
877
 
873
878
  The ``--report`` option gives you a fancy report after your test suite completes.
874
879
 
@@ -880,7 +885,7 @@ pynose test_suite.py --report
880
885
 
881
886
  (NOTE: You can add ``--show-report`` to immediately display pynose reports after the test suite completes. Only use ``--show-report`` when running tests locally because it pauses the test run.)
882
887
 
883
- <h3>🔵 Behave Dashboard & Reports:</h3>
888
+ <h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
884
889
 
885
890
  (The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
886
891
 
@@ -888,7 +893,7 @@ pynose test_suite.py --report
888
893
  behave behave_bdd/features/ -D dashboard -D headless
889
894
  ```
890
895
 
891
- <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="500">
896
+ <img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="520">
892
897
 
893
898
  You can also use ``--junit`` to get ``.xml`` reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.
894
899
 
@@ -952,7 +957,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
952
957
  ```
953
958
 
954
959
 
955
- <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up / Pop Up Alerts:</h3>
960
+ <h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up Alerts:</h3>
956
961
 
957
962
  🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.
958
963
 
@@ -1350,11 +1355,13 @@ pytest --reruns=1 --reruns-delay=1
1350
1355
 
1351
1356
  <p>
1352
1357
  <div><b>If you see something, say something!</b></div>
1353
- <div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
1358
+ <div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
1354
1359
  </p>
1355
1360
 
1356
1361
  <p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="266" /></a></p>
1357
1362
 
1363
+ <a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a>
1364
+
1358
1365
  <p><div>
1359
1366
  <span><a href="https://www.youtube.com/playlist?list=PLp9uKicxkBc5UIlGi2BuE3aWC7JyXpD3m"><img src="https://seleniumbase.github.io/cdn/img/youtube.png" title="SeleniumBase Playlist on YouTube" alt="SeleniumBase Playlist on YouTube" width="68" /></a></span>
1360
1367
  <span><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/img/social/share_github.svg" title="SeleniumBase on GitHub" alt="SeleniumBase on GitHub" width="62" /></a></span>
@@ -1364,11 +1371,8 @@ pytest --reruns=1 --reruns-delay=1
1364
1371
 
1365
1372
  <p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
1366
1373
 
1367
- <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/fancy_logo_14.png" title="SeleniumBase" width="240" /></a></div> <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
1374
+ <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="240" /></a></div>
1375
+ <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
1368
1376
  <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
1369
1377
  <div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
1370
-
1371
- --------
1372
-
1373
- <p><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" alt="SeleniumBase" title="SeleniumBase" width="300" /></a></p>
1374
- <p><a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a></p>
1378
+ <div align="left"><img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="124px" height="28px" alt="Views" /></div>
@@ -3,7 +3,7 @@
3
3
 
4
4
  regex>=2023.12.25
5
5
  pymdown-extensions>=10.7.1
6
- pipdeptree>=2.16.2
6
+ pipdeptree>=2.18.0
7
7
  python-dateutil>=2.8.2
8
8
  Markdown==3.6
9
9
  markdown2==2.4.13
@@ -7,15 +7,15 @@ wheel>=0.43.0;python_version>="3.8"
7
7
  attrs>=23.2.0
8
8
  certifi>=2024.2.2
9
9
  filelock>=3.12.2;python_version<"3.8"
10
- filelock>=3.13.3;python_version>="3.8"
10
+ filelock>=3.13.4;python_version>="3.8"
11
11
  platformdirs>=4.0.0;python_version<"3.8"
12
12
  platformdirs>=4.2.0;python_version>="3.8"
13
- typing-extensions>=4.10.0;python_version>="3.8"
13
+ typing-extensions>=4.11.0;python_version>="3.8"
14
14
  parse>=1.20.1
15
15
  parse-type>=0.6.2
16
16
  pyyaml>=6.0.1
17
17
  six==1.16.0
18
- idna==3.6
18
+ idna==3.7
19
19
  chardet==5.2.0
20
20
  charset-normalizer==3.3.2
21
21
  urllib3>=1.26.18,<2;python_version<"3.10"
@@ -34,7 +34,8 @@ selenium==4.19.0;python_version>="3.8"
34
34
  cssselect==1.2.0
35
35
  sortedcontainers==2.4.0
36
36
  fasteners==0.19
37
- execnet==2.0.2
37
+ execnet==2.0.2;python_version<"3.8"
38
+ execnet==2.1.1;python_version>="3.8"
38
39
  iniconfig==2.0.0
39
40
  pluggy==1.2.0;python_version<"3.8"
40
41
  pluggy==1.4.0;python_version>="3.8"
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.25.1"
2
+ __version__ = "4.25.3"
@@ -4134,6 +4134,23 @@ class BaseCase(unittest.TestCase):
4134
4134
  self.__dont_record_open = True
4135
4135
  self.open(new_start_page)
4136
4136
  self.__dont_record_open = False
4137
+ if undetectable:
4138
+ if hasattr(new_driver, "uc_open"):
4139
+ self.uc_open = new_driver.uc_open
4140
+ if hasattr(new_driver, "uc_open_with_tab"):
4141
+ self.uc_open_with_tab = new_driver.uc_open_with_tab
4142
+ if hasattr(new_driver, "uc_open_with_reconnect"):
4143
+ self.uc_open_with_reconnect = new_driver.uc_open_with_reconnect
4144
+ if hasattr(new_driver, "reconnect"):
4145
+ self.reconnect = new_driver.reconnect
4146
+ if hasattr(new_driver, "disconnect"):
4147
+ self.disconnect = new_driver.disconnect
4148
+ if hasattr(new_driver, "connect"):
4149
+ self.connect = new_driver.connect
4150
+ if hasattr(new_driver, "uc_click"):
4151
+ self.uc_click = new_driver.uc_click
4152
+ if hasattr(new_driver, "uc_switch_to_frame"):
4153
+ self.uc_switch_to_frame = new_driver.uc_switch_to_frame
4137
4154
  return new_driver
4138
4155
 
4139
4156
  def switch_to_driver(self, driver):
@@ -1,3 +1,4 @@
1
+ import re
1
2
  import selenium.webdriver.remote.webelement
2
3
  from seleniumbase.fixtures import js_utils
3
4
 
@@ -13,10 +14,12 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
13
14
  ):
14
15
  if driver and selector and by:
15
16
  delayed_click = False
16
- if tag_name == "span" or tag_name == "button" or tag_name == "div":
17
+ if tag_name in ["span", "button", "div", "a"]:
17
18
  delayed_click = True
18
19
  if delayed_click and ":contains" not in selector:
19
20
  selector = js_utils.convert_to_css_selector(selector, by)
21
+ selector = re.escape(selector)
22
+ selector = js_utils.escape_quotes_if_needed(selector)
20
23
  script = 'document.querySelector("%s").click();' % selector
21
24
  js_utils.call_me_later(driver, script, 111)
22
25
  else: