seleniumbase 4.26.3__tar.gz → 4.26.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.
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/PKG-INFO +7 -5
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/README.md +1 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/raw_parameter_script.py +1 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/uc_cdp_events.py +1 -1
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/customizing_test_runs.md +1 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/method_summary.md +2 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/recorder_mode.md +2 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/requirements.txt +5 -5
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/requirements.txt +3 -2
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/ReadMe.md +1 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/run.py +2 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_mkrec.py +39 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_recorder.py +2 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/browser_launcher.py +31 -2
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/base_case.py +68 -4
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/pytest_plugin.py +12 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/selenium_plugin.py +12 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/undetected/webelement.py +1 -1
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase.egg-info/PKG-INFO +7 -5
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase.egg-info/requires.txt +5 -4
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/setup.py +5 -4
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/.github/Workflows.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/.github/workflows/pages.yml +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/.github/workflows/python-nightly-mac.yml +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/.github/workflows/python-nightly-ubuntu.yml +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/.github/workflows/python-nightly-windows.yml +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/.github/workflows/python-package.yml +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/.gitignore +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/CHANGELOG.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/CNAME +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/CODE_OF_CONDUCT.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/CONTRIBUTING.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/Dockerfile +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/LICENSE +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/MANIFEST.in +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/SECURITY.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/_config.yml +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/azure-pipelines.yml +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/basic_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/behave.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/behave.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/calculator.feature +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/environment.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/fail_page.feature +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/realworld.feature +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/steps/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/steps/calculator.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/steps/fail_page.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/steps/imported.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/behave_bdd/features/swag_labs.feature +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/base_test_case.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/boilerplate_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/classic_obj_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/page_objects.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/google_objects.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/google_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/sb_swag_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/swag_labs_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/samples/test_page_objects.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/boilerplates/sb_fixture_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/capabilities/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/capabilities/mac_cap_file.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/capabilities/sample_cap_file_BS.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/capabilities/sample_cap_file_SL.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/capabilities/selenoid_cap_file.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/capabilities/win10_cap_file.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/case_summary.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/chart_presentation.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/my_chart.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/pie_charts.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/test_area_chart.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/test_display_chart.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/test_line_chart.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/test_multi_series.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/chart_maker/test_save_chart.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/coffee_cart_tests.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/custom_settings.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/desktop_apps/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/desktop_apps/recorder.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/dialog_boxes/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/dialog_boxes/dialog_box_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/edge_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/example_config.cfg +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/example_logs/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/example_logs/basic_test_info.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/example_logs/page_source.html +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/example_logs/screenshot.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/github_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/gui_test_runner.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/hack_the_planet.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/handle_alert_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/iframe_tests.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/locale_code_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/master_qa/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/master_qa/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/master_qa/basic_masterqa_test_0.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/master_qa/masterqa_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/master_qa/pytest.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/protractor/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/protractor/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/protractor/example_spec.js +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/protractor/example_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/protractor/input_spec.js +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/protractor/input_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/protractor/mat_paginator_spec.js +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/protractor/mat_paginator_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/raw_selenium/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/raw_selenium/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/raw_selenium/messy_raw.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/raw_selenium/pytest.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/raw_selenium/refined_raw.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/migration/raw_selenium/simple_sbase.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/my_first_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/nth_child_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/offline_examples/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/offline_examples/demo_page.html +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/offline_examples/load_html_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/offline_examples/test_demo_page.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/offline_examples/test_handle_alerts.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/offline_examples/test_request_fixture.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/offline_examples/test_user_agent.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/old_wordle_script.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/parameterized_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/performance_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/presenter/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/presenter/core_presentation.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/presenter/edge_presentation.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/presenter/fundamentals.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/presenter/my_presentation.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/presenter/py_virtual_envs.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/proxy_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/pytest.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/rate_limiting_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/raw_call.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/raw_driver_context.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/raw_file_call.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/raw_main_call.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/raw_sb.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/raw_test_scripts.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/raw_uc_mode.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/setup.cfg +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/shadow_root_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/swag_labs_user_tests.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_apple_site.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_assert_elements.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_calculator.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_canvas.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_checkboxes.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_chinese_pdf.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_chromedriver.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_coffee_cart.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_console_logging.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_contains_selector.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_cycle_elements.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_decryption.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_deferred_asserts.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_demo_site.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_detect_404s.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_docs_site.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_double_click.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_download_files.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_download_images.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_drag_and_drop.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_error_page.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_event_firing.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_fail.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_geolocation.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_get_coffee.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_get_locale_code.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_get_pdf_text.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_get_user_agent.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_hack_search.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_image_saving.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_inspect_html.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_login.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_markers.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_mfa_login.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_multiple_drivers.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_null.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_override_driver.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_override_sb_fixture.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_parse_soup.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_pdf_asserts.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_pytest_parametrize.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_repeat_tests.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_request_sb_fixture.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_save_screenshots.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_sb_fixture.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_scrape_bing.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_select_options.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_shadow_dom.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_show_file_choosers.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_skype_site.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_suite.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_swag_labs.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_tinymce.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_todomvc.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_url_asserts.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_usefixtures.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_verify_chromedriver.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_window_switching.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_xfail.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/test_xkcd.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/time_limit_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/bootstrap_google_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/driverjs_maps_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/google_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/hopscotch_google_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/introjs_google_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/maps_introjs_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/octocat_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/shepherd_google_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/tour_examples/xkcd_tour.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/chinese_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/dutch_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/english_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/french_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/italian_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/japanese_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/korean_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/portuguese_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/pytest.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/russian_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/translations/spanish_test_1.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/unit_tests/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/unit_tests/verify_framework.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/upgrade_chromedriver.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/upload_file_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/user_agent_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/verify_undetected.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/layout_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/python_home_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/test_layout_fail.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/visual_testing/xkcd_visual_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/wordle_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/xpath_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/examples/youtube_search_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/behave_gui.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/case_plans.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/chinese.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/commander.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/demo_mode.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/desired_capabilities.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/features_list.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/handling_iframes.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/happy_customers.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/hidden_files_info.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/how_it_works.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/html_inspector.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/install.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/install_python_pip_git.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/js_package_manager.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/locale_codes.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/mobile_testing.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/mysql_installation.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/shadow_dom.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/syntax_formats.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/thank_you.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/translations.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/useful_grep_commands.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/using_safari_driver.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/verify_webdriver.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/virtualenv_instructions.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/help_docs/webdriver_installation.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/install.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/azure/jenkins/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/behave.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/behave.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/calculator.feature +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/environment.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/fail_page.feature +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/realworld.feature +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/steps/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/steps/calculator.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/steps/fail_page.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/steps/real_world.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/behave/features/swag_labs.feature +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/brython/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/brython/index.html +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/brython/index.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/brython/library.html +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/docker/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/docker/docker-entrypoint.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/github/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/github/workflows/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/github/workflows/extras.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/google_cloud/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/katalon/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/linux/Linuxfile.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/linux/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/linux/Xvfb_launcher.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/linux/jenkins_permissions.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/linux/tomcat_permissions.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/node_js/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/node_js/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/node_js/index.html +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/node_js/my_first_test.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/node_js/npm-shrinkwrap.json +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/node_js/package.json +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/node_js/server.js +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/node_js/test_demo_site.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/integrations/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs.yml +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/ReadMe.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/docs_instructions.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/dash_pie.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/dash_pie_2.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/dash_pie_3.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/favicon.ico +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/grad_logo.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/green_icon.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/green_logo.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/green_logo2.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/green_logo3.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/logo3.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/logo3a.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/logo3b.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/logo3c.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/logo4.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/logo5.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/logo6.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/logo7.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/sb_icon.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/sb_logo_10.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/sb_logo_7.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/side_by_side.png +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/social/share_facebook.svg +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/social/share_github.svg +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/social/share_gitter.svg +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/social/share_instagram.svg +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/img/social/share_twitter.svg +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/index.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/mkdocs_build/prepare.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/pytest.ini +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/sbase/ReadMe.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/sbase/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/sbase/__main__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/sbase/steps.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/common/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/drivers/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/extensions/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/masterqa/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/resources/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/resources/favicon.ico +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/setup.cfg +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/virtualenv_install.sh +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/win_install.bat +0 -0
- {seleniumbase-4.26.3 → seleniumbase-4.26.4}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.26.
|
3
|
+
Version: 4.26.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
|
@@ -117,7 +117,8 @@ Requires-Dist: behave==1.2.6
|
|
117
117
|
Requires-Dist: soupsieve==2.4.1; python_version < "3.8"
|
118
118
|
Requires-Dist: soupsieve==2.5; python_version >= "3.8"
|
119
119
|
Requires-Dist: beautifulsoup4==4.12.3
|
120
|
-
Requires-Dist: pygments==2.17.2
|
120
|
+
Requires-Dist: pygments==2.17.2; python_version < "3.8"
|
121
|
+
Requires-Dist: pygments==2.18.0; python_version >= "3.8"
|
121
122
|
Requires-Dist: pyreadline3==3.4.1; platform_system == "Windows"
|
122
123
|
Requires-Dist: tabcompleter==1.3.0
|
123
124
|
Requires-Dist: pdbp==1.5.0
|
@@ -133,7 +134,7 @@ Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
|
|
133
134
|
Requires-Dist: allure-behave>=2.13.5; extra == "allure"
|
134
135
|
Provides-Extra: coverage
|
135
136
|
Requires-Dist: coverage==7.2.7; python_version < "3.8" and extra == "coverage"
|
136
|
-
Requires-Dist: coverage>=7.5.
|
137
|
+
Requires-Dist: coverage>=7.5.1; python_version >= "3.8" and extra == "coverage"
|
137
138
|
Requires-Dist: pytest-cov==4.1.0; python_version < "3.8" and extra == "coverage"
|
138
139
|
Requires-Dist: pytest-cov>=5.0.0; python_version >= "3.8" and extra == "coverage"
|
139
140
|
Provides-Extra: flake8
|
@@ -151,7 +152,7 @@ Provides-Extra: pdfminer
|
|
151
152
|
Requires-Dist: pdfminer.six==20221105; python_version < "3.8" and extra == "pdfminer"
|
152
153
|
Requires-Dist: pdfminer.six==20231228; python_version >= "3.8" and extra == "pdfminer"
|
153
154
|
Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
|
154
|
-
Requires-Dist: cryptography==42.0.
|
155
|
+
Requires-Dist: cryptography==42.0.7; python_version >= "3.9" and extra == "pdfminer"
|
155
156
|
Requires-Dist: cffi==1.15.1; python_version < "3.8" and extra == "pdfminer"
|
156
157
|
Requires-Dist: cffi==1.16.0; python_version >= "3.8" and extra == "pdfminer"
|
157
158
|
Requires-Dist: pycparser==2.22; extra == "pdfminer"
|
@@ -161,7 +162,7 @@ Requires-Dist: Pillow>=10.3.0; python_version >= "3.8" and extra == "pillow"
|
|
161
162
|
Provides-Extra: pip-system-certs
|
162
163
|
Requires-Dist: pip-system-certs==4.0; platform_system == "Windows" and extra == "pip-system-certs"
|
163
164
|
Provides-Extra: proxy
|
164
|
-
Requires-Dist: proxy.py==2.4.
|
165
|
+
Requires-Dist: proxy.py==2.4.4; extra == "proxy"
|
165
166
|
Provides-Extra: psutil
|
166
167
|
Requires-Dist: psutil==5.9.8; extra == "psutil"
|
167
168
|
Provides-Extra: selenium-stealth
|
@@ -844,6 +845,7 @@ pytest test_coffee_cart.py --trace
|
|
844
845
|
--block-images # (Block images from loading during tests.)
|
845
846
|
--do-not-track # (Indicate to websites that you don't want to be tracked.)
|
846
847
|
--verify-delay=SECONDS # (The delay before MasterQA verification checks.)
|
848
|
+
--ee | --esc-end # (Lets the user end the current test via the ESC key.)
|
847
849
|
--recorder # (Enables the Recorder for turning browser actions into code.)
|
848
850
|
--rec-behave # (Same as Recorder Mode, but also generates behave-gherkin.)
|
849
851
|
--rec-sleep # (If the Recorder is enabled, also records self.sleep calls.)
|
@@ -671,6 +671,7 @@ pytest test_coffee_cart.py --trace
|
|
671
671
|
--block-images # (Block images from loading during tests.)
|
672
672
|
--do-not-track # (Indicate to websites that you don't want to be tracked.)
|
673
673
|
--verify-delay=SECONDS # (The delay before MasterQA verification checks.)
|
674
|
+
--ee | --esc-end # (Lets the user end the current test via the ESC key.)
|
674
675
|
--recorder # (Enables the Recorder for turning browser actions into code.)
|
675
676
|
--rec-behave # (Same as Recorder Mode, but also generates behave-gherkin.)
|
676
677
|
--rec-sleep # (If the Recorder is enabled, also records self.sleep calls.)
|
@@ -14,7 +14,7 @@ class CDPTests(BaseCase):
|
|
14
14
|
|
15
15
|
def click_turnstile_and_verify(sb):
|
16
16
|
sb.switch_to_frame("iframe")
|
17
|
-
sb.driver.uc_click("span
|
17
|
+
sb.driver.uc_click("span")
|
18
18
|
sb.assert_element("img#captcha-success", timeout=3)
|
19
19
|
sb.highlight("img#captcha-success", loops=8)
|
20
20
|
|
@@ -164,6 +164,7 @@ pytest my_first_test.py --settings-file=custom_settings.py
|
|
164
164
|
--block-images # (Block images from loading during tests.)
|
165
165
|
--do-not-track # (Indicate to websites that you don't want to be tracked.)
|
166
166
|
--verify-delay=SECONDS # (The delay before MasterQA verification checks.)
|
167
|
+
--ee | --esc-end # (Lets the user end the current test via the ESC key.)
|
167
168
|
--recorder # (Enables the Recorder for turning browser actions into code.)
|
168
169
|
--rec-behave # (Same as Recorder Mode, but also generates behave-gherkin.)
|
169
170
|
--rec-sleep # (If the Recorder is enabled, also records self.sleep calls.)
|
@@ -1046,6 +1046,8 @@ driver.uc_open_with_tab(url) # (New tab with default reconnect_time)
|
|
1046
1046
|
|
1047
1047
|
driver.uc_open_with_reconnect(url, reconnect_time=None) # (New tab)
|
1048
1048
|
|
1049
|
+
driver.uc_open_with_disconnect(url) # Open in new tab + disconnect()
|
1050
|
+
|
1049
1051
|
driver.reconnect(timeout) # disconnect() + sleep(timeout) + connect()
|
1050
1052
|
|
1051
1053
|
driver.disconnect() # Stops the webdriver service to prevent detection
|
@@ -121,6 +121,8 @@ pytest TEST_NAME.py --trace --rec -s
|
|
121
121
|
|
122
122
|
⏺️ Inside recorded tests, you might find the <code>self.open_if_not_url(URL)</code> method, which opens the URL given if the browser is not currently on that page. SeleniumBase uses this method in recorded scripts when the Recorder detects that a browser action changed the current URL. This method prevents an unnecessary page load and shows what page the test visited after a browser action.
|
123
123
|
|
124
|
+
⏺️ By launching the Recorder App with <code>sbase recorder --ee</code>, you can end the recording by pressing {<code>SHIFT</code>+<code>ESC</code>} instead of the usual way of ending the recording by typing <code>c</code> from a <code>breakpoint()</code> and pressing <code>Enter</code>. Those buttons don't need to be pressed at the same time, but <code>SHIFT</code> must be pressed directly before <code>ESC</code>.
|
125
|
+
|
124
126
|
--------
|
125
127
|
|
126
128
|
<div>To learn more about SeleniumBase, check out the Docs Site:</div>
|
@@ -1,26 +1,26 @@
|
|
1
1
|
# mkdocs dependencies for generating the seleniumbase.io website
|
2
2
|
# Minimum Python version: 3.8 (for generating docs only)
|
3
3
|
|
4
|
-
regex>=2024.
|
4
|
+
regex>=2024.5.10
|
5
5
|
pymdown-extensions>=10.8.1
|
6
|
-
pipdeptree>=2.
|
6
|
+
pipdeptree>=2.20.0
|
7
7
|
python-dateutil>=2.8.2
|
8
8
|
Markdown==3.6
|
9
9
|
markdown2==2.4.13
|
10
10
|
MarkupSafe==2.1.5
|
11
|
-
Jinja2==3.1.
|
11
|
+
Jinja2==3.1.4
|
12
12
|
click==8.1.7
|
13
13
|
ghp-import==2.1.0
|
14
14
|
watchdog==4.0.0
|
15
15
|
cairocffi==1.7.0
|
16
16
|
pathspec==0.12.1
|
17
|
-
Babel==2.
|
17
|
+
Babel==2.15.0
|
18
18
|
paginate==0.5.6
|
19
19
|
lxml==5.2.1
|
20
20
|
pyquery==2.0.0
|
21
21
|
readtime==3.0.0
|
22
22
|
mkdocs==1.6.0
|
23
|
-
mkdocs-material==9.5.
|
23
|
+
mkdocs-material==9.5.22
|
24
24
|
mkdocs-exclude-search==0.6.6
|
25
25
|
mkdocs-simple-hooks==0.1.5
|
26
26
|
mkdocs-material-extensions==1.3.1
|
@@ -57,7 +57,8 @@ behave==1.2.6
|
|
57
57
|
soupsieve==2.4.1;python_version<"3.8"
|
58
58
|
soupsieve==2.5;python_version>="3.8"
|
59
59
|
beautifulsoup4==4.12.3
|
60
|
-
pygments==2.17.2
|
60
|
+
pygments==2.17.2;python_version<"3.8"
|
61
|
+
pygments==2.18.0;python_version>="3.8"
|
61
62
|
pyreadline3==3.4.1;platform_system=="Windows"
|
62
63
|
tabcompleter==1.3.0
|
63
64
|
pdbp==1.5.0
|
@@ -72,7 +73,7 @@ rich==13.7.1
|
|
72
73
|
# ("pip install -r requirements.txt" also installs this, but "pip install -e ." won't.)
|
73
74
|
|
74
75
|
coverage==7.2.7;python_version<"3.8"
|
75
|
-
coverage>=7.5.
|
76
|
+
coverage>=7.5.1;python_version>="3.8"
|
76
77
|
pytest-cov==4.1.0;python_version<"3.8"
|
77
78
|
pytest-cov>=5.0.0;python_version>="3.8"
|
78
79
|
flake8==5.0.4;python_version<"3.9"
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.26.
|
2
|
+
__version__ = "4.26.4"
|
@@ -406,6 +406,7 @@ sbase codegen new_test.py --url=wikipedia.org
|
|
406
406
|
``--edge`` (Use Edge browser instead of Chrome.)
|
407
407
|
``--gui`` / ``--headed`` (Use headed mode on Linux.)
|
408
408
|
``--uc`` / ``--undetected`` (Use undetectable mode.)
|
409
|
+
``--ee`` (Use SHIFT + ESC to end the recording.)
|
409
410
|
``--overwrite`` (Overwrite file when it exists.)
|
410
411
|
``--behave`` (Also output Behave/Gherkin files.)
|
411
412
|
|
@@ -310,6 +310,7 @@ def show_mkrec_usage():
|
|
310
310
|
print(" --edge (Use Edge browser instead of Chrome.)")
|
311
311
|
print(" --gui / --headed (Use headed mode on Linux.)")
|
312
312
|
print(" --uc / --undetected (Use undetectable mode.)")
|
313
|
+
print(" --ee (Use SHIFT + ESC to end the recording.)")
|
313
314
|
print(" --overwrite (Overwrite file when it exists.)")
|
314
315
|
print(" --behave (Also output Behave/Gherkin files.)")
|
315
316
|
print(" Output:")
|
@@ -336,6 +337,7 @@ def show_codegen_usage():
|
|
336
337
|
print(" --edge (Use Edge browser instead of Chrome.)")
|
337
338
|
print(" --gui / --headed (Use headed mode on Linux.)")
|
338
339
|
print(" --uc / --undetected (Use undetectable mode.)")
|
340
|
+
print(" --ee (Use SHIFT + ESC to end the recording.)")
|
339
341
|
print(" --overwrite (Overwrite file when it exists.)")
|
340
342
|
print(" --behave (Also output Behave/Gherkin files.)")
|
341
343
|
print(" Output:")
|
@@ -93,6 +93,7 @@ def main():
|
|
93
93
|
invalid_cmd = None
|
94
94
|
use_edge = False
|
95
95
|
use_uc = False
|
96
|
+
esc_end = False
|
96
97
|
start_page = None
|
97
98
|
next_is_url = False
|
98
99
|
use_colors = True
|
@@ -145,6 +146,8 @@ def main():
|
|
145
146
|
help_me = True
|
146
147
|
elif option.lower() == "--edge":
|
147
148
|
use_edge = True
|
149
|
+
elif option.lower() == "--ee":
|
150
|
+
esc_end = True
|
148
151
|
elif option.lower() in ("--gui", "--headed"):
|
149
152
|
if "linux" in sys.platform:
|
150
153
|
force_gui = True
|
@@ -183,6 +186,42 @@ def main():
|
|
183
186
|
data.append(' # type "c", and press [Enter].')
|
184
187
|
data.append(" import pdb; pdb.set_trace()")
|
185
188
|
data.append("")
|
189
|
+
|
190
|
+
if esc_end:
|
191
|
+
msg = ">>> Use [SHIFT + ESC] in the browser to end recording!"
|
192
|
+
d2 = []
|
193
|
+
d2.append("from seleniumbase import BaseCase")
|
194
|
+
d2.append("")
|
195
|
+
d2.append("")
|
196
|
+
d2.append("class RecorderTest(BaseCase):")
|
197
|
+
d2.append(" def test_recording(self):")
|
198
|
+
d2.append(" if self.recorder_ext:")
|
199
|
+
d2.append(" print(")
|
200
|
+
d2.append(' "\\n\\n%s\\n"' % msg)
|
201
|
+
d2.append(" )")
|
202
|
+
d2.append(' script = self._get_rec_shift_esc_script()')
|
203
|
+
d2.append(' esc = "return document.sb_esc_end;"')
|
204
|
+
d2.append(" start_time = self.time()")
|
205
|
+
d2.append(" last_handles_num = self._get_num_handles()")
|
206
|
+
d2.append(" for i in range(1200):")
|
207
|
+
d2.append(" try:")
|
208
|
+
d2.append(" self.execute_script(script)")
|
209
|
+
d2.append(" handles_num = self._get_num_handles()")
|
210
|
+
d2.append(" if handles_num < 1:")
|
211
|
+
d2.append(" return")
|
212
|
+
d2.append(" elif handles_num != last_handles_num:")
|
213
|
+
d2.append(" self.switch_to_window(-1)")
|
214
|
+
d2.append(" last_handles_num = handles_num")
|
215
|
+
d2.append(' if self.execute_script(esc) == "yes":')
|
216
|
+
d2.append(" return")
|
217
|
+
d2.append(" elif self.time() - start_time > 600:")
|
218
|
+
d2.append(" return")
|
219
|
+
d2.append(" self.sleep(0.5)")
|
220
|
+
d2.append(" except Exception:")
|
221
|
+
d2.append(" return")
|
222
|
+
d2.append("")
|
223
|
+
data = d2
|
224
|
+
|
186
225
|
file = codecs.open(file_path, "w+", "utf-8")
|
187
226
|
file.writelines("\r\n".join(data))
|
188
227
|
file.close()
|
@@ -162,6 +162,8 @@ def do_recording(file_name, url, overwrite_enabled, use_chrome, window):
|
|
162
162
|
or "--undetectable" in command_args
|
163
163
|
):
|
164
164
|
command += " --uc"
|
165
|
+
if "--ee" in command_args:
|
166
|
+
command += " --ee"
|
165
167
|
command += add_on
|
166
168
|
poll = None
|
167
169
|
if sb_config.rec_subprocess_used:
|
@@ -443,8 +443,32 @@ def uc_open_with_reconnect(driver, url, reconnect_time=None):
|
|
443
443
|
js_utils.call_me_later(driver, script, 3)
|
444
444
|
time.sleep(0.007)
|
445
445
|
driver.close()
|
446
|
-
|
447
|
-
|
446
|
+
if reconnect_time == "disconnect":
|
447
|
+
driver.disconnect()
|
448
|
+
time.sleep(0.007)
|
449
|
+
else:
|
450
|
+
driver.reconnect(reconnect_time)
|
451
|
+
driver.switch_to.window(driver.window_handles[-1])
|
452
|
+
else:
|
453
|
+
driver.default_get(url) # The original one
|
454
|
+
return None
|
455
|
+
|
456
|
+
|
457
|
+
def uc_open_with_disconnect(driver, url):
|
458
|
+
"""Open a url and disconnect chromedriver.
|
459
|
+
Note: You can't perform Selenium actions again
|
460
|
+
until after you've called driver.connect()."""
|
461
|
+
if url.startswith("//"):
|
462
|
+
url = "https:" + url
|
463
|
+
elif ":" not in url:
|
464
|
+
url = "https://" + url
|
465
|
+
if (url.startswith("http:") or url.startswith("https:")):
|
466
|
+
script = 'window.open("%s","_blank");' % url
|
467
|
+
js_utils.call_me_later(driver, script, 3)
|
468
|
+
time.sleep(0.007)
|
469
|
+
driver.close()
|
470
|
+
driver.disconnect()
|
471
|
+
time.sleep(0.007)
|
448
472
|
else:
|
449
473
|
driver.default_get(url) # The original one
|
450
474
|
return None
|
@@ -3754,6 +3778,11 @@ def get_local_driver(
|
|
3754
3778
|
driver, *args, **kwargs
|
3755
3779
|
)
|
3756
3780
|
)
|
3781
|
+
driver.uc_open_with_disconnect = (
|
3782
|
+
lambda *args, **kwargs: uc_open_with_disconnect(
|
3783
|
+
driver, *args, **kwargs
|
3784
|
+
)
|
3785
|
+
)
|
3757
3786
|
driver.uc_click = lambda *args, **kwargs: uc_click(
|
3758
3787
|
driver, *args, **kwargs
|
3759
3788
|
)
|
@@ -114,6 +114,7 @@ class BaseCase(unittest.TestCase):
|
|
114
114
|
]
|
115
115
|
self.version_tuple = tuple(self.version_list)
|
116
116
|
self.version_info = self.version_tuple
|
117
|
+
self.time = time.time
|
117
118
|
self.__page_sources = []
|
118
119
|
self.__extra_actions = []
|
119
120
|
self.__js_start_time = 0
|
@@ -381,6 +382,7 @@ class BaseCase(unittest.TestCase):
|
|
381
382
|
self, selector, by="css selector", timeout=None, delay=0, scroll=True
|
382
383
|
):
|
383
384
|
self.__check_scope()
|
385
|
+
self.__skip_if_esc()
|
384
386
|
if not timeout:
|
385
387
|
timeout = settings.SMALL_TIMEOUT
|
386
388
|
if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT:
|
@@ -671,6 +673,7 @@ class BaseCase(unittest.TestCase):
|
|
671
673
|
self.__demo_mode_pause_if_active(tiny=True)
|
672
674
|
elif self.slow_mode:
|
673
675
|
self.__slow_mode_pause_if_active()
|
676
|
+
self.__set_esc_skip()
|
674
677
|
|
675
678
|
def slow_click(self, selector, by="css selector", timeout=None):
|
676
679
|
"""Similar to click(), but pauses for a brief moment before clicking.
|
@@ -1586,6 +1589,7 @@ class BaseCase(unittest.TestCase):
|
|
1586
1589
|
def click_link_text(self, link_text, timeout=None):
|
1587
1590
|
"""This method clicks link text on a page."""
|
1588
1591
|
self.__check_scope()
|
1592
|
+
self.__skip_if_esc()
|
1589
1593
|
if not timeout:
|
1590
1594
|
timeout = settings.SMALL_TIMEOUT
|
1591
1595
|
if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT:
|
@@ -4142,6 +4146,10 @@ class BaseCase(unittest.TestCase):
|
|
4142
4146
|
self.uc_open_with_tab = new_driver.uc_open_with_tab
|
4143
4147
|
if hasattr(new_driver, "uc_open_with_reconnect"):
|
4144
4148
|
self.uc_open_with_reconnect = new_driver.uc_open_with_reconnect
|
4149
|
+
if hasattr(new_driver, "uc_open_with_disconnect"):
|
4150
|
+
self.uc_open_with_disconnect = (
|
4151
|
+
new_driver.uc_open_with_disconnect
|
4152
|
+
)
|
4145
4153
|
if hasattr(new_driver, "reconnect"):
|
4146
4154
|
self.reconnect = new_driver.reconnect
|
4147
4155
|
if hasattr(new_driver, "disconnect"):
|
@@ -4404,11 +4412,35 @@ class BaseCase(unittest.TestCase):
|
|
4404
4412
|
for cookie_dict in cookies:
|
4405
4413
|
self.driver.add_cookie(cookie_dict)
|
4406
4414
|
|
4415
|
+
def __set_esc_skip(self):
|
4416
|
+
if hasattr(self, "esc_end") and self.esc_end:
|
4417
|
+
script = (
|
4418
|
+
"""document.onkeydown = function(evt) {
|
4419
|
+
evt = evt || window.event;
|
4420
|
+
var isEscape = false;
|
4421
|
+
if ("key" in evt) {
|
4422
|
+
isEscape = (evt.key === "Escape" || evt.key === "Esc");
|
4423
|
+
} else {
|
4424
|
+
isEscape = (evt.keyCode === 27);
|
4425
|
+
}
|
4426
|
+
if (isEscape) {
|
4427
|
+
document.sb_esc_end = 'yes';
|
4428
|
+
}
|
4429
|
+
};"""
|
4430
|
+
)
|
4431
|
+
self.execute_script(script)
|
4432
|
+
|
4433
|
+
def __skip_if_esc(self):
|
4434
|
+
if hasattr(self, "esc_end") and self.esc_end:
|
4435
|
+
if self.execute_script("return document.sb_esc_end;") == "yes":
|
4436
|
+
self.skip()
|
4437
|
+
|
4407
4438
|
def wait_for_ready_state_complete(self, timeout=None):
|
4408
4439
|
"""Waits for the "readyState" of the page to be "complete".
|
4409
4440
|
Returns True when the method completes."""
|
4410
4441
|
self.__check_scope()
|
4411
4442
|
self._check_browser()
|
4443
|
+
self.__skip_if_esc()
|
4412
4444
|
if not timeout:
|
4413
4445
|
timeout = settings.EXTREME_TIMEOUT
|
4414
4446
|
if self.timeout_multiplier and timeout == settings.EXTREME_TIMEOUT:
|
@@ -4427,6 +4459,7 @@ class BaseCase(unittest.TestCase):
|
|
4427
4459
|
time.sleep(0.01)
|
4428
4460
|
if self.undetectable:
|
4429
4461
|
time.sleep(0.035)
|
4462
|
+
self.__set_esc_skip()
|
4430
4463
|
return True
|
4431
4464
|
|
4432
4465
|
def wait_for_angularjs(self, timeout=None, **kwargs):
|
@@ -5775,6 +5808,7 @@ class BaseCase(unittest.TestCase):
|
|
5775
5808
|
scroll - the option to scroll to the element first (Default: True)
|
5776
5809
|
timeout - the time to wait for the element to appear """
|
5777
5810
|
self.__check_scope()
|
5811
|
+
self.__skip_if_esc()
|
5778
5812
|
if isinstance(selector, WebElement):
|
5779
5813
|
self.__highlight_element(selector, loops=loops, scroll=scroll)
|
5780
5814
|
return
|
@@ -6760,10 +6794,7 @@ class BaseCase(unittest.TestCase):
|
|
6760
6794
|
constants.PipInstall.FINDLOCK
|
6761
6795
|
)
|
6762
6796
|
with pip_find_lock:
|
6763
|
-
if (
|
6764
|
-
sys.version_info >= (3, 7)
|
6765
|
-
and sys.version_info < (3, 9)
|
6766
|
-
):
|
6797
|
+
if sys.version_info < (3, 9):
|
6767
6798
|
# Fix bug in newer cryptography for Python 3.7 and 3.8:
|
6768
6799
|
# "pyo3_runtime.PanicException: Python API call failed"
|
6769
6800
|
try:
|
@@ -8709,6 +8740,7 @@ class BaseCase(unittest.TestCase):
|
|
8709
8740
|
):
|
8710
8741
|
"""Same as self.wait_for_element()"""
|
8711
8742
|
self.__check_scope()
|
8743
|
+
self.__skip_if_esc()
|
8712
8744
|
if not timeout:
|
8713
8745
|
timeout = settings.LARGE_TIMEOUT
|
8714
8746
|
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
|
@@ -13478,6 +13510,7 @@ class BaseCase(unittest.TestCase):
|
|
13478
13510
|
self.slow_scroll_to(selector, by=by)
|
13479
13511
|
|
13480
13512
|
def __demo_mode_highlight_if_active(self, selector, by):
|
13513
|
+
self.__skip_if_esc()
|
13481
13514
|
if self.demo_mode:
|
13482
13515
|
# Includes self.slow_scroll_to(selector, by=by) by default
|
13483
13516
|
self.__highlight(selector, by=by)
|
@@ -14379,6 +14412,7 @@ class BaseCase(unittest.TestCase):
|
|
14379
14412
|
self.firefox_arg = sb_config.firefox_arg
|
14380
14413
|
self.firefox_pref = sb_config.firefox_pref
|
14381
14414
|
self.verify_delay = sb_config.verify_delay
|
14415
|
+
self.esc_end = sb_config.esc_end
|
14382
14416
|
self.recorder_mode = sb_config.recorder_mode
|
14383
14417
|
self.recorder_ext = sb_config.recorder_mode
|
14384
14418
|
self.rec_print = sb_config.rec_print
|
@@ -15698,6 +15732,31 @@ class BaseCase(unittest.TestCase):
|
|
15698
15732
|
else:
|
15699
15733
|
return None
|
15700
15734
|
|
15735
|
+
def _get_num_handles(self):
|
15736
|
+
return len(self.driver.window_handles)
|
15737
|
+
|
15738
|
+
def _get_rec_shift_esc_script(self):
|
15739
|
+
return (
|
15740
|
+
"""document.onkeydown = function(evt) {
|
15741
|
+
evt = evt || window.event;
|
15742
|
+
var isEscape = false;
|
15743
|
+
if ("key" in evt) {
|
15744
|
+
isEscape = (evt.key === "Escape" || evt.key === "Esc");
|
15745
|
+
last_key = evt.key;
|
15746
|
+
} else {
|
15747
|
+
isEscape = (evt.keyCode === 27);
|
15748
|
+
last_key = evt.keyCode;
|
15749
|
+
if (last_key === 16) {
|
15750
|
+
last_key = "Shift";
|
15751
|
+
}
|
15752
|
+
}
|
15753
|
+
if (isEscape && document.sb_last_key === "Shift") {
|
15754
|
+
document.sb_esc_end = "yes";
|
15755
|
+
}
|
15756
|
+
document.sb_last_key = last_key;
|
15757
|
+
};"""
|
15758
|
+
)
|
15759
|
+
|
15701
15760
|
def _addSkip(self, result, test_case, reason):
|
15702
15761
|
"""This method should NOT be called directly from tests."""
|
15703
15762
|
addSkip = getattr(result, 'addSkip', None)
|
@@ -15828,6 +15887,11 @@ class BaseCase(unittest.TestCase):
|
|
15828
15887
|
)
|
15829
15888
|
raise Exception(message)
|
15830
15889
|
# *** Start tearDown() officially ***
|
15890
|
+
if self.undetectable:
|
15891
|
+
try:
|
15892
|
+
self.driver.window_handles
|
15893
|
+
except urllib3.exceptions.MaxRetryError:
|
15894
|
+
self.driver.connect()
|
15831
15895
|
self.__slow_mode_pause_if_active()
|
15832
15896
|
has_exception = self.__has_exception()
|
15833
15897
|
sb_config._has_exception = has_exception
|
@@ -81,6 +81,7 @@ def pytest_addoption(parser):
|
|
81
81
|
--block-images (Block images from loading during tests.)
|
82
82
|
--do-not-track (Indicate to websites that you don't want to be tracked.)
|
83
83
|
--verify-delay=SECONDS (The delay before MasterQA verification checks.)
|
84
|
+
--ee / --esc-end (Lets the user end the current test via the ESC key.)
|
84
85
|
--recorder (Enables the Recorder for turning browser actions into code.)
|
85
86
|
--rec-behave (Same as Recorder Mode, but also generates behave-gherkin.)
|
86
87
|
--rec-sleep (If the Recorder is enabled, also records self.sleep calls.)
|
@@ -895,6 +896,16 @@ def pytest_addoption(parser):
|
|
895
896
|
help="""Setting this overrides the default wait time
|
896
897
|
before each MasterQA verification pop-up.""",
|
897
898
|
)
|
899
|
+
parser.addoption(
|
900
|
+
"--esc-end",
|
901
|
+
"--esc_end",
|
902
|
+
"--ee",
|
903
|
+
action="store_true",
|
904
|
+
dest="esc_end",
|
905
|
+
default=False,
|
906
|
+
help="""End the current test early via the ESC key.
|
907
|
+
The test will be marked as skipped.""",
|
908
|
+
)
|
898
909
|
parser.addoption(
|
899
910
|
"--recorder",
|
900
911
|
"--record",
|
@@ -1549,6 +1560,7 @@ def pytest_configure(config):
|
|
1549
1560
|
sb_config.block_images = config.getoption("block_images")
|
1550
1561
|
sb_config.do_not_track = config.getoption("do_not_track")
|
1551
1562
|
sb_config.verify_delay = config.getoption("verify_delay")
|
1563
|
+
sb_config.esc_end = config.getoption("esc_end")
|
1552
1564
|
sb_config.recorder_mode = config.getoption("recorder_mode")
|
1553
1565
|
sb_config.recorder_ext = config.getoption("recorder_mode") # Again
|
1554
1566
|
sb_config.rec_behave = config.getoption("rec_behave")
|
@@ -60,6 +60,7 @@ class SeleniumBrowser(Plugin):
|
|
60
60
|
--block-images (Block images from loading during tests.)
|
61
61
|
--do-not-track (Indicate to websites that you don't want to be tracked.)
|
62
62
|
--verify-delay=SECONDS (The delay before MasterQA verification checks.)
|
63
|
+
--ee / --esc-end (Lets the user end the current test via the ESC key.)
|
63
64
|
--recorder (Enables the Recorder for turning browser actions into code.)
|
64
65
|
--rec-behave (Same as Recorder Mode, but also generates behave-gherkin.)
|
65
66
|
--rec-sleep (If the Recorder is enabled, also records self.sleep calls.)
|
@@ -613,6 +614,16 @@ class SeleniumBrowser(Plugin):
|
|
613
614
|
help="""Setting this overrides the default wait time
|
614
615
|
before each MasterQA verification pop-up.""",
|
615
616
|
)
|
617
|
+
parser.addoption(
|
618
|
+
"--esc-end",
|
619
|
+
"--esc_end",
|
620
|
+
"--ee",
|
621
|
+
action="store_true",
|
622
|
+
dest="esc_end",
|
623
|
+
default=False,
|
624
|
+
help="""End the current test early via the ESC key.
|
625
|
+
The test will be marked as skipped.""",
|
626
|
+
)
|
616
627
|
parser.addoption(
|
617
628
|
"--recorder",
|
618
629
|
"--record",
|
@@ -1126,6 +1137,7 @@ class SeleniumBrowser(Plugin):
|
|
1126
1137
|
test.test.block_images = self.options.block_images
|
1127
1138
|
test.test.do_not_track = self.options.do_not_track
|
1128
1139
|
test.test.verify_delay = self.options.verify_delay # MasterQA
|
1140
|
+
test.test.esc_end = self.options.esc_end
|
1129
1141
|
test.test.recorder_mode = self.options.recorder_mode
|
1130
1142
|
test.test.recorder_ext = self.options.recorder_mode # Again
|
1131
1143
|
test.test.rec_behave = self.options.rec_behave
|
@@ -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 in ["span", "button", "div", "a"]:
|
17
|
+
if tag_name in ["span", "button", "div", "a", "b", "input"]:
|
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.26.
|
3
|
+
Version: 4.26.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
|
@@ -117,7 +117,8 @@ Requires-Dist: behave==1.2.6
|
|
117
117
|
Requires-Dist: soupsieve==2.4.1; python_version < "3.8"
|
118
118
|
Requires-Dist: soupsieve==2.5; python_version >= "3.8"
|
119
119
|
Requires-Dist: beautifulsoup4==4.12.3
|
120
|
-
Requires-Dist: pygments==2.17.2
|
120
|
+
Requires-Dist: pygments==2.17.2; python_version < "3.8"
|
121
|
+
Requires-Dist: pygments==2.18.0; python_version >= "3.8"
|
121
122
|
Requires-Dist: pyreadline3==3.4.1; platform_system == "Windows"
|
122
123
|
Requires-Dist: tabcompleter==1.3.0
|
123
124
|
Requires-Dist: pdbp==1.5.0
|
@@ -133,7 +134,7 @@ Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
|
|
133
134
|
Requires-Dist: allure-behave>=2.13.5; extra == "allure"
|
134
135
|
Provides-Extra: coverage
|
135
136
|
Requires-Dist: coverage==7.2.7; python_version < "3.8" and extra == "coverage"
|
136
|
-
Requires-Dist: coverage>=7.5.
|
137
|
+
Requires-Dist: coverage>=7.5.1; python_version >= "3.8" and extra == "coverage"
|
137
138
|
Requires-Dist: pytest-cov==4.1.0; python_version < "3.8" and extra == "coverage"
|
138
139
|
Requires-Dist: pytest-cov>=5.0.0; python_version >= "3.8" and extra == "coverage"
|
139
140
|
Provides-Extra: flake8
|
@@ -151,7 +152,7 @@ Provides-Extra: pdfminer
|
|
151
152
|
Requires-Dist: pdfminer.six==20221105; python_version < "3.8" and extra == "pdfminer"
|
152
153
|
Requires-Dist: pdfminer.six==20231228; python_version >= "3.8" and extra == "pdfminer"
|
153
154
|
Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
|
154
|
-
Requires-Dist: cryptography==42.0.
|
155
|
+
Requires-Dist: cryptography==42.0.7; python_version >= "3.9" and extra == "pdfminer"
|
155
156
|
Requires-Dist: cffi==1.15.1; python_version < "3.8" and extra == "pdfminer"
|
156
157
|
Requires-Dist: cffi==1.16.0; python_version >= "3.8" and extra == "pdfminer"
|
157
158
|
Requires-Dist: pycparser==2.22; extra == "pdfminer"
|
@@ -161,7 +162,7 @@ Requires-Dist: Pillow>=10.3.0; python_version >= "3.8" and extra == "pillow"
|
|
161
162
|
Provides-Extra: pip-system-certs
|
162
163
|
Requires-Dist: pip-system-certs==4.0; platform_system == "Windows" and extra == "pip-system-certs"
|
163
164
|
Provides-Extra: proxy
|
164
|
-
Requires-Dist: proxy.py==2.4.
|
165
|
+
Requires-Dist: proxy.py==2.4.4; extra == "proxy"
|
165
166
|
Provides-Extra: psutil
|
166
167
|
Requires-Dist: psutil==5.9.8; extra == "psutil"
|
167
168
|
Provides-Extra: selenium-stealth
|
@@ -844,6 +845,7 @@ pytest test_coffee_cart.py --trace
|
|
844
845
|
--block-images # (Block images from loading during tests.)
|
845
846
|
--do-not-track # (Indicate to websites that you don't want to be tracked.)
|
846
847
|
--verify-delay=SECONDS # (The delay before MasterQA verification checks.)
|
848
|
+
--ee | --esc-end # (Lets the user end the current test via the ESC key.)
|
847
849
|
--recorder # (Enables the Recorder for turning browser actions into code.)
|
848
850
|
--rec-behave # (Same as Recorder Mode, but also generates behave-gherkin.)
|
849
851
|
--rec-sleep # (If the Recorder is enabled, also records self.sleep calls.)
|
@@ -28,7 +28,6 @@ parameterized==0.9.0
|
|
28
28
|
sbvirtualdisplay==1.3.0
|
29
29
|
behave==1.2.6
|
30
30
|
beautifulsoup4==4.12.3
|
31
|
-
pygments==2.17.2
|
32
31
|
tabcompleter==1.3.0
|
33
32
|
pdbp==1.5.0
|
34
33
|
colorama==0.4.6
|
@@ -56,6 +55,7 @@ pytest-metadata==3.0.0
|
|
56
55
|
pytest-rerunfailures==13.0
|
57
56
|
pytest-xdist==3.5.0
|
58
57
|
soupsieve==2.4.1
|
58
|
+
pygments==2.17.2
|
59
59
|
markdown-it-py==2.2.0
|
60
60
|
|
61
61
|
[:python_version >= "3.10"]
|
@@ -76,6 +76,7 @@ pytest-metadata==3.1.1
|
|
76
76
|
pytest-rerunfailures==14.0
|
77
77
|
pytest-xdist==3.6.1
|
78
78
|
soupsieve==2.5
|
79
|
+
pygments==2.18.0
|
79
80
|
markdown-it-py==3.0.0
|
80
81
|
|
81
82
|
[allure]
|
@@ -90,7 +91,7 @@ coverage==7.2.7
|
|
90
91
|
pytest-cov==4.1.0
|
91
92
|
|
92
93
|
[coverage:python_version >= "3.8"]
|
93
|
-
coverage>=7.5.
|
94
|
+
coverage>=7.5.1
|
94
95
|
pytest-cov>=5.0.0
|
95
96
|
|
96
97
|
[flake8]
|
@@ -125,7 +126,7 @@ pdfminer.six==20231228
|
|
125
126
|
cffi==1.16.0
|
126
127
|
|
127
128
|
[pdfminer:python_version >= "3.9"]
|
128
|
-
cryptography==42.0.
|
129
|
+
cryptography==42.0.7
|
129
130
|
|
130
131
|
[pillow]
|
131
132
|
|
@@ -141,7 +142,7 @@ Pillow>=10.3.0
|
|
141
142
|
pip-system-certs==4.0
|
142
143
|
|
143
144
|
[proxy]
|
144
|
-
proxy.py==2.4.
|
145
|
+
proxy.py==2.4.4
|
145
146
|
|
146
147
|
[psutil]
|
147
148
|
psutil==5.9.8
|