seleniumbase 4.25.2__tar.gz → 4.25.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/Dockerfile +42 -43
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/PKG-INFO +12 -12
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/README.md +7 -7
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/docker/ReadMe.md +14 -33
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/requirements.txt +1 -1
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/requirements.txt +4 -4
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/base_case.py +17 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/webelement.py +1 -1
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/PKG-INFO +12 -12
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/SOURCES.txt +0 -2
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/requires.txt +4 -4
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/setup.py +4 -4
- seleniumbase-4.25.2/integrations/docker/docker_config.cfg +0 -3
- seleniumbase-4.25.2/integrations/docker/run_docker_test_in_firefox.sh +0 -6
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/Workflows.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/pages.yml +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/python-nightly-mac.yml +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/python-nightly-ubuntu.yml +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/python-nightly-windows.yml +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.github/workflows/python-package.yml +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/.gitignore +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/CHANGELOG.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/CNAME +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/CODE_OF_CONDUCT.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/CONTRIBUTING.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/LICENSE +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/MANIFEST.in +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/SECURITY.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/_config.yml +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/azure-pipelines.yml +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/basic_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/behave.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/behave.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/calculator.feature +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/environment.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/fail_page.feature +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/realworld.feature +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/calculator.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/fail_page.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/imported.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/behave_bdd/features/swag_labs.feature +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/base_test_case.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/boilerplate_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/classic_obj_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/page_objects.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/google_objects.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/google_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/sb_swag_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/swag_labs_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/samples/test_page_objects.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/boilerplates/sb_fixture_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/mac_cap_file.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/sample_cap_file_BS.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/sample_cap_file_SL.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/selenoid_cap_file.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/capabilities/win10_cap_file.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/case_summary.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/chart_presentation.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/my_chart.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/pie_charts.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_area_chart.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_display_chart.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_line_chart.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_multi_series.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/chart_maker/test_save_chart.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/coffee_cart_tests.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/custom_settings.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/desktop_apps/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/desktop_apps/recorder.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/dialog_boxes/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/dialog_boxes/dialog_box_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/edge_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_config.cfg +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_logs/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_logs/basic_test_info.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_logs/page_source.html +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/example_logs/screenshot.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/github_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/gui_test_runner.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/hack_the_planet.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/handle_alert_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/iframe_tests.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/locale_code_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/basic_masterqa_test_0.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/masterqa_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/master_qa/pytest.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/example_spec.js +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/example_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/input_spec.js +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/input_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/mat_paginator_spec.js +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/protractor/mat_paginator_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/messy_raw.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/pytest.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/refined_raw.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/migration/raw_selenium/simple_sbase.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/my_first_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/nth_child_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/demo_page.html +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/load_html_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/test_demo_page.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/test_handle_alerts.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/test_request_fixture.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/offline_examples/test_user_agent.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/old_wordle_script.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/parameterized_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/performance_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/core_presentation.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/edge_presentation.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/fundamentals.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/my_presentation.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/presenter/py_virtual_envs.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/proxy_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/pytest.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/rate_limiting_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_call.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_driver_context.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_file_call.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_main_call.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_parameter_script.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_sb.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_test_scripts.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/raw_uc_mode.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/setup.cfg +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/shadow_root_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/swag_labs_user_tests.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_apple_site.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_assert_elements.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_calculator.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_canvas.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_checkboxes.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_chinese_pdf.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_chromedriver.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_coffee_cart.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_console_logging.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_contains_selector.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_cycle_elements.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_decryption.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_deferred_asserts.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_demo_site.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_detect_404s.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_docs_site.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_double_click.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_download_files.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_download_images.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_drag_and_drop.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_error_page.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_event_firing.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_fail.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_geolocation.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_get_coffee.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_get_locale_code.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_get_pdf_text.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_get_user_agent.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_hack_search.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_image_saving.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_inspect_html.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_login.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_markers.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_mfa_login.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_multiple_drivers.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_null.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_override_driver.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_override_sb_fixture.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_parse_soup.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_pdf_asserts.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_pytest_parametrize.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_repeat_tests.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_request_sb_fixture.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_save_screenshots.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_sb_fixture.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_scrape_bing.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_select_options.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_shadow_dom.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_show_file_choosers.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_skype_site.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_suite.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_swag_labs.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_tinymce.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_todomvc.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_url_asserts.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_usefixtures.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_verify_chromedriver.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_window_switching.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_xfail.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/test_xkcd.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/time_limit_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/bootstrap_google_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/driverjs_maps_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/google_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/hopscotch_google_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/introjs_google_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/maps_introjs_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/octocat_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/shepherd_google_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/tour_examples/xkcd_tour.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/chinese_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/dutch_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/english_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/french_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/italian_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/japanese_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/korean_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/portuguese_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/pytest.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/russian_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/translations/spanish_test_1.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/uc_cdp_events.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/unit_tests/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/unit_tests/verify_framework.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/upgrade_chromedriver.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/upload_file_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/user_agent_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/verify_undetected.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/layout_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/python_home_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/test_layout_fail.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/visual_testing/xkcd_visual_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/wordle_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/xpath_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/examples/youtube_search_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/behave_gui.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/case_plans.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/chinese.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/commander.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/customizing_test_runs.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/demo_mode.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/desired_capabilities.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/features_list.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/handling_iframes.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/happy_customers.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/hidden_files_info.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/how_it_works.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/html_inspector.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/install.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/install_python_pip_git.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/js_package_manager.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/locale_codes.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/method_summary.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/mobile_testing.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/mysql_installation.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/recorder_mode.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/shadow_dom.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/syntax_formats.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/thank_you.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/translations.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/useful_grep_commands.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/using_safari_driver.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/verify_webdriver.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/virtualenv_instructions.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/help_docs/webdriver_installation.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/install.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/azure/jenkins/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/behave.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/behave.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/calculator.feature +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/environment.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/fail_page.feature +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/realworld.feature +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/calculator.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/fail_page.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/real_world.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/behave/features/swag_labs.feature +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/brython/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/brython/index.html +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/brython/index.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/brython/library.html +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/docker/docker-entrypoint.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/github/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/github/workflows/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/github/workflows/extras.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/google_cloud/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/katalon/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/Linuxfile.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/Xvfb_launcher.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/jenkins_permissions.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/linux/tomcat_permissions.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/index.html +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/my_first_test.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/npm-shrinkwrap.json +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/package.json +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/server.js +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/node_js/test_demo_site.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/integrations/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs.yml +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/ReadMe.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/docs_instructions.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/dash_pie.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/dash_pie_2.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/dash_pie_3.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/favicon.ico +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/grad_logo.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/green_icon.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/green_logo.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/green_logo2.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/green_logo3.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo3.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo3a.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo3b.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo3c.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo4.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo5.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo6.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/logo7.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/sb_icon.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/sb_logo_10.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/sb_logo_7.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/side_by_side.png +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_facebook.svg +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_github.svg +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_gitter.svg +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_instagram.svg +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/img/social/share_twitter.svg +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/index.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/mkdocs_build/prepare.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/pytest.ini +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/sbase/ReadMe.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/sbase/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/sbase/__main__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/sbase/steps.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/browser_launcher.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/drivers/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/masterqa/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/resources/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/resources/favicon.ico +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/setup.cfg +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/virtualenv_install.sh +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/win_install.bat +0 -0
- {seleniumbase-4.25.2 → seleniumbase-4.25.4}/win_virtualenv.bat +0 -0
@@ -1,13 +1,31 @@
|
|
1
1
|
# SeleniumBase Docker Image
|
2
|
-
FROM ubuntu:
|
2
|
+
FROM ubuntu:22.04
|
3
3
|
|
4
|
-
|
5
|
-
# Install
|
6
|
-
|
7
|
-
RUN apt-get
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
#============================
|
5
|
+
# Install Linux Dependencies
|
6
|
+
#============================
|
7
|
+
RUN apt-get update && apt-get install -y \
|
8
|
+
fonts-liberation \
|
9
|
+
libasound2 \
|
10
|
+
libatk-bridge2.0-0 \
|
11
|
+
libatk1.0-0 \
|
12
|
+
libatspi2.0-0 \
|
13
|
+
libcups2 \
|
14
|
+
libdbus-1-3 \
|
15
|
+
libdrm2 \
|
16
|
+
libgbm1 \
|
17
|
+
libgtk-3-0 \
|
18
|
+
libnspr4 \
|
19
|
+
libnss3 \
|
20
|
+
libwayland-client0 \
|
21
|
+
libxcomposite1 \
|
22
|
+
libxdamage1 \
|
23
|
+
libxfixes3 \
|
24
|
+
libxkbcommon0 \
|
25
|
+
libxrandr2 \
|
26
|
+
xdg-utils \
|
27
|
+
libu2f-udev \
|
28
|
+
libvulkan1
|
11
29
|
|
12
30
|
#=================================
|
13
31
|
# Install Bash Command Line Tools
|
@@ -17,8 +35,6 @@ RUN apt-get -qy --no-install-recommends install \
|
|
17
35
|
unzip \
|
18
36
|
wget \
|
19
37
|
curl \
|
20
|
-
libxi6 \
|
21
|
-
libgconf-2-4 \
|
22
38
|
vim \
|
23
39
|
xvfb \
|
24
40
|
&& rm -rf /var/lib/apt/lists/*
|
@@ -26,24 +42,17 @@ RUN apt-get -qy --no-install-recommends install \
|
|
26
42
|
#================
|
27
43
|
# Install Chrome
|
28
44
|
#================
|
29
|
-
RUN curl -
|
30
|
-
|
31
|
-
|
32
|
-
apt-get -yqq install google-chrome-stable && \
|
33
|
-
rm -rf /var/lib/apt/lists/*
|
45
|
+
RUN curl -LO https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
46
|
+
RUN apt-get install -y ./google-chrome-stable_current_amd64.deb
|
47
|
+
RUN rm google-chrome-stable_current_amd64.deb
|
34
48
|
|
35
|
-
|
36
|
-
# Install
|
37
|
-
|
38
|
-
RUN apt-get -
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
&& wget --no-check-certificate -O firefox-esr.tar.bz2 \
|
43
|
-
'https://download.mozilla.org/?product=firefox-esr-latest&os=linux64&lang=en-US' \
|
44
|
-
&& tar -xjf firefox-esr.tar.bz2 -C /opt/ \
|
45
|
-
&& ln -s /opt/firefox/firefox /usr/bin/firefox \
|
46
|
-
&& rm -f /tmp/firefox-esr.tar.bz2
|
49
|
+
#=======================================
|
50
|
+
# Install Python and Basic Python Tools
|
51
|
+
#=======================================
|
52
|
+
RUN apt-get -o Acquire::Check-Valid-Until=false -o Acquire::Check-Date=false update
|
53
|
+
RUN apt-get install -y python3 python3-pip python3-setuptools python3-dev python-distribute
|
54
|
+
RUN alias python=python3
|
55
|
+
RUN echo "alias python=python3" >> ~/.bashrc
|
47
56
|
|
48
57
|
#===========================
|
49
58
|
# Configure Virtual Display
|
@@ -58,9 +67,9 @@ RUN exec "$@"
|
|
58
67
|
# Update Python Version
|
59
68
|
#=======================
|
60
69
|
RUN apt-get update -y
|
61
|
-
RUN apt-get -qy --no-install-recommends install python3.
|
70
|
+
RUN apt-get -qy --no-install-recommends install python3.10
|
62
71
|
RUN rm /usr/bin/python3
|
63
|
-
RUN ln -s python3.
|
72
|
+
RUN ln -s python3.10 /usr/bin/python3
|
64
73
|
|
65
74
|
#=============================================
|
66
75
|
# Allow Special Characters in Python Programs
|
@@ -78,30 +87,20 @@ COPY integrations /SeleniumBase/integrations/
|
|
78
87
|
COPY requirements.txt /SeleniumBase/requirements.txt
|
79
88
|
COPY setup.py /SeleniumBase/setup.py
|
80
89
|
RUN find . -name '*.pyc' -delete
|
81
|
-
RUN find . -name __pycache__ -delete
|
82
90
|
RUN pip3 install --upgrade pip setuptools wheel
|
83
91
|
RUN cd /SeleniumBase && ls && pip3 install -r requirements.txt --upgrade
|
84
92
|
RUN cd /SeleniumBase && pip3 install .
|
85
93
|
|
86
|
-
|
87
|
-
# Download
|
88
|
-
|
89
|
-
RUN
|
90
|
-
RUN tar -xvzf geckodriver-v0.34.0-linux64.tar.gz
|
91
|
-
RUN chmod +x geckodriver
|
92
|
-
RUN mv geckodriver /usr/local/bin/
|
93
|
-
RUN wget https://chromedriver.storage.googleapis.com/72.0.3626.69/chromedriver_linux64.zip
|
94
|
-
RUN unzip chromedriver_linux64.zip
|
95
|
-
RUN chmod +x chromedriver
|
96
|
-
RUN mv chromedriver /usr/local/bin/
|
94
|
+
#=======================
|
95
|
+
# Download chromedriver
|
96
|
+
#=======================
|
97
|
+
RUN sbase get chromedriver --path
|
97
98
|
|
98
99
|
#==========================================
|
99
100
|
# Create entrypoint and grab example tests
|
100
101
|
#==========================================
|
101
102
|
COPY integrations/docker/docker-entrypoint.sh /
|
102
|
-
COPY integrations/docker/run_docker_test_in_firefox.sh /
|
103
103
|
COPY integrations/docker/run_docker_test_in_chrome.sh /
|
104
104
|
RUN chmod +x *.sh
|
105
|
-
COPY integrations/docker/docker_config.cfg /SeleniumBase/examples/
|
106
105
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
107
106
|
CMD ["/bin/bash"]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.25.
|
3
|
+
Version: 4.25.4
|
4
4
|
Summary: A complete web automation framework for end-to-end testing.
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
6
6
|
Author: Michael Mintz
|
@@ -61,13 +61,13 @@ License-File: LICENSE
|
|
61
61
|
Requires-Dist: pip>=24.0
|
62
62
|
Requires-Dist: packaging>=24.0
|
63
63
|
Requires-Dist: setuptools>=68.0.0; python_version < "3.8"
|
64
|
-
Requires-Dist: setuptools>=69.
|
64
|
+
Requires-Dist: setuptools>=69.5.1; python_version >= "3.8"
|
65
65
|
Requires-Dist: wheel>=0.42.0; python_version < "3.8"
|
66
66
|
Requires-Dist: wheel>=0.43.0; python_version >= "3.8"
|
67
67
|
Requires-Dist: attrs>=23.2.0
|
68
68
|
Requires-Dist: certifi>=2024.2.2
|
69
69
|
Requires-Dist: filelock>=3.12.2; python_version < "3.8"
|
70
|
-
Requires-Dist: filelock>=3.13.
|
70
|
+
Requires-Dist: filelock>=3.13.4; python_version >= "3.8"
|
71
71
|
Requires-Dist: platformdirs>=4.0.0; python_version < "3.8"
|
72
72
|
Requires-Dist: platformdirs>=4.2.0; python_version >= "3.8"
|
73
73
|
Requires-Dist: typing-extensions>=4.11.0; python_version >= "3.8"
|
@@ -75,7 +75,7 @@ Requires-Dist: parse>=1.20.1
|
|
75
75
|
Requires-Dist: parse-type>=0.6.2
|
76
76
|
Requires-Dist: pyyaml>=6.0.1
|
77
77
|
Requires-Dist: six==1.16.0
|
78
|
-
Requires-Dist: idna==3.
|
78
|
+
Requires-Dist: idna==3.7
|
79
79
|
Requires-Dist: chardet==5.2.0
|
80
80
|
Requires-Dist: charset-normalizer==3.3.2
|
81
81
|
Requires-Dist: urllib3<2,>=1.26.18; python_version < "3.10"
|
@@ -95,7 +95,7 @@ Requires-Dist: cssselect==1.2.0
|
|
95
95
|
Requires-Dist: sortedcontainers==2.4.0
|
96
96
|
Requires-Dist: fasteners==0.19
|
97
97
|
Requires-Dist: execnet==2.0.2; python_version < "3.8"
|
98
|
-
Requires-Dist: execnet==2.1.
|
98
|
+
Requires-Dist: execnet==2.1.1; python_version >= "3.8"
|
99
99
|
Requires-Dist: iniconfig==2.0.0
|
100
100
|
Requires-Dist: pluggy==1.2.0; python_version < "3.8"
|
101
101
|
Requires-Dist: pluggy==1.4.0; python_version >= "3.8"
|
@@ -181,7 +181,7 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
|
|
181
181
|
|
182
182
|
<h1>SeleniumBase</h1>
|
183
183
|
|
184
|
-
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
184
|
+
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
|
185
185
|
|
186
186
|
|
187
187
|
<p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
|
@@ -274,7 +274,7 @@ pytest test_demo_site.py
|
|
274
274
|
|
275
275
|
--------
|
276
276
|
|
277
|
-
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
277
|
+
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
|
278
278
|
|
279
279
|
<blockquote>
|
280
280
|
<p dir="auto"><strong>Explore the README:</strong></p>
|
@@ -1017,7 +1017,7 @@ pytest test_suite.py test_image_saving.py --dashboard --rs --headless
|
|
1017
1017
|
<a id="creating_visual_reports"></a>
|
1018
1018
|
<h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
|
1019
1019
|
|
1020
|
-
<h3>🔵
|
1020
|
+
<h3>🔵 <code>pytest</code> HTML Reports:</h3>
|
1021
1021
|
|
1022
1022
|
✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
|
1023
1023
|
|
@@ -1045,7 +1045,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
|
|
1045
1045
|
pytest test_suite.py --junit-xml=report.xml
|
1046
1046
|
```
|
1047
1047
|
|
1048
|
-
<h3>🔵 pynose Reports:</h3>
|
1048
|
+
<h3>🔵 <code>pynose</code> Reports:</h3>
|
1049
1049
|
|
1050
1050
|
The ``--report`` option gives you a fancy report after your test suite completes.
|
1051
1051
|
|
@@ -1057,7 +1057,7 @@ pynose test_suite.py --report
|
|
1057
1057
|
|
1058
1058
|
(NOTE: You can add ``--show-report`` to immediately display pynose reports after the test suite completes. Only use ``--show-report`` when running tests locally because it pauses the test run.)
|
1059
1059
|
|
1060
|
-
<h3>🔵
|
1060
|
+
<h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
|
1061
1061
|
|
1062
1062
|
(The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
|
1063
1063
|
|
@@ -1129,7 +1129,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
|
|
1129
1129
|
```
|
1130
1130
|
|
1131
1131
|
|
1132
|
-
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up
|
1132
|
+
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up Alerts:</h3>
|
1133
1133
|
|
1134
1134
|
🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.
|
1135
1135
|
|
@@ -1543,7 +1543,7 @@ pytest --reruns=1 --reruns-delay=1
|
|
1543
1543
|
|
1544
1544
|
<p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
|
1545
1545
|
|
1546
|
-
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
1546
|
+
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="240" /></a></div>
|
1547
1547
|
<div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
|
1548
1548
|
<div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
|
1549
1549
|
<div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
<h1>SeleniumBase</h1>
|
11
11
|
|
12
|
-
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
12
|
+
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
|
13
13
|
|
14
14
|
|
15
15
|
<p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
|
@@ -102,7 +102,7 @@ pytest test_demo_site.py
|
|
102
102
|
|
103
103
|
--------
|
104
104
|
|
105
|
-
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
105
|
+
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
|
106
106
|
|
107
107
|
<blockquote>
|
108
108
|
<p dir="auto"><strong>Explore the README:</strong></p>
|
@@ -845,7 +845,7 @@ pytest test_suite.py test_image_saving.py --dashboard --rs --headless
|
|
845
845
|
<a id="creating_visual_reports"></a>
|
846
846
|
<h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
|
847
847
|
|
848
|
-
<h3>🔵
|
848
|
+
<h3>🔵 <code>pytest</code> HTML Reports:</h3>
|
849
849
|
|
850
850
|
✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
|
851
851
|
|
@@ -873,7 +873,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
|
|
873
873
|
pytest test_suite.py --junit-xml=report.xml
|
874
874
|
```
|
875
875
|
|
876
|
-
<h3>🔵 pynose Reports:</h3>
|
876
|
+
<h3>🔵 <code>pynose</code> Reports:</h3>
|
877
877
|
|
878
878
|
The ``--report`` option gives you a fancy report after your test suite completes.
|
879
879
|
|
@@ -885,7 +885,7 @@ pynose test_suite.py --report
|
|
885
885
|
|
886
886
|
(NOTE: You can add ``--show-report`` to immediately display pynose reports after the test suite completes. Only use ``--show-report`` when running tests locally because it pauses the test run.)
|
887
887
|
|
888
|
-
<h3>🔵
|
888
|
+
<h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
|
889
889
|
|
890
890
|
(The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
|
891
891
|
|
@@ -957,7 +957,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
|
|
957
957
|
```
|
958
958
|
|
959
959
|
|
960
|
-
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up
|
960
|
+
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up Alerts:</h3>
|
961
961
|
|
962
962
|
🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.
|
963
963
|
|
@@ -1371,7 +1371,7 @@ pytest --reruns=1 --reruns-delay=1
|
|
1371
1371
|
|
1372
1372
|
<p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
|
1373
1373
|
|
1374
|
-
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
1374
|
+
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="240" /></a></div>
|
1375
1375
|
<div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
|
1376
1376
|
<div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
|
1377
1377
|
<div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
|
@@ -1,56 +1,42 @@
|
|
1
1
|
## Docker setup instructions for SeleniumBase
|
2
2
|
|
3
|
-
#### 1. Install the Docker
|
3
|
+
#### 1. Install the Docker Desktop:
|
4
4
|
|
5
5
|
You can get that from here:
|
6
|
-
https://www.docker.com/products/docker-
|
6
|
+
https://www.docker.com/products/docker-desktop/
|
7
7
|
|
8
8
|
You might also want to install the Docker Engine:
|
9
|
-
https://docs.docker.com/engine/
|
9
|
+
https://docs.docker.com/engine/install/
|
10
10
|
|
11
|
-
#### 2.
|
11
|
+
#### 2. Go to the SeleniumBase home directory on the command line, which is where [Dockerfile](https://github.com/seleniumbase/SeleniumBase/blob/master/Dockerfile) is located. (This assumes you've already cloned the SeleniumBase repo.)
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
##### (If your Docker environment ever goes down for any reason, you can bring it back up with a restart.)
|
16
|
-
|
17
|
-
docker-machine restart seleniumbase
|
18
|
-
|
19
|
-
#### 3. Configure your shell:
|
20
|
-
|
21
|
-
eval "$(docker-machine env seleniumbase)"
|
22
|
-
|
23
|
-
#### 4. Go to the SeleniumBase home directory on the command line, which is where [Dockerfile](https://github.com/seleniumbase/SeleniumBase/blob/master/Dockerfile) is located. (This assumes you've already cloned the SeleniumBase repo.)
|
24
|
-
|
25
|
-
#### 5. Create your Docker image from your Dockerfile: (Get ready to wait awhile)
|
13
|
+
#### 3. Create your Docker image from your Dockerfile: (Get ready to wait awhile)
|
26
14
|
|
27
15
|
docker build -t seleniumbase .
|
28
16
|
|
29
|
-
If running on an Apple M1 Mac, use this instead:
|
17
|
+
If running on an Apple M1/M2 Mac, use this instead:
|
30
18
|
|
31
19
|
docker build --platform linux/amd64 -t seleniumbase .
|
32
20
|
|
33
|
-
|
21
|
+
M1/M2 Mac users should also see [StackOverflow.com/a/76586216/7058266](https://stackoverflow.com/a/76586216/7058266) to **Enable Rosetta in Docker Desktop**. (Otherwise **you will** encounter errors like this when Chrome tries to launch: `"Chrome failed to start: crashed."`)
|
34
22
|
|
35
|
-
|
36
|
-
|
37
|
-
#### 7. Now run the same test with Firefox inside your Docker:
|
23
|
+
#### 4. Run [the example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/my_first_test.py) with Chrome inside your Docker: (Once the test completes after a few seconds, you'll automatically exit the Docker shell)
|
38
24
|
|
39
|
-
docker run seleniumbase ./
|
25
|
+
docker run seleniumbase ./run_docker_test_in_chrome.sh
|
40
26
|
|
41
|
-
####
|
27
|
+
#### 5. You can also enter Docker and stay inside the shell:
|
42
28
|
|
43
29
|
docker run -i -t seleniumbase
|
44
30
|
|
45
|
-
####
|
31
|
+
#### 6. Now you can run the example test from inside the Docker shell:
|
46
32
|
|
47
33
|
./run_docker_test_in_chrome.sh
|
48
34
|
|
49
|
-
####
|
35
|
+
#### 7. When you're satisfied, you may exit the Docker shell:
|
50
36
|
|
51
37
|
exit
|
52
38
|
|
53
|
-
####
|
39
|
+
#### 8. (Optional) Since Docker images and containers take up a lot of space, you may want to clean up your machine from time to time when they’re not being used:
|
54
40
|
|
55
41
|
Details on that can be found here:
|
56
42
|
http://stackoverflow.com/questions/17236796/how-to-remove-old-docker-containers
|
@@ -67,15 +53,10 @@ If you want to completely remove all of your Docker containers and images, use t
|
|
67
53
|
docker rm -f $(docker ps -a -q)
|
68
54
|
docker rmi -f $(docker images -q)
|
69
55
|
|
70
|
-
Finally, if you want to wipe out your SeleniumBase Docker virtualbox, use these commands:
|
71
|
-
|
72
|
-
docker-machine kill seleniumbase
|
73
|
-
docker-machine rm seleniumbase
|
74
|
-
|
75
56
|
For more cleanup commands, check out:
|
76
57
|
https://codefresh.io/blog/everyday-hacks-docker/
|
77
58
|
|
78
|
-
####
|
59
|
+
#### 9. (Optional) More reading on Docker can be found here:
|
79
60
|
* https://docs.docker.com
|
80
61
|
* https://docs.docker.com/get-started/
|
81
62
|
* https://docs.docker.com/docker-for-mac/
|
@@ -1,13 +1,13 @@
|
|
1
1
|
pip>=24.0
|
2
2
|
packaging>=24.0
|
3
3
|
setuptools>=68.0.0;python_version<"3.8"
|
4
|
-
setuptools>=69.
|
4
|
+
setuptools>=69.5.1;python_version>="3.8"
|
5
5
|
wheel>=0.42.0;python_version<"3.8"
|
6
6
|
wheel>=0.43.0;python_version>="3.8"
|
7
7
|
attrs>=23.2.0
|
8
8
|
certifi>=2024.2.2
|
9
9
|
filelock>=3.12.2;python_version<"3.8"
|
10
|
-
filelock>=3.13.
|
10
|
+
filelock>=3.13.4;python_version>="3.8"
|
11
11
|
platformdirs>=4.0.0;python_version<"3.8"
|
12
12
|
platformdirs>=4.2.0;python_version>="3.8"
|
13
13
|
typing-extensions>=4.11.0;python_version>="3.8"
|
@@ -15,7 +15,7 @@ parse>=1.20.1
|
|
15
15
|
parse-type>=0.6.2
|
16
16
|
pyyaml>=6.0.1
|
17
17
|
six==1.16.0
|
18
|
-
idna==3.
|
18
|
+
idna==3.7
|
19
19
|
chardet==5.2.0
|
20
20
|
charset-normalizer==3.3.2
|
21
21
|
urllib3>=1.26.18,<2;python_version<"3.10"
|
@@ -35,7 +35,7 @@ cssselect==1.2.0
|
|
35
35
|
sortedcontainers==2.4.0
|
36
36
|
fasteners==0.19
|
37
37
|
execnet==2.0.2;python_version<"3.8"
|
38
|
-
execnet==2.1.
|
38
|
+
execnet==2.1.1;python_version>="3.8"
|
39
39
|
iniconfig==2.0.0
|
40
40
|
pluggy==1.2.0;python_version<"3.8"
|
41
41
|
pluggy==1.4.0;python_version>="3.8"
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.25.
|
2
|
+
__version__ = "4.25.4"
|
@@ -4134,6 +4134,23 @@ class BaseCase(unittest.TestCase):
|
|
4134
4134
|
self.__dont_record_open = True
|
4135
4135
|
self.open(new_start_page)
|
4136
4136
|
self.__dont_record_open = False
|
4137
|
+
if undetectable:
|
4138
|
+
if hasattr(new_driver, "uc_open"):
|
4139
|
+
self.uc_open = new_driver.uc_open
|
4140
|
+
if hasattr(new_driver, "uc_open_with_tab"):
|
4141
|
+
self.uc_open_with_tab = new_driver.uc_open_with_tab
|
4142
|
+
if hasattr(new_driver, "uc_open_with_reconnect"):
|
4143
|
+
self.uc_open_with_reconnect = new_driver.uc_open_with_reconnect
|
4144
|
+
if hasattr(new_driver, "reconnect"):
|
4145
|
+
self.reconnect = new_driver.reconnect
|
4146
|
+
if hasattr(new_driver, "disconnect"):
|
4147
|
+
self.disconnect = new_driver.disconnect
|
4148
|
+
if hasattr(new_driver, "connect"):
|
4149
|
+
self.connect = new_driver.connect
|
4150
|
+
if hasattr(new_driver, "uc_click"):
|
4151
|
+
self.uc_click = new_driver.uc_click
|
4152
|
+
if hasattr(new_driver, "uc_switch_to_frame"):
|
4153
|
+
self.uc_switch_to_frame = new_driver.uc_switch_to_frame
|
4137
4154
|
return new_driver
|
4138
4155
|
|
4139
4156
|
def switch_to_driver(self, driver):
|
@@ -14,7 +14,7 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
|
14
14
|
):
|
15
15
|
if driver and selector and by:
|
16
16
|
delayed_click = False
|
17
|
-
if tag_name
|
17
|
+
if tag_name in ["span", "button", "div", "a"]:
|
18
18
|
delayed_click = True
|
19
19
|
if delayed_click and ":contains" not in selector:
|
20
20
|
selector = js_utils.convert_to_css_selector(selector, by)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.25.
|
3
|
+
Version: 4.25.4
|
4
4
|
Summary: A complete web automation framework for end-to-end testing.
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
6
6
|
Author: Michael Mintz
|
@@ -61,13 +61,13 @@ License-File: LICENSE
|
|
61
61
|
Requires-Dist: pip>=24.0
|
62
62
|
Requires-Dist: packaging>=24.0
|
63
63
|
Requires-Dist: setuptools>=68.0.0; python_version < "3.8"
|
64
|
-
Requires-Dist: setuptools>=69.
|
64
|
+
Requires-Dist: setuptools>=69.5.1; python_version >= "3.8"
|
65
65
|
Requires-Dist: wheel>=0.42.0; python_version < "3.8"
|
66
66
|
Requires-Dist: wheel>=0.43.0; python_version >= "3.8"
|
67
67
|
Requires-Dist: attrs>=23.2.0
|
68
68
|
Requires-Dist: certifi>=2024.2.2
|
69
69
|
Requires-Dist: filelock>=3.12.2; python_version < "3.8"
|
70
|
-
Requires-Dist: filelock>=3.13.
|
70
|
+
Requires-Dist: filelock>=3.13.4; python_version >= "3.8"
|
71
71
|
Requires-Dist: platformdirs>=4.0.0; python_version < "3.8"
|
72
72
|
Requires-Dist: platformdirs>=4.2.0; python_version >= "3.8"
|
73
73
|
Requires-Dist: typing-extensions>=4.11.0; python_version >= "3.8"
|
@@ -75,7 +75,7 @@ Requires-Dist: parse>=1.20.1
|
|
75
75
|
Requires-Dist: parse-type>=0.6.2
|
76
76
|
Requires-Dist: pyyaml>=6.0.1
|
77
77
|
Requires-Dist: six==1.16.0
|
78
|
-
Requires-Dist: idna==3.
|
78
|
+
Requires-Dist: idna==3.7
|
79
79
|
Requires-Dist: chardet==5.2.0
|
80
80
|
Requires-Dist: charset-normalizer==3.3.2
|
81
81
|
Requires-Dist: urllib3<2,>=1.26.18; python_version < "3.10"
|
@@ -95,7 +95,7 @@ Requires-Dist: cssselect==1.2.0
|
|
95
95
|
Requires-Dist: sortedcontainers==2.4.0
|
96
96
|
Requires-Dist: fasteners==0.19
|
97
97
|
Requires-Dist: execnet==2.0.2; python_version < "3.8"
|
98
|
-
Requires-Dist: execnet==2.1.
|
98
|
+
Requires-Dist: execnet==2.1.1; python_version >= "3.8"
|
99
99
|
Requires-Dist: iniconfig==2.0.0
|
100
100
|
Requires-Dist: pluggy==1.2.0; python_version < "3.8"
|
101
101
|
Requires-Dist: pluggy==1.4.0; python_version >= "3.8"
|
@@ -181,7 +181,7 @@ Requires-Dist: zstandard==0.22.0; extra == "selenium-wire"
|
|
181
181
|
|
182
182
|
<h1>SeleniumBase</h1>
|
183
183
|
|
184
|
-
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
184
|
+
<p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
|
185
185
|
|
186
186
|
|
187
187
|
<p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
|
@@ -274,7 +274,7 @@ pytest test_demo_site.py
|
|
274
274
|
|
275
275
|
--------
|
276
276
|
|
277
|
-
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
277
|
+
<p align="left"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="232" /></a></p>
|
278
278
|
|
279
279
|
<blockquote>
|
280
280
|
<p dir="auto"><strong>Explore the README:</strong></p>
|
@@ -1017,7 +1017,7 @@ pytest test_suite.py test_image_saving.py --dashboard --rs --headless
|
|
1017
1017
|
<a id="creating_visual_reports"></a>
|
1018
1018
|
<h2><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Generating Test Reports:</h2>
|
1019
1019
|
|
1020
|
-
<h3>🔵
|
1020
|
+
<h3>🔵 <code>pytest</code> HTML Reports:</h3>
|
1021
1021
|
|
1022
1022
|
✅ Using ``--html=report.html`` gives you a fancy report of the name specified after your test suite completes.
|
1023
1023
|
|
@@ -1045,7 +1045,7 @@ You can also use ``--junit-xml=report.xml`` to get an xml report instead. Jenkin
|
|
1045
1045
|
pytest test_suite.py --junit-xml=report.xml
|
1046
1046
|
```
|
1047
1047
|
|
1048
|
-
<h3>🔵 pynose Reports:</h3>
|
1048
|
+
<h3>🔵 <code>pynose</code> Reports:</h3>
|
1049
1049
|
|
1050
1050
|
The ``--report`` option gives you a fancy report after your test suite completes.
|
1051
1051
|
|
@@ -1057,7 +1057,7 @@ pynose test_suite.py --report
|
|
1057
1057
|
|
1058
1058
|
(NOTE: You can add ``--show-report`` to immediately display pynose reports after the test suite completes. Only use ``--show-report`` when running tests locally because it pauses the test run.)
|
1059
1059
|
|
1060
|
-
<h3>🔵
|
1060
|
+
<h3>🔵 <code>behave</code> Dashboard & Reports:</h3>
|
1061
1061
|
|
1062
1062
|
(The [behave_bdd/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples/behave_bdd) folder can be found in the [examples/](https://github.com/seleniumbase/SeleniumBase/tree/master/examples) folder.)
|
1063
1063
|
|
@@ -1129,7 +1129,7 @@ pytest user_agent_test.py --agent="Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1
|
|
1129
1129
|
```
|
1130
1130
|
|
1131
1131
|
|
1132
|
-
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up
|
1132
|
+
<h3><img src="https://seleniumbase.github.io/img/logo7.png" title="SeleniumBase" width="32" /> Handling Pop-Up Alerts:</h3>
|
1133
1133
|
|
1134
1134
|
🔵 <code translate="no">self.accept_alert()</code> automatically waits for and accepts alert pop-ups. <code translate="no">self.dismiss_alert()</code> automatically waits for and dismisses alert pop-ups. On occasion, some methods like <code translate="no">self.click(SELECTOR)</code> might dismiss a pop-up on its own because they call JavaScript to make sure that the <code translate="no">readyState</code> of the page is <code translate="no">complete</code> before advancing. If you're trying to accept a pop-up that got dismissed this way, use this workaround: Call <code translate="no">self.find_element(SELECTOR).click()</code> instead, (which will let the pop-up remain on the screen), and then use <code translate="no">self.accept_alert()</code> to accept the pop-up (<a href="https://github.com/seleniumbase/SeleniumBase/issues/600#issuecomment-647270426">more on that here</a>). If pop-ups are intermittent, wrap code in a try/except block.
|
1135
1135
|
|
@@ -1543,7 +1543,7 @@ pytest --reruns=1 --reruns-delay=1
|
|
1543
1543
|
|
1544
1544
|
<p><div><b><a href="https://github.com/mdmintz">https://github.com/mdmintz</a></b></div></p>
|
1545
1545
|
|
1546
|
-
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/
|
1546
|
+
<div><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" title="SeleniumBase" width="240" /></a></div>
|
1547
1547
|
<div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a></div> <div><a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
|
1548
1548
|
<div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a></div>
|
1549
1549
|
<div><a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
|
@@ -316,9 +316,7 @@ integrations/brython/index.py
|
|
316
316
|
integrations/brython/library.html
|
317
317
|
integrations/docker/ReadMe.md
|
318
318
|
integrations/docker/docker-entrypoint.sh
|
319
|
-
integrations/docker/docker_config.cfg
|
320
319
|
integrations/docker/run_docker_test_in_chrome.sh
|
321
|
-
integrations/docker/run_docker_test_in_firefox.sh
|
322
320
|
integrations/github/ReadMe.md
|
323
321
|
integrations/github/workflows/ReadMe.md
|
324
322
|
integrations/github/workflows/extras.md
|
@@ -6,7 +6,7 @@ parse>=1.20.1
|
|
6
6
|
parse-type>=0.6.2
|
7
7
|
pyyaml>=6.0.1
|
8
8
|
six==1.16.0
|
9
|
-
idna==3.
|
9
|
+
idna==3.7
|
10
10
|
chardet==5.2.0
|
11
11
|
charset-normalizer==3.3.2
|
12
12
|
requests==2.31.0
|
@@ -62,14 +62,14 @@ markdown-it-py==2.2.0
|
|
62
62
|
urllib3<2.3.0,>=1.26.18
|
63
63
|
|
64
64
|
[:python_version >= "3.8"]
|
65
|
-
setuptools>=69.
|
65
|
+
setuptools>=69.5.1
|
66
66
|
wheel>=0.43.0
|
67
|
-
filelock>=3.13.
|
67
|
+
filelock>=3.13.4
|
68
68
|
platformdirs>=4.2.0
|
69
69
|
typing-extensions>=4.11.0
|
70
70
|
trio==0.25.0
|
71
71
|
selenium==4.19.0
|
72
|
-
execnet==2.1.
|
72
|
+
execnet==2.1.1
|
73
73
|
pluggy==1.4.0
|
74
74
|
pytest==8.1.1
|
75
75
|
pytest-metadata==3.1.1
|