seleniumbase 4.24.10__tar.gz → 4.24.12__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 (519) hide show
  1. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/PKG-INFO +2 -2
  2. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_download_files.py +1 -0
  3. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/uc_cdp_events.py +3 -3
  4. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/requirements.txt +1 -1
  5. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/requirements.txt +1 -1
  6. seleniumbase-4.24.12/seleniumbase/__version__.py +2 -0
  7. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/config/proxy_list.py +3 -3
  8. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/browser_launcher.py +21 -12
  9. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/detect_b_ver.py +7 -8
  10. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/base_case.py +10 -39
  11. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/constants.py +1 -1
  12. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/js_utils.py +39 -0
  13. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/webelement.py +10 -3
  14. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/PKG-INFO +2 -2
  15. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/requires.txt +1 -1
  16. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/setup.py +1 -1
  17. seleniumbase-4.24.10/seleniumbase/__version__.py +0 -2
  18. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/Workflows.md +0 -0
  19. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/pages.yml +0 -0
  20. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/python-nightly-mac.yml +0 -0
  21. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/python-nightly-ubuntu.yml +0 -0
  22. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/python-nightly-windows.yml +0 -0
  23. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/python-package.yml +0 -0
  24. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.gitignore +0 -0
  25. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/CHANGELOG.md +0 -0
  26. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/CNAME +0 -0
  27. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/CODE_OF_CONDUCT.md +0 -0
  28. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/CONTRIBUTING.md +0 -0
  29. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/Dockerfile +0 -0
  30. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/LICENSE +0 -0
  31. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/MANIFEST.in +0 -0
  32. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/README.md +0 -0
  33. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/SECURITY.md +0 -0
  34. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/_config.yml +0 -0
  35. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/azure-pipelines.yml +0 -0
  36. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/ReadMe.md +0 -0
  37. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/__init__.py +0 -0
  38. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/basic_test.py +0 -0
  39. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/ReadMe.md +0 -0
  40. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/__init__.py +0 -0
  41. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/behave.ini +0 -0
  42. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/__init__.py +0 -0
  43. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/behave.ini +0 -0
  44. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/calculator.feature +0 -0
  45. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/environment.py +0 -0
  46. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/fail_page.feature +0 -0
  47. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/realworld.feature +0 -0
  48. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/__init__.py +0 -0
  49. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/calculator.py +0 -0
  50. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/fail_page.py +0 -0
  51. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/imported.py +0 -0
  52. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
  53. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/swag_labs.feature +0 -0
  54. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/ReadMe.md +0 -0
  55. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/__init__.py +0 -0
  56. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/base_test_case.py +0 -0
  57. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/boilerplate_test.py +0 -0
  58. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/classic_obj_test.py +0 -0
  59. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/page_objects.py +0 -0
  60. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/__init__.py +0 -0
  61. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
  62. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
  63. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
  64. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
  65. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/google_objects.py +0 -0
  66. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/google_test.py +0 -0
  67. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/sb_swag_test.py +0 -0
  68. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/swag_labs_test.py +0 -0
  69. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/test_page_objects.py +0 -0
  70. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/sb_fixture_test.py +0 -0
  71. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/ReadMe.md +0 -0
  72. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/mac_cap_file.py +0 -0
  73. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/sample_cap_file_BS.py +0 -0
  74. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/sample_cap_file_SL.py +0 -0
  75. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/selenoid_cap_file.py +0 -0
  76. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/win10_cap_file.py +0 -0
  77. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
  78. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
  79. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
  80. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
  81. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
  82. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
  83. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
  84. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
  85. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_summary.md +0 -0
  86. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/ReadMe.md +0 -0
  87. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/chart_presentation.py +0 -0
  88. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/my_chart.py +0 -0
  89. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/pie_charts.py +0 -0
  90. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_area_chart.py +0 -0
  91. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_display_chart.py +0 -0
  92. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_line_chart.py +0 -0
  93. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_multi_series.py +0 -0
  94. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_save_chart.py +0 -0
  95. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/coffee_cart_tests.py +0 -0
  96. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/custom_settings.py +0 -0
  97. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/desktop_apps/ReadMe.md +0 -0
  98. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/desktop_apps/recorder.py +0 -0
  99. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/dialog_boxes/ReadMe.md +0 -0
  100. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/dialog_boxes/dialog_box_tour.py +0 -0
  101. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/edge_test.py +0 -0
  102. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_config.cfg +0 -0
  103. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_logs/ReadMe.md +0 -0
  104. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_logs/basic_test_info.txt +0 -0
  105. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_logs/page_source.html +0 -0
  106. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_logs/screenshot.png +0 -0
  107. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/github_test.py +0 -0
  108. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/gui_test_runner.py +0 -0
  109. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/hack_the_planet.py +0 -0
  110. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/handle_alert_test.py +0 -0
  111. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/iframe_tests.py +0 -0
  112. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/locale_code_test.py +0 -0
  113. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/ReadMe.md +0 -0
  114. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/__init__.py +0 -0
  115. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/basic_masterqa_test_0.py +0 -0
  116. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/masterqa_test_1.py +0 -0
  117. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/pytest.ini +0 -0
  118. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/__init__.py +0 -0
  119. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/ReadMe.md +0 -0
  120. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/__init__.py +0 -0
  121. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/example_spec.js +0 -0
  122. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/example_test.py +0 -0
  123. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/input_spec.js +0 -0
  124. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/input_test.py +0 -0
  125. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/mat_paginator_spec.js +0 -0
  126. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/mat_paginator_test.py +0 -0
  127. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/ReadMe.md +0 -0
  128. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/__init__.py +0 -0
  129. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
  130. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
  131. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/messy_raw.py +0 -0
  132. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/pytest.ini +0 -0
  133. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/refined_raw.py +0 -0
  134. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/simple_sbase.py +0 -0
  135. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/my_first_test.py +0 -0
  136. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/nth_child_test.py +0 -0
  137. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/__init__.py +0 -0
  138. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/demo_page.html +0 -0
  139. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/load_html_test.py +0 -0
  140. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/test_demo_page.py +0 -0
  141. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/test_handle_alerts.py +0 -0
  142. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/test_request_fixture.py +0 -0
  143. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/test_user_agent.py +0 -0
  144. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/old_wordle_script.py +0 -0
  145. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/parameterized_test.py +0 -0
  146. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/performance_test.py +0 -0
  147. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/ReadMe.md +0 -0
  148. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/core_presentation.py +0 -0
  149. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/edge_presentation.py +0 -0
  150. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/fundamentals.py +0 -0
  151. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/my_presentation.py +0 -0
  152. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/py_virtual_envs.py +0 -0
  153. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/proxy_test.py +0 -0
  154. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/pytest.ini +0 -0
  155. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/rate_limiting_test.py +0 -0
  156. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_call.py +0 -0
  157. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_driver_context.py +0 -0
  158. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_file_call.py +0 -0
  159. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_main_call.py +0 -0
  160. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_parameter_script.py +0 -0
  161. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_sb.py +0 -0
  162. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_test_scripts.py +0 -0
  163. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_uc_mode.py +0 -0
  164. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/setup.cfg +0 -0
  165. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/shadow_root_test.py +0 -0
  166. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/swag_labs_user_tests.py +0 -0
  167. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_apple_site.py +0 -0
  168. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_assert_elements.py +0 -0
  169. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_calculator.py +0 -0
  170. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_canvas.py +0 -0
  171. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_checkboxes.py +0 -0
  172. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_chinese_pdf.py +0 -0
  173. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_chromedriver.py +0 -0
  174. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_coffee_cart.py +0 -0
  175. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_console_logging.py +0 -0
  176. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_contains_selector.py +0 -0
  177. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_cycle_elements.py +0 -0
  178. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_decryption.py +0 -0
  179. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_deferred_asserts.py +0 -0
  180. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_demo_site.py +0 -0
  181. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_detect_404s.py +0 -0
  182. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_docs_site.py +0 -0
  183. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_double_click.py +0 -0
  184. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_download_images.py +0 -0
  185. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_drag_and_drop.py +0 -0
  186. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_error_page.py +0 -0
  187. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_event_firing.py +0 -0
  188. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_fail.py +0 -0
  189. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_geolocation.py +0 -0
  190. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_get_coffee.py +0 -0
  191. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_get_locale_code.py +0 -0
  192. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_get_pdf_text.py +0 -0
  193. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_get_user_agent.py +0 -0
  194. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_hack_search.py +0 -0
  195. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_image_saving.py +0 -0
  196. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_inspect_html.py +0 -0
  197. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_login.py +0 -0
  198. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_markers.py +0 -0
  199. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_mfa_login.py +0 -0
  200. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_multiple_drivers.py +0 -0
  201. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_null.py +0 -0
  202. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_override_driver.py +0 -0
  203. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_override_sb_fixture.py +0 -0
  204. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_parse_soup.py +0 -0
  205. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_pdf_asserts.py +0 -0
  206. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_pytest_parametrize.py +0 -0
  207. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_repeat_tests.py +0 -0
  208. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_request_sb_fixture.py +0 -0
  209. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_save_screenshots.py +0 -0
  210. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_sb_fixture.py +0 -0
  211. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_scrape_bing.py +0 -0
  212. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_select_options.py +0 -0
  213. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_shadow_dom.py +0 -0
  214. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_show_file_choosers.py +0 -0
  215. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_skype_site.py +0 -0
  216. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_suite.py +0 -0
  217. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_swag_labs.py +0 -0
  218. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_tinymce.py +0 -0
  219. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_todomvc.py +0 -0
  220. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_url_asserts.py +0 -0
  221. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_usefixtures.py +0 -0
  222. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_verify_chromedriver.py +0 -0
  223. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_window_switching.py +0 -0
  224. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_xfail.py +0 -0
  225. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_xkcd.py +0 -0
  226. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/time_limit_test.py +0 -0
  227. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/ReadMe.md +0 -0
  228. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/bootstrap_google_tour.py +0 -0
  229. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
  230. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/driverjs_maps_tour.py +0 -0
  231. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/google_tour.py +0 -0
  232. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/hopscotch_google_tour.py +0 -0
  233. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/introjs_google_tour.py +0 -0
  234. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/maps_introjs_tour.py +0 -0
  235. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/octocat_tour.py +0 -0
  236. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/shepherd_google_tour.py +0 -0
  237. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/xkcd_tour.py +0 -0
  238. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/ReadMe.md +0 -0
  239. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/chinese_test_1.py +0 -0
  240. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/dutch_test_1.py +0 -0
  241. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/english_test_1.py +0 -0
  242. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/french_test_1.py +0 -0
  243. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/italian_test_1.py +0 -0
  244. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/japanese_test_1.py +0 -0
  245. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/korean_test_1.py +0 -0
  246. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/portuguese_test_1.py +0 -0
  247. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/pytest.ini +0 -0
  248. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/russian_test_1.py +0 -0
  249. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/spanish_test_1.py +0 -0
  250. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/unit_tests/ReadMe.md +0 -0
  251. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/unit_tests/verify_framework.py +0 -0
  252. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/upgrade_chromedriver.py +0 -0
  253. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/upload_file_test.py +0 -0
  254. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/user_agent_test.py +0 -0
  255. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/verify_undetected.py +0 -0
  256. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/ReadMe.md +0 -0
  257. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/__init__.py +0 -0
  258. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
  259. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
  260. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
  261. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
  262. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
  263. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
  264. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/layout_test.py +0 -0
  265. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/python_home_test.py +0 -0
  266. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/test_layout_fail.py +0 -0
  267. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/xkcd_visual_test.py +0 -0
  268. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/wordle_test.py +0 -0
  269. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/xpath_test.py +0 -0
  270. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/youtube_search_test.py +0 -0
  271. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/ReadMe.md +0 -0
  272. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/behave_gui.md +0 -0
  273. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/case_plans.md +0 -0
  274. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/chinese.md +0 -0
  275. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/commander.md +0 -0
  276. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/customizing_test_runs.md +0 -0
  277. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/demo_mode.md +0 -0
  278. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/desired_capabilities.md +0 -0
  279. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/features_list.md +0 -0
  280. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/handling_iframes.md +0 -0
  281. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/happy_customers.md +0 -0
  282. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/hidden_files_info.md +0 -0
  283. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/how_it_works.md +0 -0
  284. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/html_inspector.md +0 -0
  285. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/install.md +0 -0
  286. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/install_python_pip_git.md +0 -0
  287. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/js_package_manager.md +0 -0
  288. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/locale_codes.md +0 -0
  289. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/method_summary.md +0 -0
  290. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/mobile_testing.md +0 -0
  291. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/mysql_installation.md +0 -0
  292. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/recorder_mode.md +0 -0
  293. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/shadow_dom.md +0 -0
  294. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/syntax_formats.md +0 -0
  295. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/thank_you.md +0 -0
  296. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/translations.md +0 -0
  297. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/useful_grep_commands.md +0 -0
  298. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/using_safari_driver.md +0 -0
  299. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/verify_webdriver.md +0 -0
  300. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/virtualenv_instructions.md +0 -0
  301. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/webdriver_installation.md +0 -0
  302. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/install.sh +0 -0
  303. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/__init__.py +0 -0
  304. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
  305. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/azure/jenkins/ReadMe.md +0 -0
  306. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/ReadMe.md +0 -0
  307. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/behave.ini +0 -0
  308. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/__init__.py +0 -0
  309. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/behave.ini +0 -0
  310. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/calculator.feature +0 -0
  311. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/environment.py +0 -0
  312. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/fail_page.feature +0 -0
  313. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/realworld.feature +0 -0
  314. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/__init__.py +0 -0
  315. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/calculator.py +0 -0
  316. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/fail_page.py +0 -0
  317. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/real_world.py +0 -0
  318. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/swag_labs.py +0 -0
  319. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/swag_labs.feature +0 -0
  320. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/brython/ReadMe.md +0 -0
  321. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/brython/index.html +0 -0
  322. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/brython/index.py +0 -0
  323. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/brython/library.html +0 -0
  324. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/ReadMe.md +0 -0
  325. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/docker-entrypoint.sh +0 -0
  326. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/docker_config.cfg +0 -0
  327. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
  328. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/run_docker_test_in_firefox.sh +0 -0
  329. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/github/ReadMe.md +0 -0
  330. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/github/workflows/ReadMe.md +0 -0
  331. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/github/workflows/extras.md +0 -0
  332. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/google_cloud/ReadMe.md +0 -0
  333. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/katalon/ReadMe.md +0 -0
  334. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/Linuxfile.sh +0 -0
  335. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/ReadMe.md +0 -0
  336. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/Xvfb_launcher.sh +0 -0
  337. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/jenkins_permissions.sh +0 -0
  338. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/tomcat_permissions.sh +0 -0
  339. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/ReadMe.md +0 -0
  340. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/__init__.py +0 -0
  341. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/index.html +0 -0
  342. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/my_first_test.py +0 -0
  343. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/npm-shrinkwrap.json +0 -0
  344. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/package.json +0 -0
  345. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/server.js +0 -0
  346. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/test_demo_site.py +0 -0
  347. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/selenium_grid/ReadMe.md +0 -0
  348. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/selenium_ide/ReadMe.md +0 -0
  349. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs.yml +0 -0
  350. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/ReadMe.txt +0 -0
  351. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/docs_instructions.txt +0 -0
  352. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/dash_pie.png +0 -0
  353. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/dash_pie_2.png +0 -0
  354. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/dash_pie_3.png +0 -0
  355. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/favicon.ico +0 -0
  356. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/grad_logo.png +0 -0
  357. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/green_icon.png +0 -0
  358. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/green_logo.png +0 -0
  359. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/green_logo2.png +0 -0
  360. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/green_logo3.png +0 -0
  361. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo3.png +0 -0
  362. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo3a.png +0 -0
  363. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo3b.png +0 -0
  364. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo3c.png +0 -0
  365. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo4.png +0 -0
  366. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo5.png +0 -0
  367. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo6.png +0 -0
  368. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo7.png +0 -0
  369. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/sb_icon.png +0 -0
  370. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/sb_logo_10.png +0 -0
  371. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/sb_logo_7.png +0 -0
  372. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/side_by_side.png +0 -0
  373. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_facebook.svg +0 -0
  374. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_github.svg +0 -0
  375. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_gitter.svg +0 -0
  376. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_instagram.svg +0 -0
  377. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_twitter.svg +0 -0
  378. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/index.txt +0 -0
  379. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/prepare.py +0 -0
  380. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/pytest.ini +0 -0
  381. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/sbase/ReadMe.txt +0 -0
  382. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/sbase/__init__.py +0 -0
  383. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/sbase/__main__.py +0 -0
  384. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/sbase/steps.py +0 -0
  385. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/ReadMe.md +0 -0
  386. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/__init__.py +0 -0
  387. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/__main__.py +0 -0
  388. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/behave/__init__.py +0 -0
  389. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/behave/behave_helper.py +0 -0
  390. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/behave/behave_sb.py +0 -0
  391. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/behave/steps.py +0 -0
  392. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/ReadMe.md +0 -0
  393. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/__init__.py +0 -0
  394. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/decorators.py +0 -0
  395. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/encryption.py +0 -0
  396. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/exceptions.py +0 -0
  397. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/obfuscate.py +0 -0
  398. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/unobfuscate.py +0 -0
  399. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/config/__init__.py +0 -0
  400. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/config/ad_block_list.py +0 -0
  401. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/config/settings.py +0 -0
  402. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/ReadMe.md +0 -0
  403. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/__init__.py +0 -0
  404. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/logo_helper.py +0 -0
  405. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/rich_helper.py +0 -0
  406. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/run.py +0 -0
  407. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  408. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  409. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_commander.py +0 -0
  410. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_install.py +0 -0
  411. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  412. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  413. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  414. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  415. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  416. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  417. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_print.py +0 -0
  418. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  419. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/__init__.py +0 -0
  420. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/application_manager.py +0 -0
  421. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/capabilities_parser.py +0 -0
  422. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/colored_traceback.py +0 -0
  423. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/create_db_tables.sql +0 -0
  424. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/download_helper.py +0 -0
  425. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/encoded_images.py +0 -0
  426. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/jqc_helper.py +0 -0
  427. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/log_helper.py +0 -0
  428. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/mysql.py +0 -0
  429. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/proxy_helper.py +0 -0
  430. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/recorder_helper.py +0 -0
  431. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/report_helper.py +0 -0
  432. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/s3_manager.py +0 -0
  433. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/sb_driver.py +0 -0
  434. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/session_helper.py +0 -0
  435. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/settings_parser.py +0 -0
  436. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/style_sheet.py +0 -0
  437. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/testcase_manager.py +0 -0
  438. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/tour_helper.py +0 -0
  439. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/visual_helper.py +0 -0
  440. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/drivers/ReadMe.md +0 -0
  441. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/drivers/__init__.py +0 -0
  442. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/ReadMe.md +0 -0
  443. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/__init__.py +0 -0
  444. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/ad_block.zip +0 -0
  445. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/disable_csp.zip +0 -0
  446. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/recorder.zip +0 -0
  447. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/sbase_ext.zip +0 -0
  448. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/__init__.py +0 -0
  449. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  450. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/errors.py +0 -0
  451. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/page_actions.py +0 -0
  452. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/page_utils.py +0 -0
  453. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/shared_utils.py +0 -0
  454. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/unittest_helper.py +0 -0
  455. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/words.py +0 -0
  456. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  457. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/js_code/__init__.py +0 -0
  458. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/js_code/active_css_js.py +0 -0
  459. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/js_code/live_js.py +0 -0
  460. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/js_code/recorder_js.py +0 -0
  461. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/masterqa/ReadMe.md +0 -0
  462. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/masterqa/__init__.py +0 -0
  463. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/masterqa/master_qa.py +0 -0
  464. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/__init__.py +0 -0
  465. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/base_plugin.py +0 -0
  466. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/basic_test_info.py +0 -0
  467. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  468. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/driver_manager.py +0 -0
  469. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/page_source.py +0 -0
  470. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/pytest_plugin.py +0 -0
  471. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  472. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/sb_manager.py +0 -0
  473. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/screen_shots.py +0 -0
  474. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/selenium_plugin.py +0 -0
  475. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/resources/ReadMe.md +0 -0
  476. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/resources/__init__.py +0 -0
  477. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/resources/favicon.ico +0 -0
  478. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/__init__.py +0 -0
  479. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/chinese.py +0 -0
  480. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/dutch.py +0 -0
  481. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/french.py +0 -0
  482. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/italian.py +0 -0
  483. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/japanese.py +0 -0
  484. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/korean.py +0 -0
  485. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/master_dict.py +0 -0
  486. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/portuguese.py +0 -0
  487. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/russian.py +0 -0
  488. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/spanish.py +0 -0
  489. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/translator.py +0 -0
  490. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/__init__.py +0 -0
  491. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/cdp.py +0 -0
  492. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/dprocess.py +0 -0
  493. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/options.py +0 -0
  494. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/patcher.py +0 -0
  495. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/reactor.py +0 -0
  496. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/__init__.py +0 -0
  497. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
  498. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  499. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  500. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  501. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  502. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  503. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  504. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  505. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  506. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  507. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  508. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  509. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
  510. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  511. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  512. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/SOURCES.txt +0 -0
  513. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/dependency_links.txt +0 -0
  514. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/entry_points.txt +0 -0
  515. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/top_level.txt +0 -0
  516. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/setup.cfg +0 -0
  517. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/virtualenv_install.sh +0 -0
  518. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/win_install.bat +0 -0
  519. {seleniumbase-4.24.10 → seleniumbase-4.24.12}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.24.10
3
+ Version: 4.24.12
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
@@ -86,7 +86,7 @@ Requires-Dist: sniffio==1.3.1
86
86
  Requires-Dist: h11==0.14.0
87
87
  Requires-Dist: outcome==1.3.0.post0
88
88
  Requires-Dist: trio==0.22.2; python_version < "3.8"
89
- Requires-Dist: trio==0.24.0; python_version >= "3.8"
89
+ Requires-Dist: trio==0.25.0; python_version >= "3.8"
90
90
  Requires-Dist: trio-websocket==0.11.1
91
91
  Requires-Dist: wsproto==1.2.0
92
92
  Requires-Dist: selenium==4.11.2; python_version < "3.8"
@@ -43,6 +43,7 @@ class DownloadTests(BaseCase):
43
43
  if (
44
44
  self.browser == "safari"
45
45
  or self.browser == "ie"
46
+ or self.browser == "edge"
46
47
  or (self.is_chromium() and self.guest_mode)
47
48
  or (self.is_chromium() and (self.headless or self.headless2))
48
49
  ):
@@ -13,15 +13,15 @@ class CDPTests(BaseCase):
13
13
  )
14
14
 
15
15
  def click_turnstile_and_verify(sb):
16
- sb.driver.uc_switch_to_frame("iframe")
16
+ sb.switch_to_frame("iframe")
17
17
  sb.driver.uc_click("span.mark")
18
- sb.assert_element("img#captcha-success", timeout=3.33)
18
+ sb.assert_element("img#captcha-success", timeout=3)
19
19
  sb.highlight("img#captcha-success", loops=8)
20
20
 
21
21
  def test_display_cdp_events(self):
22
22
  if not (self.undetectable and self.uc_cdp_events):
23
23
  self.get_new_driver(undetectable=True, uc_cdp_events=True)
24
- self.driver.uc_open("https://seleniumbase.io/apps/turnstile")
24
+ self.driver.uc_open_with_reconnect("seleniumbase.io/apps/turnstile")
25
25
  self.add_cdp_listener()
26
26
  self.click_turnstile_and_verify()
27
27
  self.sleep(1)
@@ -20,7 +20,7 @@ lxml==5.1.0
20
20
  pyquery==2.0.0
21
21
  readtime==3.0.0
22
22
  mkdocs==1.5.3
23
- mkdocs-material==9.5.13
23
+ mkdocs-material==9.5.14
24
24
  mkdocs-exclude-search==0.6.6
25
25
  mkdocs-simple-hooks==0.1.5
26
26
  mkdocs-material-extensions==1.3.1
@@ -26,7 +26,7 @@ sniffio==1.3.1
26
26
  h11==0.14.0
27
27
  outcome==1.3.0.post0
28
28
  trio==0.22.2;python_version<"3.8"
29
- trio==0.24.0;python_version>="3.8"
29
+ trio==0.25.0;python_version>="3.8"
30
30
  trio-websocket==0.11.1
31
31
  wsproto==1.2.0
32
32
  selenium==4.11.2;python_version<"3.8"
@@ -0,0 +1,2 @@
1
+ # seleniumbase package
2
+ __version__ = "4.24.12"
@@ -23,9 +23,9 @@ you can try finding one from one of following sites:
23
23
  """
24
24
 
25
25
  PROXY_LIST = {
26
- "example1": "37.19.220.129:8443", # (Example) - set your own proxy here
27
- "example2": "socks4://104.236.32.53:8915", # (Example)
28
- "example3": "socks5://142.44.212.57:49006", # (Example)
26
+ "example1": "35.185.196.38:3128", # (Example) - set your own proxy here
27
+ "example2": "129.80.134.71:3128", # (Example)
28
+ "example3": "socks5://184.178.172.5:15303", # (Example)
29
29
  "proxy1": None,
30
30
  "proxy2": None,
31
31
  "proxy3": None,
@@ -463,11 +463,16 @@ def uc_click(
463
463
  except Exception:
464
464
  pass
465
465
  element = driver.wait_for_selector(selector, by=by, timeout=timeout)
466
- if not element.tag_name == "span": # Element must be "visible"
466
+ tag_name = element.tag_name
467
+ if not tag_name == "span": # Element must be "visible"
467
468
  element = driver.wait_for_element(selector, by=by, timeout=timeout)
468
469
  try:
469
470
  element.uc_click(
470
- driver, selector, by=by, reconnect_time=reconnect_time
471
+ driver,
472
+ selector,
473
+ by=by,
474
+ reconnect_time=reconnect_time,
475
+ tag_name=tag_name,
471
476
  )
472
477
  except ElementClickInterceptedException:
473
478
  time.sleep(0.16)
@@ -812,11 +817,12 @@ def _set_chrome_options(
812
817
  chrome_options = webdriver.edge.options.Options()
813
818
  prefs = {}
814
819
  prefs["download.default_directory"] = downloads_path
815
- prefs["local_discovery.notifications_enabled"] = False
816
- prefs["credentials_enable_service"] = False
817
- prefs["download.prompt_for_download"] = False
818
820
  prefs["download.directory_upgrade"] = True
821
+ prefs["download.prompt_for_download"] = False
822
+ prefs["credentials_enable_service"] = False
823
+ prefs["local_discovery.notifications_enabled"] = False
819
824
  prefs["safebrowsing.enabled"] = False
825
+ prefs["safebrowsing.disable_download_protection"] = True
820
826
  prefs["omnibox-max-zero-suggest-matches"] = 0
821
827
  prefs["omnibox-use-existing-autocomplete-client"] = 0
822
828
  prefs["omnibox-trending-zero-prefix-suggestions-on-ntp"] = 0
@@ -827,9 +833,8 @@ def _set_chrome_options(
827
833
  prefs["omnibox-zero-suggest-prefetching-on-srp"] = 0
828
834
  prefs["omnibox-zero-suggest-prefetching-on-web"] = 0
829
835
  prefs["omnibox-zero-suggest-in-memory-caching"] = 0
830
- prefs["default_content_setting_values.notifications"] = 0
831
836
  prefs["content_settings.exceptions.automatic_downloads.*.setting"] = 1
832
- prefs["safebrowsing.disable_download_protection"] = True
837
+ prefs["default_content_setting_values.notifications"] = 0
833
838
  prefs["default_content_settings.popups"] = 0
834
839
  prefs["managed_default_content_settings.popups"] = 0
835
840
  prefs["profile.password_manager_enabled"] = False
@@ -1142,6 +1147,7 @@ def _set_chrome_options(
1142
1147
  included_disabled_features.append("PrivacySandboxSettings4")
1143
1148
  included_disabled_features.append("DownloadBubble")
1144
1149
  included_disabled_features.append("DownloadBubbleV2")
1150
+ included_disabled_features.append("InsecureDownloadWarnings")
1145
1151
  for item in extra_disabled_features:
1146
1152
  if item not in included_disabled_features:
1147
1153
  included_disabled_features.append(item)
@@ -1153,6 +1159,7 @@ def _set_chrome_options(
1153
1159
  included_disabled_features.append("OptimizationTargetPrediction")
1154
1160
  included_disabled_features.append("DownloadBubble")
1155
1161
  included_disabled_features.append("DownloadBubbleV2")
1162
+ included_disabled_features.append("InsecureDownloadWarnings")
1156
1163
  for item in extra_disabled_features:
1157
1164
  if item not in included_disabled_features:
1158
1165
  included_disabled_features.append(item)
@@ -2367,10 +2374,11 @@ def get_local_driver(
2367
2374
  elif browser_name == constants.Browser.EDGE:
2368
2375
  prefs = {
2369
2376
  "download.default_directory": downloads_path,
2370
- "local_discovery.notifications_enabled": False,
2371
- "credentials_enable_service": False,
2372
- "download.prompt_for_download": False,
2373
2377
  "download.directory_upgrade": True,
2378
+ "download.prompt_for_download": False,
2379
+ "credentials_enable_service": False,
2380
+ "local_discovery.notifications_enabled": False,
2381
+ "safebrowsing.disable_download_protection": True,
2374
2382
  "safebrowsing.enabled": False,
2375
2383
  "omnibox-max-zero-suggest-matches": 0,
2376
2384
  "omnibox-use-existing-autocomplete-client": 0,
@@ -2382,11 +2390,10 @@ def get_local_driver(
2382
2390
  "omnibox-zero-suggest-prefetching-on-srp": 0,
2383
2391
  "omnibox-zero-suggest-prefetching-on-web": 0,
2384
2392
  "omnibox-zero-suggest-in-memory-caching": 0,
2385
- "safebrowsing.disable_download_protection": True,
2393
+ "content_settings.exceptions.automatic_downloads.*.setting": 1,
2386
2394
  "default_content_setting_values.notifications": 0,
2387
2395
  "default_content_settings.popups": 0,
2388
2396
  "managed_default_content_settings.popups": 0,
2389
- "content_settings.exceptions.automatic_downloads.*.setting": 1,
2390
2397
  "profile.password_manager_enabled": False,
2391
2398
  "profile.default_content_setting_values.notifications": 2,
2392
2399
  "profile.default_content_settings.popups": 0,
@@ -2772,6 +2779,7 @@ def get_local_driver(
2772
2779
  included_disabled_features.append("Translate")
2773
2780
  included_disabled_features.append("OptimizationTargetPrediction")
2774
2781
  included_disabled_features.append("PrivacySandboxSettings4")
2782
+ included_disabled_features.append("InsecureDownloadWarnings")
2775
2783
  for item in extra_disabled_features:
2776
2784
  if item not in included_disabled_features:
2777
2785
  included_disabled_features.append(item)
@@ -2781,6 +2789,7 @@ def get_local_driver(
2781
2789
  included_disabled_features.append("OptimizationHintsFetching")
2782
2790
  included_disabled_features.append("Translate")
2783
2791
  included_disabled_features.append("OptimizationTargetPrediction")
2792
+ included_disabled_features.append("InsecureDownloadWarnings")
2784
2793
  for item in extra_disabled_features:
2785
2794
  if item not in included_disabled_features:
2786
2795
  included_disabled_features.append(item)
@@ -231,29 +231,28 @@ def get_binary_location(browser_type, prefer_chromium=False):
231
231
 
232
232
  def get_browser_version_from_binary(binary_location):
233
233
  try:
234
+ if not os.path.exists(binary_location):
235
+ return None
234
236
  path = binary_location
235
237
  pattern = r"\d+\.\d+\.\d+"
236
238
  quad_pattern = r"\d+\.\d+\.\d+\.\d+"
237
- if os_name() == OSType.WIN and os.path.exists(path):
239
+ if os_name() == OSType.WIN:
238
240
  path = path.replace(r"\ ", r" ").replace("\\", "\\\\")
239
241
  cmd_mapping = (
240
- '''powershell -command "&{(Get-Command '%s')'''
241
- '''.Version.ToString()}"''' % path
242
+ '''powershell -command "&{(Get-Item -Path '%s')'''
243
+ '''.VersionInfo.FileVersion}"''' % path
242
244
  )
243
245
  quad_version = read_version_from_cmd(cmd_mapping, quad_pattern)
244
246
  if quad_version and len(str(quad_version)) >= 9: # Eg. 122.0.0.0
245
247
  return quad_version
246
- version = read_version_from_cmd(cmd_mapping, pattern)
247
- if version and len(str(version)) >= 7: # Eg. 122.0.0
248
- return version
248
+ return read_version_from_cmd(cmd_mapping, pattern)
249
249
  if binary_location.count(r"\ ") != binary_location.count(" "):
250
250
  binary_location = binary_location.replace(" ", r"\ ")
251
251
  cmd_mapping = binary_location + " --version"
252
252
  quad_version = read_version_from_cmd(cmd_mapping, quad_pattern)
253
253
  if quad_version and len(str(quad_version)) >= 9:
254
254
  return quad_version
255
- version = read_version_from_cmd(cmd_mapping, pattern)
256
- return version
255
+ return read_version_from_cmd(cmd_mapping, pattern)
257
256
  except Exception:
258
257
  return None
259
258
 
@@ -1310,14 +1310,12 @@ class BaseCase(unittest.TestCase):
1310
1310
  return self.get_page_title()
1311
1311
 
1312
1312
  def get_user_agent(self):
1313
- user_agent = self.execute_script("return navigator.userAgent;")
1314
- return user_agent
1313
+ return self.execute_script("return navigator.userAgent;")
1315
1314
 
1316
1315
  def get_locale_code(self):
1317
- locale_code = self.execute_script(
1316
+ return self.execute_script(
1318
1317
  "return navigator.language || navigator.languages[0];"
1319
1318
  )
1320
- return locale_code
1321
1319
 
1322
1320
  def go_back(self):
1323
1321
  self.__check_scope()
@@ -2161,10 +2159,9 @@ class BaseCase(unittest.TestCase):
2161
2159
  selector, by = self.__recalculate_selector(selector, by)
2162
2160
  self.wait_for_ready_state_complete()
2163
2161
  time.sleep(0.05)
2164
- v_elems = page_actions.find_visible_elements(
2162
+ return page_actions.find_visible_elements(
2165
2163
  self.driver, selector, by, limit
2166
2164
  )
2167
- return v_elems
2168
2165
 
2169
2166
  def click_visible_elements(
2170
2167
  self, selector, by="css selector", limit=0, timeout=None
@@ -6450,8 +6447,7 @@ class BaseCase(unittest.TestCase):
6450
6447
  except Exception:
6451
6448
  pass
6452
6449
  source = self.get_page_source()
6453
- soup = BeautifulSoup(source, "html.parser")
6454
- return soup
6450
+ return BeautifulSoup(source, "html.parser")
6455
6451
 
6456
6452
  def get_unique_links(self):
6457
6453
  """Get all unique links in the html of the page source.
@@ -6473,8 +6469,7 @@ class BaseCase(unittest.TestCase):
6473
6469
  time.sleep(0.123)
6474
6470
  soup = self.get_beautiful_soup(self.get_page_source())
6475
6471
  page_url = self.get_current_url()
6476
- links = page_utils._get_unique_links(page_url, soup)
6477
- return links
6472
+ return page_utils._get_unique_links(page_url, soup)
6478
6473
 
6479
6474
  def get_link_status_code(
6480
6475
  self,
@@ -6493,13 +6488,12 @@ class BaseCase(unittest.TestCase):
6493
6488
  timeout = self.__requests_timeout
6494
6489
  if timeout < 1:
6495
6490
  timeout = 1
6496
- status_code = page_utils._get_link_status_code(
6491
+ return page_utils._get_link_status_code(
6497
6492
  link,
6498
6493
  allow_redirects=allow_redirects,
6499
6494
  timeout=timeout,
6500
6495
  verify=verify,
6501
6496
  )
6502
- return status_code
6503
6497
 
6504
6498
  def assert_link_status_code_is_not_404(self, link):
6505
6499
  status_code = str(self.get_link_status_code(link))
@@ -6735,8 +6729,7 @@ class BaseCase(unittest.TestCase):
6735
6729
  pdf_text = self.__fix_unicode_conversion(pdf_text)
6736
6730
  if wrap:
6737
6731
  pdf_text = pdf_text.replace(" \n", " ")
6738
- pdf_text = pdf_text.strip() # Remove leading and trailing whitespace
6739
- return pdf_text
6732
+ return pdf_text.strip()
6740
6733
 
6741
6734
  def assert_pdf_text(
6742
6735
  self,
@@ -7741,8 +7734,7 @@ class BaseCase(unittest.TestCase):
7741
7734
 
7742
7735
  def is_online(self):
7743
7736
  """Return True if connected to the Internet."""
7744
- online = self.execute_script("return navigator.onLine;")
7745
- return online
7737
+ return self.execute_script("return navigator.onLine;")
7746
7738
 
7747
7739
  def is_chromium(self):
7748
7740
  """Return True if the browser is Chrome or Edge."""
@@ -7884,27 +7876,7 @@ class BaseCase(unittest.TestCase):
7884
7876
  jQuery commands require a CSS_SELECTOR for finding elements.
7885
7877
  This method should only be used for jQuery/JavaScript actions.
7886
7878
  Pure JavaScript doesn't support using a:contains("LINK_TEXT")."""
7887
- if by == By.CSS_SELECTOR:
7888
- return selector
7889
- elif by == By.ID:
7890
- return "#%s" % selector
7891
- elif by == By.CLASS_NAME:
7892
- return ".%s" % selector
7893
- elif by == By.NAME:
7894
- return '[name="%s"]' % selector
7895
- elif by == By.TAG_NAME:
7896
- return selector
7897
- elif by == By.XPATH:
7898
- return self.convert_xpath_to_css(selector)
7899
- elif by == By.LINK_TEXT:
7900
- return 'a:contains("%s")' % selector
7901
- elif by == By.PARTIAL_LINK_TEXT:
7902
- return 'a:contains("%s")' % selector
7903
- else:
7904
- raise Exception(
7905
- "Exception: Could not convert {%s}(by=%s) to CSS_SELECTOR!"
7906
- % (selector, by)
7907
- )
7879
+ return js_utils.convert_to_css_selector(selector, by)
7908
7880
 
7909
7881
  def set_value(
7910
7882
  self, selector, text, by="css selector", timeout=None, scroll=True
@@ -13210,8 +13182,7 @@ class BaseCase(unittest.TestCase):
13210
13182
 
13211
13183
  def __get_major_browser_version(self):
13212
13184
  version = self.driver.__dict__["caps"]["browserVersion"]
13213
- major_browser_version = version.split(".")[0]
13214
- return major_browser_version
13185
+ return version.split(".")[0]
13215
13186
 
13216
13187
  def __get_href_from_link_text(self, link_text, hard_fail=True):
13217
13188
  href = self.get_link_attribute(link_text, "href", hard_fail)
@@ -367,7 +367,7 @@ class Mobile:
367
367
 
368
368
 
369
369
  class UC:
370
- RECONNECT_TIME = 2.35 # Seconds
370
+ RECONNECT_TIME = 2.4 # Seconds
371
371
 
372
372
 
373
373
  class ValidBrowsers:
@@ -4,10 +4,12 @@ import requests
4
4
  import time
5
5
  from selenium.common.exceptions import NoSuchElementException
6
6
  from selenium.common.exceptions import WebDriverException
7
+ from selenium.webdriver.common.by import By
7
8
  from seleniumbase import config as sb_config
8
9
  from seleniumbase.config import settings
9
10
  from seleniumbase.fixtures import constants
10
11
  from seleniumbase.fixtures import css_to_xpath
12
+ from seleniumbase.fixtures import xpath_to_css
11
13
 
12
14
 
13
15
  def wait_for_ready_state_complete(driver, timeout=settings.LARGE_TIMEOUT):
@@ -93,6 +95,37 @@ def wait_for_angularjs(driver, timeout=settings.LARGE_TIMEOUT, **kwargs):
93
95
  time.sleep(0.05)
94
96
 
95
97
 
98
+ def convert_to_css_selector(selector, by=By.CSS_SELECTOR):
99
+ if by == By.CSS_SELECTOR:
100
+ return selector
101
+ elif by == By.ID:
102
+ return "#%s" % selector
103
+ elif by == By.CLASS_NAME:
104
+ return ".%s" % selector
105
+ elif by == By.NAME:
106
+ return '[name="%s"]' % selector
107
+ elif by == By.TAG_NAME:
108
+ return selector
109
+ elif (
110
+ by == By.XPATH
111
+ or (
112
+ selector.startswith("/")
113
+ or selector.startswith("./")
114
+ or selector.startswith("(")
115
+ )
116
+ ):
117
+ return xpath_to_css.convert_xpath_to_css(selector)
118
+ elif by == By.LINK_TEXT:
119
+ return 'a:contains("%s")' % selector
120
+ elif by == By.PARTIAL_LINK_TEXT:
121
+ return 'a:contains("%s")' % selector
122
+ else:
123
+ raise Exception(
124
+ "Exception: Could not convert {%s}(by=%s) to CSS_SELECTOR!"
125
+ % (selector, by)
126
+ )
127
+
128
+
96
129
  def is_html_inspector_activated(driver):
97
130
  try:
98
131
  driver.execute_script("HTMLInspector;") # Fails if not defined
@@ -325,6 +358,12 @@ def swap_selector_and_by_if_reversed(selector, by):
325
358
  return (selector, by)
326
359
 
327
360
 
361
+ def call_me_later(driver, script, ms):
362
+ """Call script after ms passed."""
363
+ call = "function() {%s}" % script
364
+ driver.execute_script("window.setTimeout(%s, %s);" % (call, ms))
365
+
366
+
328
367
  def highlight(driver, selector, by="css selector", loops=4):
329
368
  """For driver.highlight() / driver.page.highlight()"""
330
369
  swap_selector_and_by_if_reversed(selector, by)
@@ -1,4 +1,5 @@
1
1
  import selenium.webdriver.remote.webelement
2
+ from seleniumbase.fixtures import js_utils
2
3
 
3
4
 
4
5
  class WebElement(selenium.webdriver.remote.webelement.WebElement):
@@ -8,18 +9,24 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
8
9
  selector=None,
9
10
  by=None,
10
11
  reconnect_time=None,
12
+ tag_name=None,
11
13
  ):
12
14
  if driver and selector and by:
13
- driver.js_click(selector, by=by, timeout=1)
15
+ if tag_name == "span" and ":contains" not in selector:
16
+ selector = js_utils.convert_to_css_selector(selector, by)
17
+ script = 'document.querySelector("%s").click();' % selector
18
+ js_utils.call_me_later(driver, script, 111)
19
+ else:
20
+ driver.js_click(selector, by=by, timeout=1)
14
21
  else:
15
22
  super().click()
16
23
  if not reconnect_time:
17
- self._parent.reconnect(0.45)
24
+ self._parent.reconnect(0.5)
18
25
  else:
19
26
  self._parent.reconnect(reconnect_time)
20
27
 
21
28
  def uc_reconnect(self, reconnect_time=None):
22
29
  if not reconnect_time:
23
- self._parent.reconnect(0.1)
30
+ self._parent.reconnect(0.2)
24
31
  else:
25
32
  self._parent.reconnect(reconnect_time)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.24.10
3
+ Version: 4.24.12
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
@@ -86,7 +86,7 @@ Requires-Dist: sniffio==1.3.1
86
86
  Requires-Dist: h11==0.14.0
87
87
  Requires-Dist: outcome==1.3.0.post0
88
88
  Requires-Dist: trio==0.22.2; python_version < "3.8"
89
- Requires-Dist: trio==0.24.0; python_version >= "3.8"
89
+ Requires-Dist: trio==0.25.0; python_version >= "3.8"
90
90
  Requires-Dist: trio-websocket==0.11.1
91
91
  Requires-Dist: wsproto==1.2.0
92
92
  Requires-Dist: selenium==4.11.2; python_version < "3.8"
@@ -67,7 +67,7 @@ wheel>=0.43.0
67
67
  filelock>=3.13.1
68
68
  platformdirs>=4.2.0
69
69
  typing-extensions>=4.10.0
70
- trio==0.24.0
70
+ trio==0.25.0
71
71
  selenium==4.18.1
72
72
  pluggy==1.4.0
73
73
  pytest==8.1.1
@@ -174,7 +174,7 @@ setup(
174
174
  'h11==0.14.0',
175
175
  'outcome==1.3.0.post0',
176
176
  'trio==0.22.2;python_version<"3.8"',
177
- 'trio==0.24.0;python_version>="3.8"',
177
+ 'trio==0.25.0;python_version>="3.8"',
178
178
  'trio-websocket==0.11.1',
179
179
  'wsproto==1.2.0',
180
180
  'selenium==4.11.2;python_version<"3.8"',
@@ -1,2 +0,0 @@
1
- # seleniumbase package
2
- __version__ = "4.24.10"
File without changes
File without changes
File without changes