seleniumbase 4.25.2__tar.gz → 4.25.4__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.2 → seleniumbase-4.25.4}/Dockerfile +42 -43
  2. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/PKG-INFO +12 -12
  3. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/README.md +7 -7
  4. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/docker/ReadMe.md +14 -33
  5. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/requirements.txt +1 -1
  6. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/requirements.txt +4 -4
  7. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/__version__.py +1 -1
  8. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/base_case.py +17 -0
  9. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/webelement.py +1 -1
  10. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/PKG-INFO +12 -12
  11. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/SOURCES.txt +0 -2
  12. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/requires.txt +4 -4
  13. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/setup.py +4 -4
  14. seleniumbase-4.25.2/integrations/docker/docker_config.cfg +0 -3
  15. seleniumbase-4.25.2/integrations/docker/run_docker_test_in_firefox.sh +0 -6
  16. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/Workflows.md +0 -0
  17. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/pages.yml +0 -0
  18. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/python-nightly-mac.yml +0 -0
  19. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/python-nightly-ubuntu.yml +0 -0
  20. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/python-nightly-windows.yml +0 -0
  21. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/python-package.yml +0 -0
  22. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.gitignore +0 -0
  23. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/CHANGELOG.md +0 -0
  24. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/CNAME +0 -0
  25. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/CODE_OF_CONDUCT.md +0 -0
  26. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/CONTRIBUTING.md +0 -0
  27. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/LICENSE +0 -0
  28. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/MANIFEST.in +0 -0
  29. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/SECURITY.md +0 -0
  30. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/_config.yml +0 -0
  31. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/azure-pipelines.yml +0 -0
  32. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/ReadMe.md +0 -0
  33. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/__init__.py +0 -0
  34. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/basic_test.py +0 -0
  35. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/ReadMe.md +0 -0
  36. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/__init__.py +0 -0
  37. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/behave.ini +0 -0
  38. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/__init__.py +0 -0
  39. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/behave.ini +0 -0
  40. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/calculator.feature +0 -0
  41. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/environment.py +0 -0
  42. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/fail_page.feature +0 -0
  43. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/realworld.feature +0 -0
  44. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/__init__.py +0 -0
  45. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/calculator.py +0 -0
  46. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/fail_page.py +0 -0
  47. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/imported.py +0 -0
  48. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
  49. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/swag_labs.feature +0 -0
  50. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/ReadMe.md +0 -0
  51. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/__init__.py +0 -0
  52. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/base_test_case.py +0 -0
  53. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/boilerplate_test.py +0 -0
  54. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/classic_obj_test.py +0 -0
  55. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/page_objects.py +0 -0
  56. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/__init__.py +0 -0
  57. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
  58. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
  59. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
  60. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
  61. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/google_objects.py +0 -0
  62. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/google_test.py +0 -0
  63. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/sb_swag_test.py +0 -0
  64. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/swag_labs_test.py +0 -0
  65. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/test_page_objects.py +0 -0
  66. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/sb_fixture_test.py +0 -0
  67. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/ReadMe.md +0 -0
  68. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/mac_cap_file.py +0 -0
  69. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/sample_cap_file_BS.py +0 -0
  70. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/sample_cap_file_SL.py +0 -0
  71. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/selenoid_cap_file.py +0 -0
  72. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/win10_cap_file.py +0 -0
  73. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
  74. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
  75. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
  76. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
  77. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
  78. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
  79. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
  80. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
  81. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_summary.md +0 -0
  82. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/ReadMe.md +0 -0
  83. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/chart_presentation.py +0 -0
  84. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/my_chart.py +0 -0
  85. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/pie_charts.py +0 -0
  86. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_area_chart.py +0 -0
  87. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_display_chart.py +0 -0
  88. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_line_chart.py +0 -0
  89. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_multi_series.py +0 -0
  90. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_save_chart.py +0 -0
  91. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/coffee_cart_tests.py +0 -0
  92. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/custom_settings.py +0 -0
  93. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/desktop_apps/ReadMe.md +0 -0
  94. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/desktop_apps/recorder.py +0 -0
  95. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/dialog_boxes/ReadMe.md +0 -0
  96. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/dialog_boxes/dialog_box_tour.py +0 -0
  97. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/edge_test.py +0 -0
  98. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_config.cfg +0 -0
  99. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_logs/ReadMe.md +0 -0
  100. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_logs/basic_test_info.txt +0 -0
  101. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_logs/page_source.html +0 -0
  102. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_logs/screenshot.png +0 -0
  103. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/github_test.py +0 -0
  104. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/gui_test_runner.py +0 -0
  105. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/hack_the_planet.py +0 -0
  106. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/handle_alert_test.py +0 -0
  107. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/iframe_tests.py +0 -0
  108. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/locale_code_test.py +0 -0
  109. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/ReadMe.md +0 -0
  110. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/__init__.py +0 -0
  111. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/basic_masterqa_test_0.py +0 -0
  112. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/masterqa_test_1.py +0 -0
  113. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/pytest.ini +0 -0
  114. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/__init__.py +0 -0
  115. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/ReadMe.md +0 -0
  116. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/__init__.py +0 -0
  117. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/example_spec.js +0 -0
  118. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/example_test.py +0 -0
  119. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/input_spec.js +0 -0
  120. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/input_test.py +0 -0
  121. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/mat_paginator_spec.js +0 -0
  122. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/mat_paginator_test.py +0 -0
  123. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/ReadMe.md +0 -0
  124. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/__init__.py +0 -0
  125. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
  126. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
  127. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/messy_raw.py +0 -0
  128. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/pytest.ini +0 -0
  129. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/refined_raw.py +0 -0
  130. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/simple_sbase.py +0 -0
  131. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/my_first_test.py +0 -0
  132. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/nth_child_test.py +0 -0
  133. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/__init__.py +0 -0
  134. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/demo_page.html +0 -0
  135. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/load_html_test.py +0 -0
  136. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/test_demo_page.py +0 -0
  137. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/test_handle_alerts.py +0 -0
  138. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/test_request_fixture.py +0 -0
  139. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/test_user_agent.py +0 -0
  140. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/old_wordle_script.py +0 -0
  141. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/parameterized_test.py +0 -0
  142. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/performance_test.py +0 -0
  143. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/ReadMe.md +0 -0
  144. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/core_presentation.py +0 -0
  145. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/edge_presentation.py +0 -0
  146. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/fundamentals.py +0 -0
  147. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/my_presentation.py +0 -0
  148. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/py_virtual_envs.py +0 -0
  149. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/proxy_test.py +0 -0
  150. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/pytest.ini +0 -0
  151. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/rate_limiting_test.py +0 -0
  152. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_call.py +0 -0
  153. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_driver_context.py +0 -0
  154. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_file_call.py +0 -0
  155. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_main_call.py +0 -0
  156. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_parameter_script.py +0 -0
  157. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_sb.py +0 -0
  158. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_test_scripts.py +0 -0
  159. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_uc_mode.py +0 -0
  160. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/setup.cfg +0 -0
  161. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/shadow_root_test.py +0 -0
  162. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/swag_labs_user_tests.py +0 -0
  163. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_apple_site.py +0 -0
  164. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_assert_elements.py +0 -0
  165. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_calculator.py +0 -0
  166. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_canvas.py +0 -0
  167. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_checkboxes.py +0 -0
  168. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_chinese_pdf.py +0 -0
  169. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_chromedriver.py +0 -0
  170. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_coffee_cart.py +0 -0
  171. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_console_logging.py +0 -0
  172. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_contains_selector.py +0 -0
  173. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_cycle_elements.py +0 -0
  174. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_decryption.py +0 -0
  175. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_deferred_asserts.py +0 -0
  176. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_demo_site.py +0 -0
  177. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_detect_404s.py +0 -0
  178. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_docs_site.py +0 -0
  179. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_double_click.py +0 -0
  180. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_download_files.py +0 -0
  181. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_download_images.py +0 -0
  182. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_drag_and_drop.py +0 -0
  183. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_error_page.py +0 -0
  184. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_event_firing.py +0 -0
  185. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_fail.py +0 -0
  186. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_geolocation.py +0 -0
  187. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_get_coffee.py +0 -0
  188. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_get_locale_code.py +0 -0
  189. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_get_pdf_text.py +0 -0
  190. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_get_user_agent.py +0 -0
  191. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_hack_search.py +0 -0
  192. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_image_saving.py +0 -0
  193. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_inspect_html.py +0 -0
  194. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_login.py +0 -0
  195. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_markers.py +0 -0
  196. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_mfa_login.py +0 -0
  197. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_multiple_drivers.py +0 -0
  198. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_null.py +0 -0
  199. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_override_driver.py +0 -0
  200. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_override_sb_fixture.py +0 -0
  201. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_parse_soup.py +0 -0
  202. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_pdf_asserts.py +0 -0
  203. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_pytest_parametrize.py +0 -0
  204. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_repeat_tests.py +0 -0
  205. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_request_sb_fixture.py +0 -0
  206. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_save_screenshots.py +0 -0
  207. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_sb_fixture.py +0 -0
  208. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_scrape_bing.py +0 -0
  209. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_select_options.py +0 -0
  210. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_shadow_dom.py +0 -0
  211. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_show_file_choosers.py +0 -0
  212. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_skype_site.py +0 -0
  213. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_suite.py +0 -0
  214. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_swag_labs.py +0 -0
  215. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_tinymce.py +0 -0
  216. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_todomvc.py +0 -0
  217. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_url_asserts.py +0 -0
  218. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_usefixtures.py +0 -0
  219. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_verify_chromedriver.py +0 -0
  220. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_window_switching.py +0 -0
  221. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_xfail.py +0 -0
  222. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_xkcd.py +0 -0
  223. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/time_limit_test.py +0 -0
  224. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/ReadMe.md +0 -0
  225. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/bootstrap_google_tour.py +0 -0
  226. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
  227. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/driverjs_maps_tour.py +0 -0
  228. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/google_tour.py +0 -0
  229. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/hopscotch_google_tour.py +0 -0
  230. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/introjs_google_tour.py +0 -0
  231. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/maps_introjs_tour.py +0 -0
  232. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/octocat_tour.py +0 -0
  233. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/shepherd_google_tour.py +0 -0
  234. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/xkcd_tour.py +0 -0
  235. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/ReadMe.md +0 -0
  236. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/chinese_test_1.py +0 -0
  237. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/dutch_test_1.py +0 -0
  238. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/english_test_1.py +0 -0
  239. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/french_test_1.py +0 -0
  240. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/italian_test_1.py +0 -0
  241. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/japanese_test_1.py +0 -0
  242. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/korean_test_1.py +0 -0
  243. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/portuguese_test_1.py +0 -0
  244. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/pytest.ini +0 -0
  245. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/russian_test_1.py +0 -0
  246. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/spanish_test_1.py +0 -0
  247. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/uc_cdp_events.py +0 -0
  248. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/unit_tests/ReadMe.md +0 -0
  249. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/unit_tests/verify_framework.py +0 -0
  250. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/upgrade_chromedriver.py +0 -0
  251. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/upload_file_test.py +0 -0
  252. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/user_agent_test.py +0 -0
  253. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/verify_undetected.py +0 -0
  254. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/ReadMe.md +0 -0
  255. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/__init__.py +0 -0
  256. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
  257. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
  258. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
  259. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
  260. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
  261. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
  262. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/layout_test.py +0 -0
  263. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/python_home_test.py +0 -0
  264. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/test_layout_fail.py +0 -0
  265. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/xkcd_visual_test.py +0 -0
  266. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/wordle_test.py +0 -0
  267. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/xpath_test.py +0 -0
  268. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/youtube_search_test.py +0 -0
  269. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/ReadMe.md +0 -0
  270. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/behave_gui.md +0 -0
  271. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/case_plans.md +0 -0
  272. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/chinese.md +0 -0
  273. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/commander.md +0 -0
  274. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/customizing_test_runs.md +0 -0
  275. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/demo_mode.md +0 -0
  276. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/desired_capabilities.md +0 -0
  277. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/features_list.md +0 -0
  278. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/handling_iframes.md +0 -0
  279. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/happy_customers.md +0 -0
  280. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/hidden_files_info.md +0 -0
  281. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/how_it_works.md +0 -0
  282. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/html_inspector.md +0 -0
  283. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/install.md +0 -0
  284. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/install_python_pip_git.md +0 -0
  285. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/js_package_manager.md +0 -0
  286. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/locale_codes.md +0 -0
  287. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/method_summary.md +0 -0
  288. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/mobile_testing.md +0 -0
  289. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/mysql_installation.md +0 -0
  290. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/recorder_mode.md +0 -0
  291. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/shadow_dom.md +0 -0
  292. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/syntax_formats.md +0 -0
  293. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/thank_you.md +0 -0
  294. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/translations.md +0 -0
  295. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/useful_grep_commands.md +0 -0
  296. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/using_safari_driver.md +0 -0
  297. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/verify_webdriver.md +0 -0
  298. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/virtualenv_instructions.md +0 -0
  299. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/webdriver_installation.md +0 -0
  300. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/install.sh +0 -0
  301. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/__init__.py +0 -0
  302. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
  303. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/azure/jenkins/ReadMe.md +0 -0
  304. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/ReadMe.md +0 -0
  305. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/behave.ini +0 -0
  306. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/__init__.py +0 -0
  307. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/behave.ini +0 -0
  308. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/calculator.feature +0 -0
  309. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/environment.py +0 -0
  310. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/fail_page.feature +0 -0
  311. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/realworld.feature +0 -0
  312. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/__init__.py +0 -0
  313. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/calculator.py +0 -0
  314. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/fail_page.py +0 -0
  315. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/real_world.py +0 -0
  316. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/swag_labs.py +0 -0
  317. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/swag_labs.feature +0 -0
  318. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/brython/ReadMe.md +0 -0
  319. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/brython/index.html +0 -0
  320. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/brython/index.py +0 -0
  321. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/brython/library.html +0 -0
  322. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/docker/docker-entrypoint.sh +0 -0
  323. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
  324. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/github/ReadMe.md +0 -0
  325. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/github/workflows/ReadMe.md +0 -0
  326. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/github/workflows/extras.md +0 -0
  327. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/google_cloud/ReadMe.md +0 -0
  328. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/katalon/ReadMe.md +0 -0
  329. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/Linuxfile.sh +0 -0
  330. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/ReadMe.md +0 -0
  331. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/Xvfb_launcher.sh +0 -0
  332. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/jenkins_permissions.sh +0 -0
  333. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/tomcat_permissions.sh +0 -0
  334. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/ReadMe.md +0 -0
  335. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/__init__.py +0 -0
  336. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/index.html +0 -0
  337. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/my_first_test.py +0 -0
  338. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/npm-shrinkwrap.json +0 -0
  339. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/package.json +0 -0
  340. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/server.js +0 -0
  341. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/test_demo_site.py +0 -0
  342. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/selenium_grid/ReadMe.md +0 -0
  343. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/selenium_ide/ReadMe.md +0 -0
  344. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs.yml +0 -0
  345. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/ReadMe.txt +0 -0
  346. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/docs_instructions.txt +0 -0
  347. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/dash_pie.png +0 -0
  348. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/dash_pie_2.png +0 -0
  349. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/dash_pie_3.png +0 -0
  350. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/favicon.ico +0 -0
  351. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/grad_logo.png +0 -0
  352. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/green_icon.png +0 -0
  353. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/green_logo.png +0 -0
  354. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/green_logo2.png +0 -0
  355. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/green_logo3.png +0 -0
  356. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo3.png +0 -0
  357. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo3a.png +0 -0
  358. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo3b.png +0 -0
  359. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo3c.png +0 -0
  360. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo4.png +0 -0
  361. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo5.png +0 -0
  362. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo6.png +0 -0
  363. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo7.png +0 -0
  364. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/sb_icon.png +0 -0
  365. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/sb_logo_10.png +0 -0
  366. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/sb_logo_7.png +0 -0
  367. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/side_by_side.png +0 -0
  368. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_facebook.svg +0 -0
  369. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_github.svg +0 -0
  370. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_gitter.svg +0 -0
  371. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_instagram.svg +0 -0
  372. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_twitter.svg +0 -0
  373. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/index.txt +0 -0
  374. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/prepare.py +0 -0
  375. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/pytest.ini +0 -0
  376. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/sbase/ReadMe.txt +0 -0
  377. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/sbase/__init__.py +0 -0
  378. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/sbase/__main__.py +0 -0
  379. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/sbase/steps.py +0 -0
  380. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/ReadMe.md +0 -0
  381. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/__init__.py +0 -0
  382. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/__main__.py +0 -0
  383. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/behave/__init__.py +0 -0
  384. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/behave/behave_helper.py +0 -0
  385. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/behave/behave_sb.py +0 -0
  386. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/behave/steps.py +0 -0
  387. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/ReadMe.md +0 -0
  388. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/__init__.py +0 -0
  389. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/decorators.py +0 -0
  390. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/encryption.py +0 -0
  391. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/exceptions.py +0 -0
  392. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/obfuscate.py +0 -0
  393. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/unobfuscate.py +0 -0
  394. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/config/__init__.py +0 -0
  395. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/config/ad_block_list.py +0 -0
  396. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/config/proxy_list.py +0 -0
  397. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/config/settings.py +0 -0
  398. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/ReadMe.md +0 -0
  399. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/__init__.py +0 -0
  400. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/logo_helper.py +0 -0
  401. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/rich_helper.py +0 -0
  402. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/run.py +0 -0
  403. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  404. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  405. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_commander.py +0 -0
  406. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_install.py +0 -0
  407. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  408. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  409. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  410. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  411. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  412. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  413. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_print.py +0 -0
  414. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  415. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/__init__.py +0 -0
  416. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/application_manager.py +0 -0
  417. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/browser_launcher.py +0 -0
  418. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/capabilities_parser.py +0 -0
  419. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/colored_traceback.py +0 -0
  420. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/create_db_tables.sql +0 -0
  421. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/detect_b_ver.py +0 -0
  422. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/download_helper.py +0 -0
  423. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/encoded_images.py +0 -0
  424. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/jqc_helper.py +0 -0
  425. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/log_helper.py +0 -0
  426. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/mysql.py +0 -0
  427. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/proxy_helper.py +0 -0
  428. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/recorder_helper.py +0 -0
  429. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/report_helper.py +0 -0
  430. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/s3_manager.py +0 -0
  431. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/sb_driver.py +0 -0
  432. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/session_helper.py +0 -0
  433. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/settings_parser.py +0 -0
  434. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/style_sheet.py +0 -0
  435. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/testcase_manager.py +0 -0
  436. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/tour_helper.py +0 -0
  437. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/visual_helper.py +0 -0
  438. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/drivers/ReadMe.md +0 -0
  439. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/drivers/__init__.py +0 -0
  440. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/ReadMe.md +0 -0
  441. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/__init__.py +0 -0
  442. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/ad_block.zip +0 -0
  443. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/disable_csp.zip +0 -0
  444. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/recorder.zip +0 -0
  445. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/sbase_ext.zip +0 -0
  446. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/__init__.py +0 -0
  447. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/constants.py +0 -0
  448. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  449. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/errors.py +0 -0
  450. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/js_utils.py +0 -0
  451. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/page_actions.py +0 -0
  452. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/page_utils.py +0 -0
  453. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/shared_utils.py +0 -0
  454. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/unittest_helper.py +0 -0
  455. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/words.py +0 -0
  456. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  457. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/js_code/__init__.py +0 -0
  458. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/js_code/active_css_js.py +0 -0
  459. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/js_code/live_js.py +0 -0
  460. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/js_code/recorder_js.py +0 -0
  461. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/masterqa/ReadMe.md +0 -0
  462. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/masterqa/__init__.py +0 -0
  463. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/masterqa/master_qa.py +0 -0
  464. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/__init__.py +0 -0
  465. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/base_plugin.py +0 -0
  466. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/basic_test_info.py +0 -0
  467. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  468. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/driver_manager.py +0 -0
  469. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/page_source.py +0 -0
  470. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/pytest_plugin.py +0 -0
  471. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  472. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/sb_manager.py +0 -0
  473. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/screen_shots.py +0 -0
  474. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/selenium_plugin.py +0 -0
  475. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/resources/ReadMe.md +0 -0
  476. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/resources/__init__.py +0 -0
  477. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/resources/favicon.ico +0 -0
  478. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/__init__.py +0 -0
  479. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/chinese.py +0 -0
  480. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/dutch.py +0 -0
  481. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/french.py +0 -0
  482. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/italian.py +0 -0
  483. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/japanese.py +0 -0
  484. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/korean.py +0 -0
  485. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/master_dict.py +0 -0
  486. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/portuguese.py +0 -0
  487. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/russian.py +0 -0
  488. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/spanish.py +0 -0
  489. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/translator.py +0 -0
  490. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/__init__.py +0 -0
  491. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/cdp.py +0 -0
  492. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/dprocess.py +0 -0
  493. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/options.py +0 -0
  494. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/patcher.py +0 -0
  495. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/reactor.py +0 -0
  496. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/__init__.py +0 -0
  497. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
  498. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  499. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  500. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  501. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  502. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  503. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  504. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  505. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  506. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  507. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  508. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  509. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
  510. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  511. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  512. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/dependency_links.txt +0 -0
  513. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/entry_points.txt +0 -0
  514. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/top_level.txt +0 -0
  515. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/setup.cfg +0 -0
  516. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/virtualenv_install.sh +0 -0
  517. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/win_install.bat +0 -0
  518. {seleniumbase-4.25.2 → seleniumbase-4.25.4}/win_virtualenv.bat +0 -0
@@ -1,13 +1,31 @@
1
1
  # SeleniumBase Docker Image
2
- FROM ubuntu:18.04
2
+ FROM ubuntu:22.04
3
3
 
4
- #=======================================
5
- # Install Python and Basic Python Tools
6
- #=======================================
7
- RUN apt-get -o Acquire::Check-Valid-Until=false -o Acquire::Check-Date=false update
8
- RUN apt-get install -y python3 python3-pip python3-setuptools python3-dev python-distribute
9
- RUN alias python=python3
10
- RUN echo "alias python=python3" >> ~/.bashrc
4
+ #============================
5
+ # Install Linux Dependencies
6
+ #============================
7
+ RUN apt-get update && apt-get install -y \
8
+ fonts-liberation \
9
+ libasound2 \
10
+ libatk-bridge2.0-0 \
11
+ libatk1.0-0 \
12
+ libatspi2.0-0 \
13
+ libcups2 \
14
+ libdbus-1-3 \
15
+ libdrm2 \
16
+ libgbm1 \
17
+ libgtk-3-0 \
18
+ libnspr4 \
19
+ libnss3 \
20
+ libwayland-client0 \
21
+ libxcomposite1 \
22
+ libxdamage1 \
23
+ libxfixes3 \
24
+ libxkbcommon0 \
25
+ libxrandr2 \
26
+ xdg-utils \
27
+ libu2f-udev \
28
+ libvulkan1
11
29
 
12
30
  #=================================
13
31
  # Install Bash Command Line Tools
@@ -17,8 +35,6 @@ RUN apt-get -qy --no-install-recommends install \
17
35
  unzip \
18
36
  wget \
19
37
  curl \
20
- libxi6 \
21
- libgconf-2-4 \
22
38
  vim \
23
39
  xvfb \
24
40
  && rm -rf /var/lib/apt/lists/*
@@ -26,24 +42,17 @@ RUN apt-get -qy --no-install-recommends install \
26
42
  #================
27
43
  # Install Chrome
28
44
  #================
29
- RUN curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
30
- echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list && \
31
- apt-get -yqq update && \
32
- apt-get -yqq install google-chrome-stable && \
33
- rm -rf /var/lib/apt/lists/*
45
+ RUN curl -LO https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
46
+ RUN apt-get install -y ./google-chrome-stable_current_amd64.deb
47
+ RUN rm google-chrome-stable_current_amd64.deb
34
48
 
35
- #=================
36
- # Install Firefox
37
- #=================
38
- RUN apt-get -qy --no-install-recommends install \
39
- $(apt-cache depends firefox | grep Depends | sed "s/.*ends:\ //" | tr '\n' ' ') \
40
- && rm -rf /var/lib/apt/lists/* \
41
- && cd /tmp \
42
- && wget --no-check-certificate -O firefox-esr.tar.bz2 \
43
- 'https://download.mozilla.org/?product=firefox-esr-latest&os=linux64&lang=en-US' \
44
- && tar -xjf firefox-esr.tar.bz2 -C /opt/ \
45
- && ln -s /opt/firefox/firefox /usr/bin/firefox \
46
- && rm -f /tmp/firefox-esr.tar.bz2
49
+ #=======================================
50
+ # Install Python and Basic Python Tools
51
+ #=======================================
52
+ RUN apt-get -o Acquire::Check-Valid-Until=false -o Acquire::Check-Date=false update
53
+ RUN apt-get install -y python3 python3-pip python3-setuptools python3-dev python-distribute
54
+ RUN alias python=python3
55
+ RUN echo "alias python=python3" >> ~/.bashrc
47
56
 
48
57
  #===========================
49
58
  # Configure Virtual Display
@@ -58,9 +67,9 @@ RUN exec "$@"
58
67
  # Update Python Version
59
68
  #=======================
60
69
  RUN apt-get update -y
61
- RUN apt-get -qy --no-install-recommends install python3.8
70
+ RUN apt-get -qy --no-install-recommends install python3.10
62
71
  RUN rm /usr/bin/python3
63
- RUN ln -s python3.8 /usr/bin/python3
72
+ RUN ln -s python3.10 /usr/bin/python3
64
73
 
65
74
  #=============================================
66
75
  # Allow Special Characters in Python Programs
@@ -78,30 +87,20 @@ COPY integrations /SeleniumBase/integrations/
78
87
  COPY requirements.txt /SeleniumBase/requirements.txt
79
88
  COPY setup.py /SeleniumBase/setup.py
80
89
  RUN find . -name '*.pyc' -delete
81
- RUN find . -name __pycache__ -delete
82
90
  RUN pip3 install --upgrade pip setuptools wheel
83
91
  RUN cd /SeleniumBase && ls && pip3 install -r requirements.txt --upgrade
84
92
  RUN cd /SeleniumBase && pip3 install .
85
93
 
86
- #=====================
87
- # Download WebDrivers
88
- #=====================
89
- RUN wget https://github.com/mozilla/geckodriver/releases/download/v0.34.0/geckodriver-v0.34.0-linux64.tar.gz
90
- RUN tar -xvzf geckodriver-v0.34.0-linux64.tar.gz
91
- RUN chmod +x geckodriver
92
- RUN mv geckodriver /usr/local/bin/
93
- RUN wget https://chromedriver.storage.googleapis.com/72.0.3626.69/chromedriver_linux64.zip
94
- RUN unzip chromedriver_linux64.zip
95
- RUN chmod +x chromedriver
96
- RUN mv chromedriver /usr/local/bin/
94
+ #=======================
95
+ # Download chromedriver
96
+ #=======================
97
+ RUN sbase get chromedriver --path
97
98
 
98
99
  #==========================================
99
100
  # Create entrypoint and grab example tests
100
101
  #==========================================
101
102
  COPY integrations/docker/docker-entrypoint.sh /
102
- COPY integrations/docker/run_docker_test_in_firefox.sh /
103
103
  COPY integrations/docker/run_docker_test_in_chrome.sh /
104
104
  RUN chmod +x *.sh
105
- COPY integrations/docker/docker_config.cfg /SeleniumBase/examples/
106
105
  ENTRYPOINT ["/docker-entrypoint.sh"]
107
106
  CMD ["/bin/bash"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.25.2
3
+ Version: 4.25.4
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
@@ -61,13 +61,13 @@ License-File: LICENSE
61
61
  Requires-Dist: pip>=24.0
62
62
  Requires-Dist: packaging>=24.0
63
63
  Requires-Dist: setuptools>=68.0.0; python_version < "3.8"
64
- Requires-Dist: setuptools>=69.2.0; python_version >= "3.8"
64
+ Requires-Dist: setuptools>=69.5.1; python_version >= "3.8"
65
65
  Requires-Dist: wheel>=0.42.0; python_version < "3.8"
66
66
  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
73
  Requires-Dist: typing-extensions>=4.11.0; python_version >= "3.8"
@@ -75,7 +75,7 @@ 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"
@@ -95,7 +95,7 @@ Requires-Dist: cssselect==1.2.0
95
95
  Requires-Dist: sortedcontainers==2.4.0
96
96
  Requires-Dist: fasteners==0.19
97
97
  Requires-Dist: execnet==2.0.2; python_version < "3.8"
98
- Requires-Dist: execnet==2.1.0; python_version >= "3.8"
98
+ Requires-Dist: execnet==2.1.1; python_version >= "3.8"
99
99
  Requires-Dist: iniconfig==2.0.0
100
100
  Requires-Dist: pluggy==1.2.0; python_version < "3.8"
101
101
  Requires-Dist: pluggy==1.4.0; python_version >= "3.8"
@@ -181,7 +181,7 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
181
181
 
182
182
  <h1>SeleniumBase</h1>
183
183
 
184
- <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_i.png" alt="SeleniumBase" title="SeleniumBase" width="400" /></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>
185
185
 
186
186
 
187
187
  <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
@@ -274,7 +274,7 @@ pytest test_demo_site.py
274
274
 
275
275
  --------
276
276
 
277
- <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>
278
278
 
279
279
  <blockquote>
280
280
  <p dir="auto"><strong>Explore the README:</strong></p>
@@ -1017,7 +1017,7 @@ pytest test_suite.py test_image_saving.py --dashboard --rs --headless
1017
1017
  <a id="creating_visual_reports"></a>
1018
1018
  <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
1019
1019
 
1020
- <h3>🔵 Pytest Reports:</h3>
1020
+ <h3>🔵 <code>pytest</code> HTML Reports:</h3>
1021
1021
 
1022
1022
  ✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
1023
1023
 
@@ -1045,7 +1045,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
1045
1045
  pytest test_suite.py --junit-xml=report.xml
1046
1046
  ```
1047
1047
 
1048
- <h3>🔵 pynose Reports:</h3>
1048
+ <h3>🔵 <code>pynose</code> Reports:</h3>
1049
1049
 
1050
1050
  The ``--report`` option gives you a fancy report after your test suite completes.
1051
1051
 
@@ -1057,7 +1057,7 @@ pynose test_suite.py --report
1057
1057
 
1058
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.)
1059
1059
 
1060
- <h3>🔵 Behave Dashboard & Reports:</h3>
1060
+ <h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
1061
1061
 
1062
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.)
1063
1063
 
@@ -1129,7 +1129,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
1129
1129
  ```
1130
1130
 
1131
1131
 
1132
- <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>
1133
1133
 
1134
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.
1135
1135
 
@@ -1543,7 +1543,7 @@ pytest --reruns=1 --reruns-delay=1
1543
1543
 
1544
1544
  <p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
1545
1545
 
1546
- <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" title="SeleniumBase" width="240" /></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
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>
1548
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>
1549
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>
@@ -9,7 +9,7 @@
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/super_logo_i.png" alt="SeleniumBase" title="SeleniumBase" width="400" /></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
14
 
15
15
  <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
@@ -102,7 +102,7 @@ pytest test_demo_site.py
102
102
 
103
103
  --------
104
104
 
105
- <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>
106
106
 
107
107
  <blockquote>
108
108
  <p dir="auto"><strong>Explore the README:</strong></p>
@@ -845,7 +845,7 @@ pytest test_suite.py test_image_saving.py --dashboard --rs --headless
845
845
  <a id="creating_visual_reports"></a>
846
846
  <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
847
847
 
848
- <h3>🔵 Pytest Reports:</h3>
848
+ <h3>🔵 <code>pytest</code> HTML Reports:</h3>
849
849
 
850
850
  ✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
851
851
 
@@ -873,7 +873,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
873
873
  pytest test_suite.py --junit-xml=report.xml
874
874
  ```
875
875
 
876
- <h3>🔵 pynose Reports:</h3>
876
+ <h3>🔵 <code>pynose</code> Reports:</h3>
877
877
 
878
878
  The ``--report`` option gives you a fancy report after your test suite completes.
879
879
 
@@ -885,7 +885,7 @@ pynose test_suite.py --report
885
885
 
886
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.)
887
887
 
888
- <h3>🔵 Behave Dashboard & Reports:</h3>
888
+ <h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
889
889
 
890
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.)
891
891
 
@@ -957,7 +957,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
957
957
  ```
958
958
 
959
959
 
960
- <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>
961
961
 
962
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.
963
963
 
@@ -1371,7 +1371,7 @@ pytest --reruns=1 --reruns-delay=1
1371
1371
 
1372
1372
  <p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
1373
1373
 
1374
- <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" title="SeleniumBase" width="240" /></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
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>
1376
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>
1377
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>
@@ -1,56 +1,42 @@
1
1
  ## Docker setup instructions for SeleniumBase
2
2
 
3
- #### 1. Install the Docker Toolbox:
3
+ #### 1. Install the Docker Desktop:
4
4
 
5
5
  You can get that from here:
6
- https://www.docker.com/products/docker-toolbox
6
+ https://www.docker.com/products/docker-desktop/
7
7
 
8
8
  You might also want to install the Docker Engine:
9
- https://docs.docker.com/engine/installation/
9
+ https://docs.docker.com/engine/install/
10
10
 
11
- #### 2. Create your SeleniumBase Docker environment:
11
+ #### 2. Go to the SeleniumBase home directory on the command line, which is where [Dockerfile](https://github.com/seleniumbase/SeleniumBase/blob/master/Dockerfile) is located. (This assumes you've already cloned the SeleniumBase repo.)
12
12
 
13
- docker-machine create --driver virtualbox seleniumbase
14
-
15
- ##### (If your Docker environment ever goes down for any reason, you can bring it back up with a restart.)
16
-
17
- docker-machine restart seleniumbase
18
-
19
- #### 3. Configure your shell:
20
-
21
- eval "$(docker-machine env seleniumbase)"
22
-
23
- #### 4. Go to the SeleniumBase home directory on the command line, which is where [Dockerfile](https://github.com/seleniumbase/SeleniumBase/blob/master/Dockerfile) is located. (This assumes you've already cloned the SeleniumBase repo.)
24
-
25
- #### 5. Create your Docker image from your Dockerfile: (Get ready to wait awhile)
13
+ #### 3. Create your Docker image from your Dockerfile: (Get ready to wait awhile)
26
14
 
27
15
  docker build -t seleniumbase .
28
16
 
29
- If running on an Apple M1 Mac, use this instead:
17
+ If running on an Apple M1/M2 Mac, use this instead:
30
18
 
31
19
  docker build --platform linux/amd64 -t seleniumbase .
32
20
 
33
- #### 6. Run [the example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py) with Chrome inside your Docker: (Once the test completes after a few seconds, you'll automatically exit the Docker shell)
21
+ M1/M2 Mac users should also see [StackOverflow.com/a/76586216/7058266](https://stackoverflow.com/a/76586216/7058266) to **Enable Rosetta in Docker Desktop**. (Otherwise **you will** encounter errors like this when Chrome tries to launch: `"Chrome failed to start: crashed."`)
34
22
 
35
- docker run seleniumbase ./run_docker_test_in_chrome.sh
36
-
37
- #### 7. Now run the same test with Firefox inside your Docker:
23
+ #### 4. Run [the example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py) with Chrome inside your Docker: (Once the test completes after a few seconds, you'll automatically exit the Docker shell)
38
24
 
39
- docker run seleniumbase ./run_docker_test_in_firefox.sh
25
+ docker run seleniumbase ./run_docker_test_in_chrome.sh
40
26
 
41
- #### 8. You can also enter Docker and stay inside the shell:
27
+ #### 5. You can also enter Docker and stay inside the shell:
42
28
 
43
29
  docker run -i -t seleniumbase
44
30
 
45
- #### 9. Now you can run the example test from inside the Docker shell:
31
+ #### 6. Now you can run the example test from inside the Docker shell:
46
32
 
47
33
  ./run_docker_test_in_chrome.sh
48
34
 
49
- #### 10. When you're satisfied, you may exit the Docker shell:
35
+ #### 7. When you're satisfied, you may exit the Docker shell:
50
36
 
51
37
  exit
52
38
 
53
- #### 11. (Optional) Since Docker images and containers take up a lot of space, you may want to clean up your machine from time to time when they’re not being used:
39
+ #### 8. (Optional) Since Docker images and containers take up a lot of space, you may want to clean up your machine from time to time when they’re not being used:
54
40
 
55
41
  Details on that can be found here:
56
42
  http://stackoverflow.com/questions/17236796/how-to-remove-old-docker-containers
@@ -67,15 +53,10 @@ If you want to completely remove all of your Docker containers and images, use t
67
53
  docker rm -f $(docker ps -a -q)
68
54
  docker rmi -f $(docker images -q)
69
55
 
70
- Finally, if you want to wipe out your SeleniumBase Docker virtualbox, use these commands:
71
-
72
- docker-machine kill seleniumbase
73
- docker-machine rm seleniumbase
74
-
75
56
  For more cleanup commands, check out:
76
57
  https://codefresh.io/blog/everyday-hacks-docker/
77
58
 
78
- #### 13. (Optional) More reading on Docker can be found here:
59
+ #### 9. (Optional) More reading on Docker can be found here:
79
60
  * https://docs.docker.com
80
61
  * https://docs.docker.com/get-started/
81
62
  * https://docs.docker.com/docker-for-mac/
@@ -3,7 +3,7 @@
3
3
 
4
4
  regex>=2023.12.25
5
5
  pymdown-extensions>=10.7.1
6
- pipdeptree>=2.17.0
6
+ pipdeptree>=2.18.1
7
7
  python-dateutil>=2.8.2
8
8
  Markdown==3.6
9
9
  markdown2==2.4.13
@@ -1,13 +1,13 @@
1
1
  pip>=24.0
2
2
  packaging>=24.0
3
3
  setuptools>=68.0.0;python_version<"3.8"
4
- setuptools>=69.2.0;python_version>="3.8"
4
+ setuptools>=69.5.1;python_version>="3.8"
5
5
  wheel>=0.42.0;python_version<"3.8"
6
6
  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
13
  typing-extensions>=4.11.0;python_version>="3.8"
@@ -15,7 +15,7 @@ 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"
@@ -35,7 +35,7 @@ cssselect==1.2.0
35
35
  sortedcontainers==2.4.0
36
36
  fasteners==0.19
37
37
  execnet==2.0.2;python_version<"3.8"
38
- execnet==2.1.0;python_version>="3.8"
38
+ execnet==2.1.1;python_version>="3.8"
39
39
  iniconfig==2.0.0
40
40
  pluggy==1.2.0;python_version<"3.8"
41
41
  pluggy==1.4.0;python_version>="3.8"
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.25.2"
2
+ __version__ = "4.25.4"
@@ -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):
@@ -14,7 +14,7 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
14
14
  ):
15
15
  if driver and selector and by:
16
16
  delayed_click = False
17
- if tag_name == "span" or tag_name == "button" or tag_name == "div":
17
+ if tag_name in ["span", "button", "div", "a"]:
18
18
  delayed_click = True
19
19
  if delayed_click and ":contains" not in selector:
20
20
  selector = js_utils.convert_to_css_selector(selector, by)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seleniumbase
3
- Version: 4.25.2
3
+ Version: 4.25.4
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
@@ -61,13 +61,13 @@ License-File: LICENSE
61
61
  Requires-Dist: pip>=24.0
62
62
  Requires-Dist: packaging>=24.0
63
63
  Requires-Dist: setuptools>=68.0.0; python_version < "3.8"
64
- Requires-Dist: setuptools>=69.2.0; python_version >= "3.8"
64
+ Requires-Dist: setuptools>=69.5.1; python_version >= "3.8"
65
65
  Requires-Dist: wheel>=0.42.0; python_version < "3.8"
66
66
  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
73
  Requires-Dist: typing-extensions>=4.11.0; python_version >= "3.8"
@@ -75,7 +75,7 @@ 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"
@@ -95,7 +95,7 @@ Requires-Dist: cssselect==1.2.0
95
95
  Requires-Dist: sortedcontainers==2.4.0
96
96
  Requires-Dist: fasteners==0.19
97
97
  Requires-Dist: execnet==2.0.2; python_version < "3.8"
98
- Requires-Dist: execnet==2.1.0; python_version >= "3.8"
98
+ Requires-Dist: execnet==2.1.1; python_version >= "3.8"
99
99
  Requires-Dist: iniconfig==2.0.0
100
100
  Requires-Dist: pluggy==1.2.0; python_version < "3.8"
101
101
  Requires-Dist: pluggy==1.4.0; python_version >= "3.8"
@@ -181,7 +181,7 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
181
181
 
182
182
  <h1>SeleniumBase</h1>
183
183
 
184
- <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_i.png" alt="SeleniumBase" title="SeleniumBase" width="400" /></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>
185
185
 
186
186
 
187
187
  <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
@@ -274,7 +274,7 @@ pytest test_demo_site.py
274
274
 
275
275
  --------
276
276
 
277
- <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>
278
278
 
279
279
  <blockquote>
280
280
  <p dir="auto"><strong>Explore the README:</strong></p>
@@ -1017,7 +1017,7 @@ pytest test_suite.py test_image_saving.py --dashboard --rs --headless
1017
1017
  <a id="creating_visual_reports"></a>
1018
1018
  <h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
1019
1019
 
1020
- <h3>🔵 Pytest Reports:</h3>
1020
+ <h3>🔵 <code>pytest</code> HTML Reports:</h3>
1021
1021
 
1022
1022
  ✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
1023
1023
 
@@ -1045,7 +1045,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
1045
1045
  pytest test_suite.py --junit-xml=report.xml
1046
1046
  ```
1047
1047
 
1048
- <h3>🔵 pynose Reports:</h3>
1048
+ <h3>🔵 <code>pynose</code> Reports:</h3>
1049
1049
 
1050
1050
  The ``--report`` option gives you a fancy report after your test suite completes.
1051
1051
 
@@ -1057,7 +1057,7 @@ pynose test_suite.py --report
1057
1057
 
1058
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.)
1059
1059
 
1060
- <h3>🔵 Behave Dashboard & Reports:</h3>
1060
+ <h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
1061
1061
 
1062
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.)
1063
1063
 
@@ -1129,7 +1129,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
1129
1129
  ```
1130
1130
 
1131
1131
 
1132
- <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>
1133
1133
 
1134
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.
1135
1135
 
@@ -1543,7 +1543,7 @@ pytest --reruns=1 --reruns-delay=1
1543
1543
 
1544
1544
  <p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
1545
1545
 
1546
- <div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" title="SeleniumBase" width="240" /></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
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>
1548
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>
1549
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>
@@ -316,9 +316,7 @@ integrations/brython/index.py
316
316
  integrations/brython/library.html
317
317
  integrations/docker/ReadMe.md
318
318
  integrations/docker/docker-entrypoint.sh
319
- integrations/docker/docker_config.cfg
320
319
  integrations/docker/run_docker_test_in_chrome.sh
321
- integrations/docker/run_docker_test_in_firefox.sh
322
320
  integrations/github/ReadMe.md
323
321
  integrations/github/workflows/ReadMe.md
324
322
  integrations/github/workflows/extras.md
@@ -6,7 +6,7 @@ parse>=1.20.1
6
6
  parse-type>=0.6.2
7
7
  pyyaml>=6.0.1
8
8
  six==1.16.0
9
- idna==3.6
9
+ idna==3.7
10
10
  chardet==5.2.0
11
11
  charset-normalizer==3.3.2
12
12
  requests==2.31.0
@@ -62,14 +62,14 @@ markdown-it-py==2.2.0
62
62
  urllib3<2.3.0,>=1.26.18
63
63
 
64
64
  [:python_version >= "3.8"]
65
- setuptools>=69.2.0
65
+ setuptools>=69.5.1
66
66
  wheel>=0.43.0
67
- filelock>=3.13.3
67
+ filelock>=3.13.4
68
68
  platformdirs>=4.2.0
69
69
  typing-extensions>=4.11.0
70
70
  trio==0.25.0
71
71
  selenium==4.19.0
72
- execnet==2.1.0
72
+ execnet==2.1.1
73
73
  pluggy==1.4.0
74
74
  pytest==8.1.1
75
75
  pytest-metadata==3.1.1