seleniumbase 4.25.1__tar.gz → 4.25.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/PKG-INFO +31 -26
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/README.md +25 -21
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/requirements.txt +1 -1
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/requirements.txt +5 -4
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/base_case.py +17 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/webelement.py +4 -1
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/PKG-INFO +31 -26
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/requires.txt +5 -4
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/setup.py +5 -4
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/Workflows.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/pages.yml +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/python-nightly-mac.yml +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/python-nightly-ubuntu.yml +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/python-nightly-windows.yml +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.github/workflows/python-package.yml +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/.gitignore +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/CHANGELOG.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/CNAME +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/CODE_OF_CONDUCT.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/CONTRIBUTING.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/Dockerfile +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/LICENSE +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/MANIFEST.in +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/SECURITY.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/_config.yml +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/azure-pipelines.yml +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/basic_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/behave.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/behave.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/calculator.feature +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/environment.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/fail_page.feature +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/realworld.feature +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/calculator.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/fail_page.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/imported.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/behave_bdd/features/swag_labs.feature +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/base_test_case.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/boilerplate_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/classic_obj_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/page_objects.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/google_objects.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/google_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/sb_swag_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/swag_labs_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/samples/test_page_objects.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/boilerplates/sb_fixture_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/mac_cap_file.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/sample_cap_file_BS.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/sample_cap_file_SL.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/selenoid_cap_file.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/capabilities/win10_cap_file.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/case_summary.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/chart_presentation.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/my_chart.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/pie_charts.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_area_chart.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_display_chart.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_line_chart.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_multi_series.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/chart_maker/test_save_chart.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/coffee_cart_tests.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/custom_settings.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/desktop_apps/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/desktop_apps/recorder.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/dialog_boxes/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/dialog_boxes/dialog_box_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/edge_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_config.cfg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_logs/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_logs/basic_test_info.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_logs/page_source.html +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/example_logs/screenshot.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/github_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/gui_test_runner.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/hack_the_planet.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/handle_alert_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/iframe_tests.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/locale_code_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/basic_masterqa_test_0.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/masterqa_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/master_qa/pytest.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/example_spec.js +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/example_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/input_spec.js +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/input_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/mat_paginator_spec.js +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/protractor/mat_paginator_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/messy_raw.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/pytest.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/refined_raw.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/migration/raw_selenium/simple_sbase.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/my_first_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/nth_child_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/demo_page.html +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/load_html_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/test_demo_page.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/test_handle_alerts.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/test_request_fixture.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/offline_examples/test_user_agent.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/old_wordle_script.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/parameterized_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/performance_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/core_presentation.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/edge_presentation.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/fundamentals.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/my_presentation.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/presenter/py_virtual_envs.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/proxy_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/pytest.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/rate_limiting_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_call.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_driver_context.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_file_call.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_main_call.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_parameter_script.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_sb.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_test_scripts.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/raw_uc_mode.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/setup.cfg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/shadow_root_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/swag_labs_user_tests.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_apple_site.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_assert_elements.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_calculator.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_canvas.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_checkboxes.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_chinese_pdf.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_chromedriver.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_coffee_cart.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_console_logging.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_contains_selector.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_cycle_elements.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_decryption.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_deferred_asserts.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_demo_site.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_detect_404s.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_docs_site.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_double_click.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_download_files.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_download_images.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_drag_and_drop.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_error_page.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_event_firing.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_fail.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_geolocation.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_get_coffee.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_get_locale_code.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_get_pdf_text.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_get_user_agent.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_hack_search.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_image_saving.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_inspect_html.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_login.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_markers.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_mfa_login.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_multiple_drivers.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_null.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_override_driver.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_override_sb_fixture.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_parse_soup.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_pdf_asserts.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_pytest_parametrize.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_repeat_tests.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_request_sb_fixture.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_save_screenshots.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_sb_fixture.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_scrape_bing.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_select_options.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_shadow_dom.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_show_file_choosers.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_skype_site.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_suite.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_swag_labs.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_tinymce.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_todomvc.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_url_asserts.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_usefixtures.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_verify_chromedriver.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_window_switching.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_xfail.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/test_xkcd.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/time_limit_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/bootstrap_google_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/driverjs_maps_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/google_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/hopscotch_google_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/introjs_google_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/maps_introjs_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/octocat_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/shepherd_google_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/tour_examples/xkcd_tour.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/chinese_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/dutch_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/english_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/french_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/italian_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/japanese_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/korean_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/portuguese_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/pytest.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/russian_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/translations/spanish_test_1.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/uc_cdp_events.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/unit_tests/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/unit_tests/verify_framework.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/upgrade_chromedriver.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/upload_file_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/user_agent_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/verify_undetected.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/layout_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/python_home_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/test_layout_fail.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/visual_testing/xkcd_visual_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/wordle_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/xpath_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/examples/youtube_search_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/behave_gui.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/case_plans.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/chinese.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/commander.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/customizing_test_runs.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/demo_mode.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/desired_capabilities.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/features_list.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/handling_iframes.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/happy_customers.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/hidden_files_info.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/how_it_works.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/html_inspector.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/install.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/install_python_pip_git.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/js_package_manager.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/locale_codes.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/method_summary.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/mobile_testing.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/mysql_installation.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/recorder_mode.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/shadow_dom.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/syntax_formats.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/thank_you.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/translations.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/useful_grep_commands.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/using_safari_driver.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/verify_webdriver.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/virtualenv_instructions.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/help_docs/webdriver_installation.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/install.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/azure/jenkins/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/behave.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/behave.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/calculator.feature +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/environment.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/fail_page.feature +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/realworld.feature +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/calculator.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/fail_page.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/real_world.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/behave/features/swag_labs.feature +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/brython/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/brython/index.html +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/brython/index.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/brython/library.html +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/docker-entrypoint.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/docker_config.cfg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/docker/run_docker_test_in_firefox.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/github/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/github/workflows/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/github/workflows/extras.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/google_cloud/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/katalon/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/Linuxfile.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/Xvfb_launcher.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/jenkins_permissions.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/linux/tomcat_permissions.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/index.html +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/my_first_test.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/npm-shrinkwrap.json +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/package.json +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/server.js +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/node_js/test_demo_site.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/integrations/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs.yml +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/ReadMe.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/docs_instructions.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/dash_pie.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/dash_pie_2.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/dash_pie_3.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/favicon.ico +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/grad_logo.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/green_icon.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/green_logo.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/green_logo2.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/green_logo3.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo3.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo3a.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo3b.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo3c.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo4.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo5.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo6.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/logo7.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/sb_icon.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/sb_logo_10.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/sb_logo_7.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/side_by_side.png +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_facebook.svg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_github.svg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_gitter.svg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_instagram.svg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/img/social/share_twitter.svg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/index.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/mkdocs_build/prepare.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/pytest.ini +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/sbase/ReadMe.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/sbase/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/sbase/__main__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/sbase/steps.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/browser_launcher.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/drivers/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/masterqa/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/resources/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/resources/favicon.ico +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/setup.cfg +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/virtualenv_install.sh +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/win_install.bat +0 -0
- {seleniumbase-4.25.1 → seleniumbase-4.25.3}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.25.
|
3
|
+
Version: 4.25.3
|
4
4
|
Summary: A complete web automation framework for end-to-end testing.
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
6
6
|
Author: Michael Mintz
|
@@ -67,15 +67,15 @@ Requires-Dist: wheel>=0.43.0; python_version >= "3.8"
|
|
67
67
|
Requires-Dist: attrs>=23.2.0
|
68
68
|
Requires-Dist: certifi>=2024.2.2
|
69
69
|
Requires-Dist: filelock>=3.12.2; python_version < "3.8"
|
70
|
-
Requires-Dist: filelock>=3.13.
|
70
|
+
Requires-Dist: filelock>=3.13.4; python_version >= "3.8"
|
71
71
|
Requires-Dist: platformdirs>=4.0.0; python_version < "3.8"
|
72
72
|
Requires-Dist: platformdirs>=4.2.0; python_version >= "3.8"
|
73
|
-
Requires-Dist: typing-extensions>=4.
|
73
|
+
Requires-Dist: typing-extensions>=4.11.0; python_version >= "3.8"
|
74
74
|
Requires-Dist: parse>=1.20.1
|
75
75
|
Requires-Dist: parse-type>=0.6.2
|
76
76
|
Requires-Dist: pyyaml>=6.0.1
|
77
77
|
Requires-Dist: six==1.16.0
|
78
|
-
Requires-Dist: idna==3.
|
78
|
+
Requires-Dist: idna==3.7
|
79
79
|
Requires-Dist: chardet==5.2.0
|
80
80
|
Requires-Dist: charset-normalizer==3.3.2
|
81
81
|
Requires-Dist: urllib3<2,>=1.26.18; python_version < "3.10"
|
@@ -94,7 +94,8 @@ Requires-Dist: selenium==4.19.0; python_version >= "3.8"
|
|
94
94
|
Requires-Dist: cssselect==1.2.0
|
95
95
|
Requires-Dist: sortedcontainers==2.4.0
|
96
96
|
Requires-Dist: fasteners==0.19
|
97
|
-
Requires-Dist: execnet==2.0.2
|
97
|
+
Requires-Dist: execnet==2.0.2; python_version < "3.8"
|
98
|
+
Requires-Dist: execnet==2.1.1; python_version >= "3.8"
|
98
99
|
Requires-Dist: iniconfig==2.0.0
|
99
100
|
Requires-Dist: pluggy==1.2.0; python_version < "3.8"
|
100
101
|
Requires-Dist: pluggy==1.4.0; python_version >= "3.8"
|
@@ -180,9 +181,10 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
|
|
180
181
|
|
181
182
|
<h1>SeleniumBase</h1>
|
182
183
|
|
183
|
-
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
184
|
+
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
|
184
185
|
|
185
|
-
|
186
|
+
|
187
|
+
<p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
|
186
188
|
|
187
189
|
<p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></p>
|
188
190
|
|
@@ -226,7 +228,11 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
|
|
226
228
|
|
227
229
|
--------
|
228
230
|
|
229
|
-
📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/**](https://github.com/seleniumbase/SeleniumBase/tree/master/examples)
|
231
|
+
📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/** folder](https://github.com/seleniumbase/SeleniumBase/tree/master/examples).
|
232
|
+
|
233
|
+
👤 Note that <span translate="no">SeleniumBase</span> <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">UC Mode / Stealth Mode has its own ReadMe</a>.
|
234
|
+
|
235
|
+
ℹ️ Scripts can be called via <code translate="no"><b>python</b></code>, although some <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a> expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover & collect tests automatically).
|
230
236
|
|
231
237
|
<p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>, which tests login, shopping, and checkout:</p>
|
232
238
|
|
@@ -234,7 +240,7 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
|
|
234
240
|
pytest my_first_test.py
|
235
241
|
```
|
236
242
|
|
237
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="
|
243
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
|
238
244
|
|
239
245
|
> ``pytest`` uses ``--chrome`` by default unless set differently.
|
240
246
|
|
@@ -246,7 +252,7 @@ pytest my_first_test.py
|
|
246
252
|
pytest test_coffee_cart.py --demo
|
247
253
|
```
|
248
254
|
|
249
|
-
<p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="
|
255
|
+
<p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="520" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
|
250
256
|
|
251
257
|
> <p>(<code translate="no">--demo</code> mode slows down tests and highlights actions)</p>
|
252
258
|
|
@@ -260,7 +266,7 @@ pytest test_coffee_cart.py --demo
|
|
260
266
|
pytest test_demo_site.py
|
261
267
|
```
|
262
268
|
|
263
|
-
<p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="
|
269
|
+
<p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="520" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
|
264
270
|
|
265
271
|
> Easy to type, click, select, toggle, drag & drop, and more.
|
266
272
|
|
@@ -268,7 +274,7 @@ pytest test_demo_site.py
|
|
268
274
|
|
269
275
|
--------
|
270
276
|
|
271
|
-
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
277
|
+
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
|
272
278
|
|
273
279
|
<blockquote>
|
274
280
|
<p dir="auto"><strong>Explore the README:</strong></p>
|
@@ -563,7 +569,7 @@ cd examples/
|
|
563
569
|
pytest my_first_test.py
|
564
570
|
```
|
565
571
|
|
566
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="
|
572
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
|
567
573
|
|
568
574
|
<p align="left"><b>Here's the code for <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</b></p>
|
569
575
|
|
@@ -1004,14 +1010,14 @@ python -m http.server 1948
|
|
1004
1010
|
pytest test_suite.py test_image_saving.py --dashboard --rs --headless
|
1005
1011
|
```
|
1006
1012
|
|
1007
|
-
<img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="
|
1013
|
+
<img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="520" />
|
1008
1014
|
|
1009
1015
|
--------
|
1010
1016
|
|
1011
1017
|
<a id="creating_visual_reports"></a>
|
1012
1018
|
<h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
|
1013
1019
|
|
1014
|
-
<h3>🔵
|
1020
|
+
<h3>🔵 <code>pytest</code> HTML Reports:</h3>
|
1015
1021
|
|
1016
1022
|
✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
|
1017
1023
|
|
@@ -1039,7 +1045,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
|
|
1039
1045
|
pytest test_suite.py --junit-xml=report.xml
|
1040
1046
|
```
|
1041
1047
|
|
1042
|
-
<h3>🔵 pynose Reports:</h3>
|
1048
|
+
<h3>🔵 <code>pynose</code> Reports:</h3>
|
1043
1049
|
|
1044
1050
|
The ``--report`` option gives you a fancy report after your test suite completes.
|
1045
1051
|
|
@@ -1051,7 +1057,7 @@ pynose test_suite.py --report
|
|
1051
1057
|
|
1052
1058
|
(NOTE: You can add ``--show-report`` to immediately display pynose reports after the test suite completes. Only use ``--show-report`` when running tests locally because it pauses the test run.)
|
1053
1059
|
|
1054
|
-
<h3>🔵
|
1060
|
+
<h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
|
1055
1061
|
|
1056
1062
|
(The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
|
1057
1063
|
|
@@ -1059,7 +1065,7 @@ pynose test_suite.py --report
|
|
1059
1065
|
behave behave_bdd/features/ -D dashboard -D headless
|
1060
1066
|
```
|
1061
1067
|
|
1062
|
-
<img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="
|
1068
|
+
<img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="520">
|
1063
1069
|
|
1064
1070
|
You can also use ``--junit`` to get ``.xml`` reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.
|
1065
1071
|
|
@@ -1123,7 +1129,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
|
|
1123
1129
|
```
|
1124
1130
|
|
1125
1131
|
|
1126
|
-
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up
|
1132
|
+
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up Alerts:</h3>
|
1127
1133
|
|
1128
1134
|
🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.
|
1129
1135
|
|
@@ -1521,11 +1527,13 @@ pytest --reruns=1 --reruns-delay=1
|
|
1521
1527
|
|
1522
1528
|
<p>
|
1523
1529
|
<div><b>If you see something, say something!</b></div>
|
1524
|
-
<div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a>
|
1530
|
+
<div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
|
1525
1531
|
</p>
|
1526
1532
|
|
1527
1533
|
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="266" /></a></p>
|
1528
1534
|
|
1535
|
+
<a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a>
|
1536
|
+
|
1529
1537
|
<p><div>
|
1530
1538
|
<span><a href="https://www.youtube.com/playlist?list=PLp9uKicxkBc5UIlGi2BuE3aWC7JyXpD3m"><img src="https://seleniumbase.github.io/cdn/img/youtube.png" title="SeleniumBase Playlist on YouTube" alt="SeleniumBase Playlist on YouTube" width="68" /></a></span>
|
1531
1539
|
<span><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/img/social/share_github.svg" title="SeleniumBase on GitHub" alt="SeleniumBase on GitHub" width="62" /></a></span>
|
@@ -1535,11 +1543,8 @@ pytest --reruns=1 --reruns-delay=1
|
|
1535
1543
|
|
1536
1544
|
<p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
|
1537
1545
|
|
1538
|
-
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
1546
|
+
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="240" /></a></div>
|
1547
|
+
<div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
|
1539
1548
|
<div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
|
1540
1549
|
<div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
|
1541
|
-
|
1542
|
-
--------
|
1543
|
-
|
1544
|
-
<p><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" alt="SeleniumBase" title="SeleniumBase" width="300" /></a></p>
|
1545
|
-
<p><a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a></p>
|
1550
|
+
<div align="left"><img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="124px" height="28px" alt="Views" /></div>
|
@@ -9,9 +9,10 @@
|
|
9
9
|
|
10
10
|
<h1>SeleniumBase</h1>
|
11
11
|
|
12
|
-
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
12
|
+
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
|
13
13
|
|
14
|
-
|
14
|
+
|
15
|
+
<p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
|
15
16
|
|
16
17
|
<p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></p>
|
17
18
|
|
@@ -55,7 +56,11 @@
|
|
55
56
|
|
56
57
|
--------
|
57
58
|
|
58
|
-
📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/**](https://github.com/seleniumbase/SeleniumBase/tree/master/examples)
|
59
|
+
📚 Learn from [**over 200 examples** in the **SeleniumBase/examples/** folder](https://github.com/seleniumbase/SeleniumBase/tree/master/examples).
|
60
|
+
|
61
|
+
👤 Note that <span translate="no">SeleniumBase</span> <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">UC Mode / Stealth Mode has its own ReadMe</a>.
|
62
|
+
|
63
|
+
ℹ️ Scripts can be called via <code translate="no"><b>python</b></code>, although some <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md">Syntax Formats</a> expect <a href="https://docs.pytest.org/en/latest/how-to/usage.html" translate="no"><b>pytest</b></a> (a Python unit-testing framework included with SeleniumBase that can discover & collect tests automatically).
|
59
64
|
|
60
65
|
<p align="left">📗 Here's <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>, which tests login, shopping, and checkout:</p>
|
61
66
|
|
@@ -63,7 +68,7 @@
|
|
63
68
|
pytest my_first_test.py
|
64
69
|
```
|
65
70
|
|
66
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="
|
71
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
|
67
72
|
|
68
73
|
> ``pytest`` uses ``--chrome`` by default unless set differently.
|
69
74
|
|
@@ -75,7 +80,7 @@ pytest my_first_test.py
|
|
75
80
|
pytest test_coffee_cart.py --demo
|
76
81
|
```
|
77
82
|
|
78
|
-
<p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="
|
83
|
+
<p align="left"><a href="https://seleniumbase.io/coffee/" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/coffee_cart.gif" width="520" alt="SeleniumBase Coffee Cart Test" title="SeleniumBase Coffee Cart Test" /></a></p>
|
79
84
|
|
80
85
|
> <p>(<code translate="no">--demo</code> mode slows down tests and highlights actions)</p>
|
81
86
|
|
@@ -89,7 +94,7 @@ pytest test_coffee_cart.py --demo
|
|
89
94
|
pytest test_demo_site.py
|
90
95
|
```
|
91
96
|
|
92
|
-
<p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="
|
97
|
+
<p align="left"><a href="https://seleniumbase.io/demo_page" target="_blank"><img src="https://seleniumbase.github.io/cdn/gif/demo_page_5.gif" width="520" alt="SeleniumBase Example" title="SeleniumBase Example" /></a></p>
|
93
98
|
|
94
99
|
> Easy to type, click, select, toggle, drag & drop, and more.
|
95
100
|
|
@@ -97,7 +102,7 @@ pytest test_demo_site.py
|
|
97
102
|
|
98
103
|
--------
|
99
104
|
|
100
|
-
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
105
|
+
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
|
101
106
|
|
102
107
|
<blockquote>
|
103
108
|
<p dir="auto"><strong>Explore the README:</strong></p>
|
@@ -392,7 +397,7 @@ cd examples/
|
|
392
397
|
pytest my_first_test.py
|
393
398
|
```
|
394
399
|
|
395
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="
|
400
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py"><img src="https://seleniumbase.github.io/cdn/gif/fast_swag_2.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="520" /></a>
|
396
401
|
|
397
402
|
<p align="left"><b>Here's the code for <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py">my_first_test.py</a>:</b></p>
|
398
403
|
|
@@ -833,14 +838,14 @@ python -m http.server 1948
|
|
833
838
|
pytest test_suite.py test_image_saving.py --dashboard --rs --headless
|
834
839
|
```
|
835
840
|
|
836
|
-
<img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="
|
841
|
+
<img src="https://seleniumbase.github.io/cdn/img/dashboard_2.png" alt="The SeleniumBase Dashboard" title="The SeleniumBase Dashboard" width="520" />
|
837
842
|
|
838
843
|
--------
|
839
844
|
|
840
845
|
<a id="creating_visual_reports"></a>
|
841
846
|
<h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
|
842
847
|
|
843
|
-
<h3>🔵
|
848
|
+
<h3>🔵 <code>pytest</code> HTML Reports:</h3>
|
844
849
|
|
845
850
|
✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
|
846
851
|
|
@@ -868,7 +873,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
|
|
868
873
|
pytest test_suite.py --junit-xml=report.xml
|
869
874
|
```
|
870
875
|
|
871
|
-
<h3>🔵 pynose Reports:</h3>
|
876
|
+
<h3>🔵 <code>pynose</code> Reports:</h3>
|
872
877
|
|
873
878
|
The ``--report`` option gives you a fancy report after your test suite completes.
|
874
879
|
|
@@ -880,7 +885,7 @@ pynose test_suite.py --report
|
|
880
885
|
|
881
886
|
(NOTE: You can add ``--show-report`` to immediately display pynose reports after the test suite completes. Only use ``--show-report`` when running tests locally because it pauses the test run.)
|
882
887
|
|
883
|
-
<h3>🔵
|
888
|
+
<h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
|
884
889
|
|
885
890
|
(The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
|
886
891
|
|
@@ -888,7 +893,7 @@ pynose test_suite.py --report
|
|
888
893
|
behave behave_bdd/features/ -D dashboard -D headless
|
889
894
|
```
|
890
895
|
|
891
|
-
<img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="
|
896
|
+
<img src="https://seleniumbase.github.io/cdn/img/sb_behave_dashboard.png" title="SeleniumBase" width="520">
|
892
897
|
|
893
898
|
You can also use ``--junit`` to get ``.xml`` reports for each <code translate="no">behave</code> feature. Jenkins can use these files to display better reporting for your tests.
|
894
899
|
|
@@ -952,7 +957,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
|
|
952
957
|
```
|
953
958
|
|
954
959
|
|
955
|
-
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up
|
960
|
+
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up Alerts:</h3>
|
956
961
|
|
957
962
|
🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.
|
958
963
|
|
@@ -1350,11 +1355,13 @@ pytest --reruns=1 --reruns-delay=1
|
|
1350
1355
|
|
1351
1356
|
<p>
|
1352
1357
|
<div><b>If you see something, say something!</b></div>
|
1353
|
-
<div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a>
|
1358
|
+
<div><a href="https://github.com/seleniumbase/SeleniumBase/issues?q=is%3Aissue+is%3Aclosed"><img src="https://img.shields.io/github/issues-closed-raw/seleniumbase/SeleniumBase.svg?color=22BB88" title="Closed Issues" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/seleniumbase/SeleniumBase.svg?logo=github&logoColor=white&color=22BB99" title="Closed Pull Requests" /></a></div>
|
1354
1359
|
</p>
|
1355
1360
|
|
1356
1361
|
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/sb_logo_10t.png" alt="SeleniumBase" title="SeleniumBase" width="266" /></a></p>
|
1357
1362
|
|
1363
|
+
<a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a>
|
1364
|
+
|
1358
1365
|
<p><div>
|
1359
1366
|
<span><a href="https://www.youtube.com/playlist?list=PLp9uKicxkBc5UIlGi2BuE3aWC7JyXpD3m"><img src="https://seleniumbase.github.io/cdn/img/youtube.png" title="SeleniumBase Playlist on YouTube" alt="SeleniumBase Playlist on YouTube" width="68" /></a></span>
|
1360
1367
|
<span><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://seleniumbase.github.io/img/social/share_github.svg" title="SeleniumBase on GitHub" alt="SeleniumBase on GitHub" width="62" /></a></span>
|
@@ -1364,11 +1371,8 @@ pytest --reruns=1 --reruns-delay=1
|
|
1364
1371
|
|
1365
1372
|
<p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
|
1366
1373
|
|
1367
|
-
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
1374
|
+
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="240" /></a></div>
|
1375
|
+
<div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
|
1368
1376
|
<div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
|
1369
1377
|
<div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
|
1370
|
-
|
1371
|
-
--------
|
1372
|
-
|
1373
|
-
<p><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb.png" alt="SeleniumBase" title="SeleniumBase" width="300" /></a></p>
|
1374
|
-
<p><a href="https://pypi.org/project/seleniumbase/" target="_blank"><img src="https://img.shields.io/pypi/pyversions/seleniumbase.svg?color=22AAEE&logo=python&logoColor=FEDC54" title="Supported Python Versions" /></a></p>
|
1378
|
+
<div align="left"><img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="124px" height="28px" alt="Views" /></div>
|
@@ -7,15 +7,15 @@ wheel>=0.43.0;python_version>="3.8"
|
|
7
7
|
attrs>=23.2.0
|
8
8
|
certifi>=2024.2.2
|
9
9
|
filelock>=3.12.2;python_version<"3.8"
|
10
|
-
filelock>=3.13.
|
10
|
+
filelock>=3.13.4;python_version>="3.8"
|
11
11
|
platformdirs>=4.0.0;python_version<"3.8"
|
12
12
|
platformdirs>=4.2.0;python_version>="3.8"
|
13
|
-
typing-extensions>=4.
|
13
|
+
typing-extensions>=4.11.0;python_version>="3.8"
|
14
14
|
parse>=1.20.1
|
15
15
|
parse-type>=0.6.2
|
16
16
|
pyyaml>=6.0.1
|
17
17
|
six==1.16.0
|
18
|
-
idna==3.
|
18
|
+
idna==3.7
|
19
19
|
chardet==5.2.0
|
20
20
|
charset-normalizer==3.3.2
|
21
21
|
urllib3>=1.26.18,<2;python_version<"3.10"
|
@@ -34,7 +34,8 @@ selenium==4.19.0;python_version>="3.8"
|
|
34
34
|
cssselect==1.2.0
|
35
35
|
sortedcontainers==2.4.0
|
36
36
|
fasteners==0.19
|
37
|
-
execnet==2.0.2
|
37
|
+
execnet==2.0.2;python_version<"3.8"
|
38
|
+
execnet==2.1.1;python_version>="3.8"
|
38
39
|
iniconfig==2.0.0
|
39
40
|
pluggy==1.2.0;python_version<"3.8"
|
40
41
|
pluggy==1.4.0;python_version>="3.8"
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.25.
|
2
|
+
__version__ = "4.25.3"
|
@@ -4134,6 +4134,23 @@ class BaseCase(unittest.TestCase):
|
|
4134
4134
|
self.__dont_record_open = True
|
4135
4135
|
self.open(new_start_page)
|
4136
4136
|
self.__dont_record_open = False
|
4137
|
+
if undetectable:
|
4138
|
+
if hasattr(new_driver, "uc_open"):
|
4139
|
+
self.uc_open = new_driver.uc_open
|
4140
|
+
if hasattr(new_driver, "uc_open_with_tab"):
|
4141
|
+
self.uc_open_with_tab = new_driver.uc_open_with_tab
|
4142
|
+
if hasattr(new_driver, "uc_open_with_reconnect"):
|
4143
|
+
self.uc_open_with_reconnect = new_driver.uc_open_with_reconnect
|
4144
|
+
if hasattr(new_driver, "reconnect"):
|
4145
|
+
self.reconnect = new_driver.reconnect
|
4146
|
+
if hasattr(new_driver, "disconnect"):
|
4147
|
+
self.disconnect = new_driver.disconnect
|
4148
|
+
if hasattr(new_driver, "connect"):
|
4149
|
+
self.connect = new_driver.connect
|
4150
|
+
if hasattr(new_driver, "uc_click"):
|
4151
|
+
self.uc_click = new_driver.uc_click
|
4152
|
+
if hasattr(new_driver, "uc_switch_to_frame"):
|
4153
|
+
self.uc_switch_to_frame = new_driver.uc_switch_to_frame
|
4137
4154
|
return new_driver
|
4138
4155
|
|
4139
4156
|
def switch_to_driver(self, driver):
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import re
|
1
2
|
import selenium.webdriver.remote.webelement
|
2
3
|
from seleniumbase.fixtures import js_utils
|
3
4
|
|
@@ -13,10 +14,12 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
|
13
14
|
):
|
14
15
|
if driver and selector and by:
|
15
16
|
delayed_click = False
|
16
|
-
if tag_name
|
17
|
+
if tag_name in ["span", "button", "div", "a"]:
|
17
18
|
delayed_click = True
|
18
19
|
if delayed_click and ":contains" not in selector:
|
19
20
|
selector = js_utils.convert_to_css_selector(selector, by)
|
21
|
+
selector = re.escape(selector)
|
22
|
+
selector = js_utils.escape_quotes_if_needed(selector)
|
20
23
|
script = 'document.querySelector("%s").click();' % selector
|
21
24
|
js_utils.call_me_later(driver, script, 111)
|
22
25
|
else:
|