seleniumbase 4.24.10__tar.gz → 4.24.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/PKG-INFO +2 -2
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_download_files.py +1 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/uc_cdp_events.py +3 -3
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/requirements.txt +1 -1
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/requirements.txt +1 -1
- seleniumbase-4.24.12/seleniumbase/__version__.py +2 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/config/proxy_list.py +3 -3
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/browser_launcher.py +21 -12
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/detect_b_ver.py +7 -8
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/base_case.py +10 -39
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/constants.py +1 -1
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/js_utils.py +39 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/webelement.py +10 -3
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/PKG-INFO +2 -2
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/requires.txt +1 -1
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/setup.py +1 -1
- seleniumbase-4.24.10/seleniumbase/__version__.py +0 -2
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/Workflows.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/pages.yml +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/python-nightly-mac.yml +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/python-nightly-ubuntu.yml +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/python-nightly-windows.yml +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.github/workflows/python-package.yml +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/.gitignore +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/CHANGELOG.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/CNAME +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/CODE_OF_CONDUCT.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/CONTRIBUTING.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/Dockerfile +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/LICENSE +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/MANIFEST.in +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/README.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/SECURITY.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/_config.yml +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/azure-pipelines.yml +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/basic_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/behave.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/behave.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/calculator.feature +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/environment.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/fail_page.feature +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/realworld.feature +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/calculator.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/fail_page.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/imported.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/swag_labs.feature +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/base_test_case.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/boilerplate_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/classic_obj_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/page_objects.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/google_objects.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/google_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/sb_swag_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/swag_labs_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/test_page_objects.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/sb_fixture_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/mac_cap_file.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/sample_cap_file_BS.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/sample_cap_file_SL.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/selenoid_cap_file.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/capabilities/win10_cap_file.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/case_summary.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/chart_presentation.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/my_chart.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/pie_charts.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_area_chart.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_display_chart.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_line_chart.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_multi_series.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/chart_maker/test_save_chart.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/coffee_cart_tests.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/custom_settings.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/desktop_apps/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/desktop_apps/recorder.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/dialog_boxes/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/dialog_boxes/dialog_box_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/edge_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_config.cfg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_logs/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_logs/basic_test_info.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_logs/page_source.html +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/example_logs/screenshot.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/github_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/gui_test_runner.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/hack_the_planet.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/handle_alert_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/iframe_tests.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/locale_code_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/basic_masterqa_test_0.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/masterqa_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/master_qa/pytest.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/example_spec.js +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/example_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/input_spec.js +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/input_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/mat_paginator_spec.js +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/protractor/mat_paginator_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/messy_raw.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/pytest.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/refined_raw.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/migration/raw_selenium/simple_sbase.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/my_first_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/nth_child_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/demo_page.html +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/load_html_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/test_demo_page.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/test_handle_alerts.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/test_request_fixture.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/offline_examples/test_user_agent.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/old_wordle_script.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/parameterized_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/performance_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/core_presentation.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/edge_presentation.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/fundamentals.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/my_presentation.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/presenter/py_virtual_envs.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/proxy_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/pytest.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/rate_limiting_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_call.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_driver_context.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_file_call.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_main_call.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_parameter_script.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_sb.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_test_scripts.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/raw_uc_mode.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/setup.cfg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/shadow_root_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/swag_labs_user_tests.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_apple_site.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_assert_elements.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_calculator.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_canvas.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_checkboxes.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_chinese_pdf.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_chromedriver.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_coffee_cart.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_console_logging.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_contains_selector.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_cycle_elements.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_decryption.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_deferred_asserts.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_demo_site.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_detect_404s.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_docs_site.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_double_click.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_download_images.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_drag_and_drop.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_error_page.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_event_firing.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_fail.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_geolocation.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_get_coffee.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_get_locale_code.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_get_pdf_text.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_get_user_agent.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_hack_search.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_image_saving.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_inspect_html.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_login.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_markers.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_mfa_login.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_multiple_drivers.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_null.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_override_driver.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_override_sb_fixture.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_parse_soup.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_pdf_asserts.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_pytest_parametrize.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_repeat_tests.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_request_sb_fixture.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_save_screenshots.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_sb_fixture.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_scrape_bing.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_select_options.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_shadow_dom.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_show_file_choosers.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_skype_site.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_suite.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_swag_labs.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_tinymce.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_todomvc.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_url_asserts.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_usefixtures.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_verify_chromedriver.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_window_switching.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_xfail.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/test_xkcd.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/time_limit_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/bootstrap_google_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/driverjs_maps_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/google_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/hopscotch_google_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/introjs_google_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/maps_introjs_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/octocat_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/shepherd_google_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/tour_examples/xkcd_tour.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/chinese_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/dutch_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/english_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/french_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/italian_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/japanese_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/korean_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/portuguese_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/pytest.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/russian_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/translations/spanish_test_1.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/unit_tests/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/unit_tests/verify_framework.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/upgrade_chromedriver.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/upload_file_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/user_agent_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/verify_undetected.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/layout_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/python_home_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/test_layout_fail.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/visual_testing/xkcd_visual_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/wordle_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/xpath_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/youtube_search_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/behave_gui.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/case_plans.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/chinese.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/commander.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/customizing_test_runs.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/demo_mode.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/desired_capabilities.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/features_list.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/handling_iframes.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/happy_customers.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/hidden_files_info.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/how_it_works.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/html_inspector.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/install.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/install_python_pip_git.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/js_package_manager.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/locale_codes.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/method_summary.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/mobile_testing.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/mysql_installation.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/recorder_mode.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/shadow_dom.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/syntax_formats.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/thank_you.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/translations.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/useful_grep_commands.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/using_safari_driver.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/verify_webdriver.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/virtualenv_instructions.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/help_docs/webdriver_installation.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/install.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/azure/jenkins/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/behave.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/behave.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/calculator.feature +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/environment.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/fail_page.feature +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/realworld.feature +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/calculator.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/fail_page.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/real_world.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/behave/features/swag_labs.feature +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/brython/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/brython/index.html +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/brython/index.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/brython/library.html +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/docker-entrypoint.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/docker_config.cfg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/docker/run_docker_test_in_firefox.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/github/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/github/workflows/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/github/workflows/extras.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/google_cloud/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/katalon/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/Linuxfile.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/Xvfb_launcher.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/jenkins_permissions.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/linux/tomcat_permissions.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/index.html +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/my_first_test.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/npm-shrinkwrap.json +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/package.json +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/server.js +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/node_js/test_demo_site.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/integrations/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs.yml +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/ReadMe.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/docs_instructions.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/dash_pie.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/dash_pie_2.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/dash_pie_3.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/favicon.ico +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/grad_logo.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/green_icon.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/green_logo.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/green_logo2.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/green_logo3.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo3.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo3a.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo3b.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo3c.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo4.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo5.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo6.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/logo7.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/sb_icon.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/sb_logo_10.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/sb_logo_7.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/side_by_side.png +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_facebook.svg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_github.svg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_gitter.svg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_instagram.svg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/img/social/share_twitter.svg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/index.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/mkdocs_build/prepare.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/pytest.ini +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/sbase/ReadMe.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/sbase/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/sbase/__main__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/sbase/steps.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/drivers/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/masterqa/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/resources/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/resources/favicon.ico +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/setup.cfg +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/virtualenv_install.sh +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/win_install.bat +0 -0
- {seleniumbase-4.24.10 → seleniumbase-4.24.12}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.24.
|
3
|
+
Version: 4.24.12
|
4
4
|
Summary: A complete web automation framework for end-to-end testing.
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
6
6
|
Author: Michael Mintz
|
@@ -86,7 +86,7 @@ Requires-Dist: sniffio==1.3.1
|
|
86
86
|
Requires-Dist: h11==0.14.0
|
87
87
|
Requires-Dist: outcome==1.3.0.post0
|
88
88
|
Requires-Dist: trio==0.22.2; python_version < "3.8"
|
89
|
-
Requires-Dist: trio==0.
|
89
|
+
Requires-Dist: trio==0.25.0; python_version >= "3.8"
|
90
90
|
Requires-Dist: trio-websocket==0.11.1
|
91
91
|
Requires-Dist: wsproto==1.2.0
|
92
92
|
Requires-Dist: selenium==4.11.2; python_version < "3.8"
|
@@ -13,15 +13,15 @@ class CDPTests(BaseCase):
|
|
13
13
|
)
|
14
14
|
|
15
15
|
def click_turnstile_and_verify(sb):
|
16
|
-
sb.
|
16
|
+
sb.switch_to_frame("iframe")
|
17
17
|
sb.driver.uc_click("span.mark")
|
18
|
-
sb.assert_element("img#captcha-success", timeout=3
|
18
|
+
sb.assert_element("img#captcha-success", timeout=3)
|
19
19
|
sb.highlight("img#captcha-success", loops=8)
|
20
20
|
|
21
21
|
def test_display_cdp_events(self):
|
22
22
|
if not (self.undetectable and self.uc_cdp_events):
|
23
23
|
self.get_new_driver(undetectable=True, uc_cdp_events=True)
|
24
|
-
self.driver.
|
24
|
+
self.driver.uc_open_with_reconnect("seleniumbase.io/apps/turnstile")
|
25
25
|
self.add_cdp_listener()
|
26
26
|
self.click_turnstile_and_verify()
|
27
27
|
self.sleep(1)
|
@@ -23,9 +23,9 @@ you can try finding one from one of following sites:
|
|
23
23
|
"""
|
24
24
|
|
25
25
|
PROXY_LIST = {
|
26
|
-
"example1": "
|
27
|
-
"example2": "
|
28
|
-
"example3": "socks5://
|
26
|
+
"example1": "35.185.196.38:3128", # (Example) - set your own proxy here
|
27
|
+
"example2": "129.80.134.71:3128", # (Example)
|
28
|
+
"example3": "socks5://184.178.172.5:15303", # (Example)
|
29
29
|
"proxy1": None,
|
30
30
|
"proxy2": None,
|
31
31
|
"proxy3": None,
|
@@ -463,11 +463,16 @@ def uc_click(
|
|
463
463
|
except Exception:
|
464
464
|
pass
|
465
465
|
element = driver.wait_for_selector(selector, by=by, timeout=timeout)
|
466
|
-
|
466
|
+
tag_name = element.tag_name
|
467
|
+
if not tag_name == "span": # Element must be "visible"
|
467
468
|
element = driver.wait_for_element(selector, by=by, timeout=timeout)
|
468
469
|
try:
|
469
470
|
element.uc_click(
|
470
|
-
driver,
|
471
|
+
driver,
|
472
|
+
selector,
|
473
|
+
by=by,
|
474
|
+
reconnect_time=reconnect_time,
|
475
|
+
tag_name=tag_name,
|
471
476
|
)
|
472
477
|
except ElementClickInterceptedException:
|
473
478
|
time.sleep(0.16)
|
@@ -812,11 +817,12 @@ def _set_chrome_options(
|
|
812
817
|
chrome_options = webdriver.edge.options.Options()
|
813
818
|
prefs = {}
|
814
819
|
prefs["download.default_directory"] = downloads_path
|
815
|
-
prefs["local_discovery.notifications_enabled"] = False
|
816
|
-
prefs["credentials_enable_service"] = False
|
817
|
-
prefs["download.prompt_for_download"] = False
|
818
820
|
prefs["download.directory_upgrade"] = True
|
821
|
+
prefs["download.prompt_for_download"] = False
|
822
|
+
prefs["credentials_enable_service"] = False
|
823
|
+
prefs["local_discovery.notifications_enabled"] = False
|
819
824
|
prefs["safebrowsing.enabled"] = False
|
825
|
+
prefs["safebrowsing.disable_download_protection"] = True
|
820
826
|
prefs["omnibox-max-zero-suggest-matches"] = 0
|
821
827
|
prefs["omnibox-use-existing-autocomplete-client"] = 0
|
822
828
|
prefs["omnibox-trending-zero-prefix-suggestions-on-ntp"] = 0
|
@@ -827,9 +833,8 @@ def _set_chrome_options(
|
|
827
833
|
prefs["omnibox-zero-suggest-prefetching-on-srp"] = 0
|
828
834
|
prefs["omnibox-zero-suggest-prefetching-on-web"] = 0
|
829
835
|
prefs["omnibox-zero-suggest-in-memory-caching"] = 0
|
830
|
-
prefs["default_content_setting_values.notifications"] = 0
|
831
836
|
prefs["content_settings.exceptions.automatic_downloads.*.setting"] = 1
|
832
|
-
prefs["
|
837
|
+
prefs["default_content_setting_values.notifications"] = 0
|
833
838
|
prefs["default_content_settings.popups"] = 0
|
834
839
|
prefs["managed_default_content_settings.popups"] = 0
|
835
840
|
prefs["profile.password_manager_enabled"] = False
|
@@ -1142,6 +1147,7 @@ def _set_chrome_options(
|
|
1142
1147
|
included_disabled_features.append("PrivacySandboxSettings4")
|
1143
1148
|
included_disabled_features.append("DownloadBubble")
|
1144
1149
|
included_disabled_features.append("DownloadBubbleV2")
|
1150
|
+
included_disabled_features.append("InsecureDownloadWarnings")
|
1145
1151
|
for item in extra_disabled_features:
|
1146
1152
|
if item not in included_disabled_features:
|
1147
1153
|
included_disabled_features.append(item)
|
@@ -1153,6 +1159,7 @@ def _set_chrome_options(
|
|
1153
1159
|
included_disabled_features.append("OptimizationTargetPrediction")
|
1154
1160
|
included_disabled_features.append("DownloadBubble")
|
1155
1161
|
included_disabled_features.append("DownloadBubbleV2")
|
1162
|
+
included_disabled_features.append("InsecureDownloadWarnings")
|
1156
1163
|
for item in extra_disabled_features:
|
1157
1164
|
if item not in included_disabled_features:
|
1158
1165
|
included_disabled_features.append(item)
|
@@ -2367,10 +2374,11 @@ def get_local_driver(
|
|
2367
2374
|
elif browser_name == constants.Browser.EDGE:
|
2368
2375
|
prefs = {
|
2369
2376
|
"download.default_directory": downloads_path,
|
2370
|
-
"local_discovery.notifications_enabled": False,
|
2371
|
-
"credentials_enable_service": False,
|
2372
|
-
"download.prompt_for_download": False,
|
2373
2377
|
"download.directory_upgrade": True,
|
2378
|
+
"download.prompt_for_download": False,
|
2379
|
+
"credentials_enable_service": False,
|
2380
|
+
"local_discovery.notifications_enabled": False,
|
2381
|
+
"safebrowsing.disable_download_protection": True,
|
2374
2382
|
"safebrowsing.enabled": False,
|
2375
2383
|
"omnibox-max-zero-suggest-matches": 0,
|
2376
2384
|
"omnibox-use-existing-autocomplete-client": 0,
|
@@ -2382,11 +2390,10 @@ def get_local_driver(
|
|
2382
2390
|
"omnibox-zero-suggest-prefetching-on-srp": 0,
|
2383
2391
|
"omnibox-zero-suggest-prefetching-on-web": 0,
|
2384
2392
|
"omnibox-zero-suggest-in-memory-caching": 0,
|
2385
|
-
"
|
2393
|
+
"content_settings.exceptions.automatic_downloads.*.setting": 1,
|
2386
2394
|
"default_content_setting_values.notifications": 0,
|
2387
2395
|
"default_content_settings.popups": 0,
|
2388
2396
|
"managed_default_content_settings.popups": 0,
|
2389
|
-
"content_settings.exceptions.automatic_downloads.*.setting": 1,
|
2390
2397
|
"profile.password_manager_enabled": False,
|
2391
2398
|
"profile.default_content_setting_values.notifications": 2,
|
2392
2399
|
"profile.default_content_settings.popups": 0,
|
@@ -2772,6 +2779,7 @@ def get_local_driver(
|
|
2772
2779
|
included_disabled_features.append("Translate")
|
2773
2780
|
included_disabled_features.append("OptimizationTargetPrediction")
|
2774
2781
|
included_disabled_features.append("PrivacySandboxSettings4")
|
2782
|
+
included_disabled_features.append("InsecureDownloadWarnings")
|
2775
2783
|
for item in extra_disabled_features:
|
2776
2784
|
if item not in included_disabled_features:
|
2777
2785
|
included_disabled_features.append(item)
|
@@ -2781,6 +2789,7 @@ def get_local_driver(
|
|
2781
2789
|
included_disabled_features.append("OptimizationHintsFetching")
|
2782
2790
|
included_disabled_features.append("Translate")
|
2783
2791
|
included_disabled_features.append("OptimizationTargetPrediction")
|
2792
|
+
included_disabled_features.append("InsecureDownloadWarnings")
|
2784
2793
|
for item in extra_disabled_features:
|
2785
2794
|
if item not in included_disabled_features:
|
2786
2795
|
included_disabled_features.append(item)
|
@@ -231,29 +231,28 @@ def get_binary_location(browser_type, prefer_chromium=False):
|
|
231
231
|
|
232
232
|
def get_browser_version_from_binary(binary_location):
|
233
233
|
try:
|
234
|
+
if not os.path.exists(binary_location):
|
235
|
+
return None
|
234
236
|
path = binary_location
|
235
237
|
pattern = r"\d+\.\d+\.\d+"
|
236
238
|
quad_pattern = r"\d+\.\d+\.\d+\.\d+"
|
237
|
-
if os_name() == OSType.WIN
|
239
|
+
if os_name() == OSType.WIN:
|
238
240
|
path = path.replace(r"\ ", r" ").replace("\\", "\\\\")
|
239
241
|
cmd_mapping = (
|
240
|
-
'''powershell -command "&{(Get-
|
241
|
-
'''.
|
242
|
+
'''powershell -command "&{(Get-Item -Path '%s')'''
|
243
|
+
'''.VersionInfo.FileVersion}"''' % path
|
242
244
|
)
|
243
245
|
quad_version = read_version_from_cmd(cmd_mapping, quad_pattern)
|
244
246
|
if quad_version and len(str(quad_version)) >= 9: # Eg. 122.0.0.0
|
245
247
|
return quad_version
|
246
|
-
|
247
|
-
if version and len(str(version)) >= 7: # Eg. 122.0.0
|
248
|
-
return version
|
248
|
+
return read_version_from_cmd(cmd_mapping, pattern)
|
249
249
|
if binary_location.count(r"\ ") != binary_location.count(" "):
|
250
250
|
binary_location = binary_location.replace(" ", r"\ ")
|
251
251
|
cmd_mapping = binary_location + " --version"
|
252
252
|
quad_version = read_version_from_cmd(cmd_mapping, quad_pattern)
|
253
253
|
if quad_version and len(str(quad_version)) >= 9:
|
254
254
|
return quad_version
|
255
|
-
|
256
|
-
return version
|
255
|
+
return read_version_from_cmd(cmd_mapping, pattern)
|
257
256
|
except Exception:
|
258
257
|
return None
|
259
258
|
|
@@ -1310,14 +1310,12 @@ class BaseCase(unittest.TestCase):
|
|
1310
1310
|
return self.get_page_title()
|
1311
1311
|
|
1312
1312
|
def get_user_agent(self):
|
1313
|
-
|
1314
|
-
return user_agent
|
1313
|
+
return self.execute_script("return navigator.userAgent;")
|
1315
1314
|
|
1316
1315
|
def get_locale_code(self):
|
1317
|
-
|
1316
|
+
return self.execute_script(
|
1318
1317
|
"return navigator.language || navigator.languages[0];"
|
1319
1318
|
)
|
1320
|
-
return locale_code
|
1321
1319
|
|
1322
1320
|
def go_back(self):
|
1323
1321
|
self.__check_scope()
|
@@ -2161,10 +2159,9 @@ class BaseCase(unittest.TestCase):
|
|
2161
2159
|
selector, by = self.__recalculate_selector(selector, by)
|
2162
2160
|
self.wait_for_ready_state_complete()
|
2163
2161
|
time.sleep(0.05)
|
2164
|
-
|
2162
|
+
return page_actions.find_visible_elements(
|
2165
2163
|
self.driver, selector, by, limit
|
2166
2164
|
)
|
2167
|
-
return v_elems
|
2168
2165
|
|
2169
2166
|
def click_visible_elements(
|
2170
2167
|
self, selector, by="css selector", limit=0, timeout=None
|
@@ -6450,8 +6447,7 @@ class BaseCase(unittest.TestCase):
|
|
6450
6447
|
except Exception:
|
6451
6448
|
pass
|
6452
6449
|
source = self.get_page_source()
|
6453
|
-
|
6454
|
-
return soup
|
6450
|
+
return BeautifulSoup(source, "html.parser")
|
6455
6451
|
|
6456
6452
|
def get_unique_links(self):
|
6457
6453
|
"""Get all unique links in the html of the page source.
|
@@ -6473,8 +6469,7 @@ class BaseCase(unittest.TestCase):
|
|
6473
6469
|
time.sleep(0.123)
|
6474
6470
|
soup = self.get_beautiful_soup(self.get_page_source())
|
6475
6471
|
page_url = self.get_current_url()
|
6476
|
-
|
6477
|
-
return links
|
6472
|
+
return page_utils._get_unique_links(page_url, soup)
|
6478
6473
|
|
6479
6474
|
def get_link_status_code(
|
6480
6475
|
self,
|
@@ -6493,13 +6488,12 @@ class BaseCase(unittest.TestCase):
|
|
6493
6488
|
timeout = self.__requests_timeout
|
6494
6489
|
if timeout < 1:
|
6495
6490
|
timeout = 1
|
6496
|
-
|
6491
|
+
return page_utils._get_link_status_code(
|
6497
6492
|
link,
|
6498
6493
|
allow_redirects=allow_redirects,
|
6499
6494
|
timeout=timeout,
|
6500
6495
|
verify=verify,
|
6501
6496
|
)
|
6502
|
-
return status_code
|
6503
6497
|
|
6504
6498
|
def assert_link_status_code_is_not_404(self, link):
|
6505
6499
|
status_code = str(self.get_link_status_code(link))
|
@@ -6735,8 +6729,7 @@ class BaseCase(unittest.TestCase):
|
|
6735
6729
|
pdf_text = self.__fix_unicode_conversion(pdf_text)
|
6736
6730
|
if wrap:
|
6737
6731
|
pdf_text = pdf_text.replace(" \n", " ")
|
6738
|
-
|
6739
|
-
return pdf_text
|
6732
|
+
return pdf_text.strip()
|
6740
6733
|
|
6741
6734
|
def assert_pdf_text(
|
6742
6735
|
self,
|
@@ -7741,8 +7734,7 @@ class BaseCase(unittest.TestCase):
|
|
7741
7734
|
|
7742
7735
|
def is_online(self):
|
7743
7736
|
"""Return True if connected to the Internet."""
|
7744
|
-
|
7745
|
-
return online
|
7737
|
+
return self.execute_script("return navigator.onLine;")
|
7746
7738
|
|
7747
7739
|
def is_chromium(self):
|
7748
7740
|
"""Return True if the browser is Chrome or Edge."""
|
@@ -7884,27 +7876,7 @@ class BaseCase(unittest.TestCase):
|
|
7884
7876
|
jQuery commands require a CSS_SELECTOR for finding elements.
|
7885
7877
|
This method should only be used for jQuery/JavaScript actions.
|
7886
7878
|
Pure JavaScript doesn't support using a:contains("LINK_TEXT")."""
|
7887
|
-
|
7888
|
-
return selector
|
7889
|
-
elif by == By.ID:
|
7890
|
-
return "#%s" % selector
|
7891
|
-
elif by == By.CLASS_NAME:
|
7892
|
-
return ".%s" % selector
|
7893
|
-
elif by == By.NAME:
|
7894
|
-
return '[name="%s"]' % selector
|
7895
|
-
elif by == By.TAG_NAME:
|
7896
|
-
return selector
|
7897
|
-
elif by == By.XPATH:
|
7898
|
-
return self.convert_xpath_to_css(selector)
|
7899
|
-
elif by == By.LINK_TEXT:
|
7900
|
-
return 'a:contains("%s")' % selector
|
7901
|
-
elif by == By.PARTIAL_LINK_TEXT:
|
7902
|
-
return 'a:contains("%s")' % selector
|
7903
|
-
else:
|
7904
|
-
raise Exception(
|
7905
|
-
"Exception: Could not convert {%s}(by=%s) to CSS_SELECTOR!"
|
7906
|
-
% (selector, by)
|
7907
|
-
)
|
7879
|
+
return js_utils.convert_to_css_selector(selector, by)
|
7908
7880
|
|
7909
7881
|
def set_value(
|
7910
7882
|
self, selector, text, by="css selector", timeout=None, scroll=True
|
@@ -13210,8 +13182,7 @@ class BaseCase(unittest.TestCase):
|
|
13210
13182
|
|
13211
13183
|
def __get_major_browser_version(self):
|
13212
13184
|
version = self.driver.__dict__["caps"]["browserVersion"]
|
13213
|
-
|
13214
|
-
return major_browser_version
|
13185
|
+
return version.split(".")[0]
|
13215
13186
|
|
13216
13187
|
def __get_href_from_link_text(self, link_text, hard_fail=True):
|
13217
13188
|
href = self.get_link_attribute(link_text, "href", hard_fail)
|
@@ -4,10 +4,12 @@ import requests
|
|
4
4
|
import time
|
5
5
|
from selenium.common.exceptions import NoSuchElementException
|
6
6
|
from selenium.common.exceptions import WebDriverException
|
7
|
+
from selenium.webdriver.common.by import By
|
7
8
|
from seleniumbase import config as sb_config
|
8
9
|
from seleniumbase.config import settings
|
9
10
|
from seleniumbase.fixtures import constants
|
10
11
|
from seleniumbase.fixtures import css_to_xpath
|
12
|
+
from seleniumbase.fixtures import xpath_to_css
|
11
13
|
|
12
14
|
|
13
15
|
def wait_for_ready_state_complete(driver, timeout=settings.LARGE_TIMEOUT):
|
@@ -93,6 +95,37 @@ def wait_for_angularjs(driver, timeout=settings.LARGE_TIMEOUT, **kwargs):
|
|
93
95
|
time.sleep(0.05)
|
94
96
|
|
95
97
|
|
98
|
+
def convert_to_css_selector(selector, by=By.CSS_SELECTOR):
|
99
|
+
if by == By.CSS_SELECTOR:
|
100
|
+
return selector
|
101
|
+
elif by == By.ID:
|
102
|
+
return "#%s" % selector
|
103
|
+
elif by == By.CLASS_NAME:
|
104
|
+
return ".%s" % selector
|
105
|
+
elif by == By.NAME:
|
106
|
+
return '[name="%s"]' % selector
|
107
|
+
elif by == By.TAG_NAME:
|
108
|
+
return selector
|
109
|
+
elif (
|
110
|
+
by == By.XPATH
|
111
|
+
or (
|
112
|
+
selector.startswith("/")
|
113
|
+
or selector.startswith("./")
|
114
|
+
or selector.startswith("(")
|
115
|
+
)
|
116
|
+
):
|
117
|
+
return xpath_to_css.convert_xpath_to_css(selector)
|
118
|
+
elif by == By.LINK_TEXT:
|
119
|
+
return 'a:contains("%s")' % selector
|
120
|
+
elif by == By.PARTIAL_LINK_TEXT:
|
121
|
+
return 'a:contains("%s")' % selector
|
122
|
+
else:
|
123
|
+
raise Exception(
|
124
|
+
"Exception: Could not convert {%s}(by=%s) to CSS_SELECTOR!"
|
125
|
+
% (selector, by)
|
126
|
+
)
|
127
|
+
|
128
|
+
|
96
129
|
def is_html_inspector_activated(driver):
|
97
130
|
try:
|
98
131
|
driver.execute_script("HTMLInspector;") # Fails if not defined
|
@@ -325,6 +358,12 @@ def swap_selector_and_by_if_reversed(selector, by):
|
|
325
358
|
return (selector, by)
|
326
359
|
|
327
360
|
|
361
|
+
def call_me_later(driver, script, ms):
|
362
|
+
"""Call script after ms passed."""
|
363
|
+
call = "function() {%s}" % script
|
364
|
+
driver.execute_script("window.setTimeout(%s, %s);" % (call, ms))
|
365
|
+
|
366
|
+
|
328
367
|
def highlight(driver, selector, by="css selector", loops=4):
|
329
368
|
"""For driver.highlight() / driver.page.highlight()"""
|
330
369
|
swap_selector_and_by_if_reversed(selector, by)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import selenium.webdriver.remote.webelement
|
2
|
+
from seleniumbase.fixtures import js_utils
|
2
3
|
|
3
4
|
|
4
5
|
class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
@@ -8,18 +9,24 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
|
8
9
|
selector=None,
|
9
10
|
by=None,
|
10
11
|
reconnect_time=None,
|
12
|
+
tag_name=None,
|
11
13
|
):
|
12
14
|
if driver and selector and by:
|
13
|
-
|
15
|
+
if tag_name == "span" and ":contains" not in selector:
|
16
|
+
selector = js_utils.convert_to_css_selector(selector, by)
|
17
|
+
script = 'document.querySelector("%s").click();' % selector
|
18
|
+
js_utils.call_me_later(driver, script, 111)
|
19
|
+
else:
|
20
|
+
driver.js_click(selector, by=by, timeout=1)
|
14
21
|
else:
|
15
22
|
super().click()
|
16
23
|
if not reconnect_time:
|
17
|
-
self._parent.reconnect(0.
|
24
|
+
self._parent.reconnect(0.5)
|
18
25
|
else:
|
19
26
|
self._parent.reconnect(reconnect_time)
|
20
27
|
|
21
28
|
def uc_reconnect(self, reconnect_time=None):
|
22
29
|
if not reconnect_time:
|
23
|
-
self._parent.reconnect(0.
|
30
|
+
self._parent.reconnect(0.2)
|
24
31
|
else:
|
25
32
|
self._parent.reconnect(reconnect_time)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.24.
|
3
|
+
Version: 4.24.12
|
4
4
|
Summary: A complete web automation framework for end-to-end testing.
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
6
6
|
Author: Michael Mintz
|
@@ -86,7 +86,7 @@ Requires-Dist: sniffio==1.3.1
|
|
86
86
|
Requires-Dist: h11==0.14.0
|
87
87
|
Requires-Dist: outcome==1.3.0.post0
|
88
88
|
Requires-Dist: trio==0.22.2; python_version < "3.8"
|
89
|
-
Requires-Dist: trio==0.
|
89
|
+
Requires-Dist: trio==0.25.0; python_version >= "3.8"
|
90
90
|
Requires-Dist: trio-websocket==0.11.1
|
91
91
|
Requires-Dist: wsproto==1.2.0
|
92
92
|
Requires-Dist: selenium==4.11.2; python_version < "3.8"
|
@@ -174,7 +174,7 @@ setup(
|
|
174
174
|
'h11==0.14.0',
|
175
175
|
'outcome==1.3.0.post0',
|
176
176
|
'trio==0.22.2;python_version<"3.8"',
|
177
|
-
'trio==0.
|
177
|
+
'trio==0.25.0;python_version>="3.8"',
|
178
178
|
'trio-websocket==0.11.1',
|
179
179
|
'wsproto==1.2.0',
|
180
180
|
'selenium==4.11.2;python_version<"3.8"',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/calculator.feature
RENAMED
File without changes
|
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/fail_page.feature
RENAMED
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/realworld.feature
RENAMED
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/__init__.py
RENAMED
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/calculator.py
RENAMED
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/fail_page.py
RENAMED
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/imported.py
RENAMED
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/steps/swag_labs.py
RENAMED
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/behave_bdd/features/swag_labs.feature
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/file_parsing/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/google_objects.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/swag_labs_test.py
RENAMED
File without changes
|
{seleniumbase-4.24.10 → seleniumbase-4.24.12}/examples/boilerplates/samples/test_page_objects.py
RENAMED
File without changes
|
File without changes
|
File without changes
|