seleniumbase 4.15.15__tar.gz → 4.16.0__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.15.15 → seleniumbase-4.16.0}/PKG-INFO +4 -4
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/README.md +3 -3
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/ReadMe.md +18 -28
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/custom_settings.py +13 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/hack_the_planet.py +2 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/raw_selenium/ReadMe.md +2 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_download_files.py +1 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_error_page.py +1 -1
- seleniumbase-4.16.0/examples/test_geolocation.py +41 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/chinese_test_1.py +1 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/korean_test_1.py +1 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/spanish_test_1.py +2 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/customizing_test_runs.md +5 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/happy_customers.md +1 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/method_summary.md +2 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/syntax_formats.md +4 -4
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/webdriver_installation.md +3 -3
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/requirements.txt +5 -4
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/requirements.txt +3 -3
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/sbase/__init__.py +1 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/__init__.py +1 -0
- seleniumbase-4.16.0/seleniumbase/__version__.py +2 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/behave/behave_sb.py +12 -19
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/common/exceptions.py +5 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/config/settings.py +7 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/ReadMe.md +2 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/run.py +5 -4
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_behave_gui.py +6 -9
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_caseplans.py +2 -5
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_commander.py +5 -8
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_install.py +43 -54
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_print.py +2 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_recorder.py +3 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/browser_launcher.py +13 -27
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/capabilities_parser.py +2 -3
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/detect_b_ver.py +3 -4
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/jqc_helper.py +2 -4
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/mysql.py +1 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/proxy_helper.py +65 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/recorder_helper.py +1 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/s3_manager.py +29 -23
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/session_helper.py +2 -6
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/settings_parser.py +2 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/base_case.py +31 -13
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/constants.py +1 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/css_to_xpath.py +1 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/errors.py +2 -7
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/js_utils.py +8 -16
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/page_actions.py +3 -6
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/page_utils.py +1 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/shared_utils.py +26 -79
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/xpath_to_css.py +1 -3
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/base_plugin.py +1 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/basic_test_info.py +1 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/db_reporting_plugin.py +2 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/driver_manager.py +2 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/page_source.py +2 -4
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/pytest_plugin.py +9 -8
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/s3_logging_plugin.py +20 -9
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/sb_manager.py +2 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/screen_shots.py +2 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/selenium_plugin.py +5 -8
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/translator.py +397 -396
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/undetected/__init__.py +17 -37
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/grid_hub.py +2 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/grid_node.py +2 -1
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase.egg-info/PKG-INFO +4 -4
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase.egg-info/SOURCES.txt +1 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase.egg-info/requires.txt +3 -3
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/setup.py +3 -3
- seleniumbase-4.15.15/seleniumbase/__version__.py +0 -2
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.github/Workflows.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.github/workflows/pages.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.github/workflows/python-nightly-mac.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.github/workflows/python-nightly-ubuntu.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.github/workflows/python-nightly-windows.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.github/workflows/python-package-legacy.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.github/workflows/python-package.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.gitignore +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/.travis.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/CHANGELOG.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/CNAME +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/CODE_OF_CONDUCT.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/CONTRIBUTING.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/Dockerfile +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/LICENSE +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/MANIFEST.in +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/SECURITY.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/_config.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/azure-pipelines.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/basic_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/behave.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/behave.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/calculator.feature +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/environment.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/fail_page.feature +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/realworld.feature +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/calculator.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/fail_page.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/imported.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/behave_bdd/features/swag_labs.feature +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/base_test_case.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/boilerplate_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/classic_obj_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/page_objects.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/google_objects.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/google_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/sb_swag_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/swag_labs_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/samples/test_page_objects.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/boilerplates/sb_fixture_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/capabilities/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/capabilities/mac_cap_file.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/capabilities/sample_cap_file_BS.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/capabilities/sample_cap_file_SL.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/capabilities/selenoid_cap_file.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/capabilities/win10_cap_file.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/case_summary.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/chart_presentation.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/my_chart.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/pie_charts.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/test_area_chart.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/test_display_chart.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/test_line_chart.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/test_multi_series.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/chart_maker/test_save_chart.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/coffee_cart_tests.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/desktop_apps/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/desktop_apps/recorder.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/dialog_boxes/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/dialog_boxes/dialog_box_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/edge_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/example_config.cfg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/example_logs/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/example_logs/basic_test_info.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/example_logs/page_source.html +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/example_logs/screenshot.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/github_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/gui_test_runner.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/handle_alert_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/iframe_tests.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/locale_code_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/master_qa/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/master_qa/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/master_qa/basic_masterqa_test_0.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/master_qa/masterqa_test_1.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/master_qa/pytest.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/protractor/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/protractor/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/protractor/example_spec.js +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/protractor/example_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/protractor/input_spec.js +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/protractor/input_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/protractor/mat_paginator_spec.js +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/protractor/mat_paginator_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/raw_selenium/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/raw_selenium/messy_raw.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/raw_selenium/pytest.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/raw_selenium/refined_raw.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/migration/raw_selenium/simple_sbase.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/my_first_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/nth_child_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/offline_examples/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/offline_examples/demo_page.html +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/offline_examples/load_html_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/offline_examples/test_demo_page.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/offline_examples/test_handle_alerts.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/offline_examples/test_request_fixture.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/offline_examples/test_user_agent.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/old_wordle_script.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/parameterized_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/performance_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/presenter/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/presenter/core_presentation.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/presenter/edge_presentation.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/presenter/fundamentals.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/presenter/my_presentation.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/presenter/py_virtual_envs.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/proxy_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/pytest.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/rate_limiting_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/raw_browser_launcher.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/raw_call.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/raw_driver_context.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/raw_file_call.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/raw_main_call.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/raw_parameter_script.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/raw_sb.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/raw_test_scripts.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/setup.cfg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/shadow_root_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/swag_labs_user_tests.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_apple_site.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_assert_elements.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_calculator.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_canvas.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_checkboxes.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_chinese_pdf.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_chromedriver.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_coffee_cart.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_console_logging.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_contains_selector.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_cycle_elements.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_decryption.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_deferred_asserts.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_demo_site.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_detect_404s.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_docs_site.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_double_click.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_download_images.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_drag_and_drop.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_event_firing.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_fail.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_get_locale_code.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_get_pdf_text.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_get_user_agent.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_hack_search.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_image_saving.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_inspect_html.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_login.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_markers.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_mfa_login.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_multiple_drivers.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_null.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_override_driver.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_override_sb_fixture.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_parse_soup.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_pdf_asserts.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_pytest_parametrize.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_repeat_tests.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_request_sb_fixture.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_save_screenshots.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_sb_fixture.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_scrape_bing.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_select_options.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_shadow_dom.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_show_file_choosers.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_skype_site.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_suite.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_swag_labs.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_tinymce.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_todomvc.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_url_asserts.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_usefixtures.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_verify_chromedriver.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_window_switching.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_xfail.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/test_xkcd.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/time_limit_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/bootstrap_google_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/driverjs_maps_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/google_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/hopscotch_google_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/introjs_google_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/maps_introjs_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/octocat_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/shepherd_google_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/tour_examples/xkcd_tour.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/dutch_test_1.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/english_test_1.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/french_test_1.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/italian_test_1.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/japanese_test_1.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/portuguese_test_1.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/pytest.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/translations/russian_test_1.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/uc_cdp_events.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/unit_tests/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/unit_tests/verify_framework.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/upgrade_chromedriver.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/upload_file_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/user_agent_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/verify_undetected.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/layout_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/python_home_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/test_layout_fail.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/visual_testing/xkcd_visual_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/wordle_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/xpath_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/examples/youtube_search_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/behave_gui.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/case_plans.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/chinese.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/commander.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/demo_mode.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/desired_capabilities.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/features_list.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/hidden_files_info.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/how_it_works.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/html_inspector.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/install.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/install_python_pip_git.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/js_package_manager.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/locale_codes.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/mobile_testing.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/mysql_installation.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/recorder_mode.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/shadow_dom.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/thank_you.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/translations.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/useful_grep_commands.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/using_safari_driver.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/verify_webdriver.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/help_docs/virtualenv_instructions.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/install.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/azure/jenkins/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/behave.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/behave.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/calculator.feature +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/environment.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/fail_page.feature +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/realworld.feature +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/steps/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/steps/calculator.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/steps/fail_page.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/steps/real_world.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/behave/features/swag_labs.feature +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/brython/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/brython/index.html +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/brython/index.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/brython/library.html +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/docker/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/docker/docker-entrypoint.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/docker/docker_config.cfg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/docker/run_docker_test_in_firefox.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/github/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/github/workflows/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/github/workflows/extras.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/google_cloud/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/katalon/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/linux/Linuxfile.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/linux/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/linux/Xvfb_launcher.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/linux/jenkins_permissions.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/linux/tomcat_permissions.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/node_js/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/node_js/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/node_js/index.html +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/node_js/my_first_test.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/node_js/npm-shrinkwrap.json +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/node_js/package.json +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/node_js/server.js +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/node_js/test_demo_site.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/integrations/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs.yml +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/ReadMe.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/docs_instructions.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/dash_pie.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/dash_pie_2.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/dash_pie_3.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/favicon.ico +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/grad_logo.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/green_icon.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/green_logo.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/green_logo2.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/green_logo3.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/logo3.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/logo3a.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/logo3b.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/logo3c.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/logo4.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/logo5.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/logo6.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/logo7.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/sb_icon.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/sb_logo_10.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/sb_logo_7.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/side_by_side.png +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_facebook.svg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_github.svg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_gitter.svg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_instagram.svg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/img/social/share_twitter.svg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/index.html +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/mkdocs_build/prepare.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/pytest.ini +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/sbase/ReadMe.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/sbase/__main__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/sbase/steps.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/common/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/drivers/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/extensions/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/masterqa/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/resources/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/resources/favicon.ico +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/undetected/webelement.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/setup.cfg +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/virtualenv_install.sh +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/win_install.bat +0 -0
- {seleniumbase-4.15.15 → seleniumbase-4.16.0}/win_virtualenv.bat +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.16.0
|
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
|
@@ -197,7 +197,7 @@ class CoffeeCartTest(BaseCase):
|
|
197
197
|
|
198
198
|
<p>💡 With raw Selenium, commands that use selectors need to specify the type of selector (eg. <code>"css selector", "button#myButton"</code>). With SeleniumBase, there's auto-detection between CSS Selectors and XPath, which means you don't need to specify the type of selector in your commands (<i>but optionally you could</i>).</p>
|
199
199
|
|
200
|
-
<p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in "\n"
|
200
|
+
<p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in <code>"\n"</code>.<br />With raw Selenium, those actions require multiple method calls.</p>
|
201
201
|
|
202
202
|
<p>💡 SeleniumBase uses default timeout values when not set:<br />
|
203
203
|
✅<code>self.click("button")</code><br />
|
@@ -720,8 +720,8 @@ pytest test_coffee_cart.py --trace
|
|
720
720
|
--incognito # (Enable Chrome's Incognito mode.)
|
721
721
|
--guest # (Enable Chrome's Guest mode.)
|
722
722
|
--devtools # (Open Chrome's DevTools when the browser opens.)
|
723
|
-
--
|
724
|
-
--reuse-class-session
|
723
|
+
--rs | --reuse-session # (Reuse browser session for all tests.)
|
724
|
+
--rcs | --reuse-class-session # (Reuse session for tests in class.)
|
725
725
|
--crumbs # (Delete all cookies between tests reusing a session.)
|
726
726
|
--disable-beforeunload # (Disable the "beforeunload" event on Chrome.)
|
727
727
|
--window-size=WIDTH,HEIGHT # (Set the browser's starting window size.)
|
@@ -136,7 +136,7 @@ class CoffeeCartTest(BaseCase):
|
|
136
136
|
|
137
137
|
<p>💡 With raw Selenium, commands that use selectors need to specify the type of selector (eg. <code>"css selector", "button#myButton"</code>). With SeleniumBase, there's auto-detection between CSS Selectors and XPath, which means you don't need to specify the type of selector in your commands (<i>but optionally you could</i>).</p>
|
138
138
|
|
139
|
-
<p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in "\n"
|
139
|
+
<p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in <code>"\n"</code>.<br />With raw Selenium, those actions require multiple method calls.</p>
|
140
140
|
|
141
141
|
<p>💡 SeleniumBase uses default timeout values when not set:<br />
|
142
142
|
✅<code>self.click("button")</code><br />
|
@@ -659,8 +659,8 @@ pytest test_coffee_cart.py --trace
|
|
659
659
|
--incognito # (Enable Chrome's Incognito mode.)
|
660
660
|
--guest # (Enable Chrome's Guest mode.)
|
661
661
|
--devtools # (Open Chrome's DevTools when the browser opens.)
|
662
|
-
--
|
663
|
-
--reuse-class-session
|
662
|
+
--rs | --reuse-session # (Reuse browser session for all tests.)
|
663
|
+
--rcs | --reuse-class-session # (Reuse session for tests in class.)
|
664
664
|
--crumbs # (Delete all cookies between tests reusing a session.)
|
665
665
|
--disable-beforeunload # (Disable the "beforeunload" event on Chrome.)
|
666
666
|
--window-size=WIDTH,HEIGHT # (Set the browser's starting window size.)
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
--------
|
21
21
|
|
22
|
-
Run an [example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_demo_site.py): (Default option: ``--
|
22
|
+
Run an [example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_demo_site.py): (Default option: ``--chrome``)
|
23
23
|
|
24
24
|
```bash
|
25
25
|
pytest test_demo_site.py
|
@@ -37,7 +37,7 @@ pytest my_first_test.py --browser=firefox
|
|
37
37
|
|
38
38
|
--------
|
39
39
|
|
40
|
-
Run an example test in
|
40
|
+
Run an example test in ``--demo`` mode: (highlight assertions)
|
41
41
|
|
42
42
|
```bash
|
43
43
|
pytest test_swag_labs.py --demo
|
@@ -67,7 +67,7 @@ pytest wordle_test.py
|
|
67
67
|
|
68
68
|
--------
|
69
69
|
|
70
|
-
Run an example test in
|
70
|
+
Run an example test in ``--headless`` mode: (invisible browser)
|
71
71
|
|
72
72
|
```bash
|
73
73
|
pytest my_first_test.py --headless
|
@@ -85,7 +85,7 @@ pytest test_swag_labs.py --mobile
|
|
85
85
|
|
86
86
|
--------
|
87
87
|
|
88
|
-
Run
|
88
|
+
Run an [example test](https://github.com/seleniumbase/SeleniumBase/blob/master/examples/test_xkcd.py) in ``--demo`` mode: (highlight assertions)
|
89
89
|
|
90
90
|
```bash
|
91
91
|
pytest test_xkcd.py --demo
|
@@ -103,10 +103,10 @@ pytest test_suite.py -v
|
|
103
103
|
|
104
104
|
--------
|
105
105
|
|
106
|
-
Run a test suite
|
106
|
+
Run a test suite using multiple parallel processes (``-n=NUM``):
|
107
107
|
|
108
108
|
```bash
|
109
|
-
pytest test_suite.py -n=
|
109
|
+
pytest test_suite.py -n=8
|
110
110
|
```
|
111
111
|
|
112
112
|
--------
|
@@ -127,7 +127,7 @@ pytest test_suite.py --dashboard
|
|
127
127
|
|
128
128
|
--------
|
129
129
|
|
130
|
-
Run a test suite and generate a pytest report:
|
130
|
+
Run a test suite and generate a ``pytest`` report:
|
131
131
|
|
132
132
|
```bash
|
133
133
|
pytest test_suite.py --html=report.html
|
@@ -143,15 +143,17 @@ pytest test_fail.py
|
|
143
143
|
|
144
144
|
--------
|
145
145
|
|
146
|
-
Run a failing test
|
146
|
+
Run a failing test that activates ``pdb`` debug mode on failure:
|
147
147
|
|
148
148
|
```bash
|
149
149
|
pytest test_fail.py --pdb -s
|
150
150
|
```
|
151
151
|
|
152
|
+
> (**``pdb``** commands: ``n``, ``c``, ``s``, ``u``, ``d`` => ``next``, ``continue``, ``step``, ``up``, ``down``)
|
153
|
+
|
152
154
|
--------
|
153
155
|
|
154
|
-
Run a test suite that demonstrates the use of pytest markers:
|
156
|
+
Run a test suite that demonstrates the use of ``pytest`` markers:
|
155
157
|
|
156
158
|
```bash
|
157
159
|
pytest -m marker_test_suite -v
|
@@ -162,7 +164,7 @@ pytest -m marker_test_suite -v
|
|
162
164
|
Run a test suite that reuses the browser session between tests:
|
163
165
|
|
164
166
|
```bash
|
165
|
-
pytest test_suite.py --
|
167
|
+
pytest test_suite.py --rs
|
166
168
|
```
|
167
169
|
|
168
170
|
--------
|
@@ -183,7 +185,7 @@ pytest upload_file_test.py
|
|
183
185
|
|
184
186
|
--------
|
185
187
|
|
186
|
-
|
188
|
+
🎖️ **SeleniumBase Commander** is a GUI for ``pytest``:
|
187
189
|
|
188
190
|
```bash
|
189
191
|
sbase gui
|
@@ -195,15 +197,13 @@ sbase gui
|
|
195
197
|
|
196
198
|
<b>SeleniumBase tests can also be run with ``pynose``:</b>
|
197
199
|
|
198
|
-
Run an example test with pynose:
|
199
|
-
|
200
200
|
```bash
|
201
201
|
pynose my_first_test.py
|
202
202
|
```
|
203
203
|
|
204
204
|
--------
|
205
205
|
|
206
|
-
Run an example test suite and generate a pynose test report:
|
206
|
+
Run an example test suite and generate a ``pynose`` test report:
|
207
207
|
|
208
208
|
```bash
|
209
209
|
pynose test_suite.py --report --show-report
|
@@ -211,7 +211,7 @@ pynose test_suite.py --report --show-report
|
|
211
211
|
|
212
212
|
--------
|
213
213
|
|
214
|
-
Run an example test using a pynose configuration file:
|
214
|
+
Run an example test using a ``pynose`` configuration file:
|
215
215
|
|
216
216
|
```bash
|
217
217
|
pynose my_first_test.py --config=example_config.cfg
|
@@ -219,7 +219,7 @@ pynose my_first_test.py --config=example_config.cfg
|
|
219
219
|
|
220
220
|
--------
|
221
221
|
|
222
|
-
For more advanced run commands
|
222
|
+
For more advanced **run commands**, such as using a proxy server, see [../help_docs/customizing_test_runs.md](https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md)
|
223
223
|
|
224
224
|
--------
|
225
225
|
|
@@ -229,7 +229,7 @@ If you just need to perform some quick website verification on various devices,
|
|
229
229
|
|
230
230
|
--------
|
231
231
|
|
232
|
-
To make things easier, here's a simple GUI program that allows you to run a few example tests by pressing a button:
|
232
|
+
To make things easier, here's a **simple GUI program** that allows you to run a few example tests by pressing a button:
|
233
233
|
|
234
234
|
```bash
|
235
235
|
python gui_test_runner.py
|
@@ -237,17 +237,7 @@ python gui_test_runner.py
|
|
237
237
|
|
238
238
|
<img src="https://seleniumbase.github.io/cdn/img/gui_test_runner.png" title="GUI Test Runner" width="320" />
|
239
239
|
|
240
|
-
(The newer [SeleniumBase Commander](https://seleniumbase.io/help_docs/commander/) improves on that.)
|
241
|
-
|
242
|
-
--------
|
243
|
-
|
244
|
-
🎖️ To launch the SeleniumBase Commander GUI for pytest:
|
245
|
-
|
246
|
-
```bash
|
247
|
-
sbase gui
|
248
|
-
```
|
249
|
-
|
250
|
-
<img src="https://seleniumbase.github.io/cdn/img/sbase_commander_wide.png" title="SeleniumBase Commander" width="600">
|
240
|
+
(The newer **[SeleniumBase Commander](https://seleniumbase.io/help_docs/commander/)** improves on that.)
|
251
241
|
|
252
242
|
--------
|
253
243
|
|
@@ -19,10 +19,22 @@ PAGE_LOAD_TIMEOUT = 120
|
|
19
19
|
# Selenium default = "normal"
|
20
20
|
PAGE_LOAD_STRATEGY = "normal"
|
21
21
|
|
22
|
-
# If
|
22
|
+
# If True, existing logs from past test runs will be saved and take up space.
|
23
|
+
# If False, only the logs from the most recent test run will be saved locally.
|
24
|
+
# You can also archive existing logs on the command line with: "--archive_logs"
|
23
25
|
ARCHIVE_EXISTING_LOGS = False
|
26
|
+
|
27
|
+
# If True, existing downloads from past runs will be saved and take up space.
|
28
|
+
# If False, only the downloads from the most recent run will be saved locally.
|
24
29
|
ARCHIVE_EXISTING_DOWNLOADS = False
|
25
30
|
|
31
|
+
# If True, the last page screenshot will include the <body> and background.
|
32
|
+
# If False, the last page screenshot will only include the <body> section.
|
33
|
+
# Depending on the screen size, including a background could make the <body>
|
34
|
+
# appear very small in the screenshot, which may require manually zooming in
|
35
|
+
# on the <body> to see page details if you decide to include the background.
|
36
|
+
SCREENSHOT_WITH_BACKGROUND = False
|
37
|
+
|
26
38
|
# If True, switch to new tabs automatically if a click opens a new one.
|
27
39
|
# (Only happens if the initial tab is still on same URL as before.)
|
28
40
|
SWITCH_TO_NEW_TABS_ON_CLICK = True
|
@@ -196,7 +196,7 @@ class HackTests(BaseCase):
|
|
196
196
|
self.set_text_content('a[prettyslug="your-profile"]', "BASE")
|
197
197
|
self.set_text_content('a[prettyslug="connect-tools"]', "ARE")
|
198
198
|
self.set_text_content('a[prettyslug="administration"]', "BELONG")
|
199
|
-
self.set_text_content('a[prettyslug
|
199
|
+
self.set_text_content('a[prettyslug*="tutorials"]', "TO US")
|
200
200
|
self.set_text_content("h1.article_title", aybabtu)
|
201
201
|
self.highlight("h1", loops=4, scroll=False)
|
202
202
|
self.highlight("div#global_menu", loops=2, scroll=False)
|
@@ -205,7 +205,7 @@ class HackTests(BaseCase):
|
|
205
205
|
self.highlight('a[prettyslug="your-profile"]', loops=2, scroll=False)
|
206
206
|
self.highlight('a[prettyslug="connect-tools"]', loops=1, scroll=False)
|
207
207
|
self.highlight('a[prettyslug="administration"]', loops=1, scroll=False)
|
208
|
-
self.highlight('a[prettyslug
|
208
|
+
self.highlight('a[prettyslug*="tutorials"]', loops=2, scroll=False)
|
209
209
|
self.highlight("h1.article_title", loops=5, scroll=False)
|
210
210
|
|
211
211
|
self.open("https://kubernetes.io/")
|
@@ -47,7 +47,7 @@ With a complete test automation framework built, most of the hard work is alread
|
|
47
47
|
|
48
48
|
<p>💡 With raw Selenium, commands that use selectors need to specify the type of selector (eg. <code>"css selector", "button#myButton"</code>). With SeleniumBase, there's auto-detection between CSS Selectors and XPath, which means you don't need to specify the type of selector in your commands (<i>but optionally you could</i>).</p>
|
49
49
|
|
50
|
-
<p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in "\n"
|
50
|
+
<p>💡 SeleniumBase methods often perform multiple actions in a single method call. For example, <code>self.type(selector,text)</code> does the following:<br />1. Waits for the element to be visible.<br />2. Waits for the element to be interactive.<br />3. Clears the text field.<br />4. Types in the new text.<br />5. Presses Enter/Submit if the text ends in <code>"\n"</code>.<br />With raw Selenium, those actions require multiple method calls.</p>
|
51
51
|
|
52
52
|
<p>💡 SeleniumBase uses default timeout values when not set, which means that methods automatically wait for elements to appear (<i>up to the timeout limit</i>) before failing:<br />✅<code>self.click("button")</code><br />With raw Selenium, methods would fail instantly (<i>by default</i>) if an element needed more time to load:<br />❌<code>self.driver.find_element(by="css selector", value="button").click()</code><br />(Reliable code is better than unreliable code.)</p>
|
53
53
|
|
@@ -64,4 +64,4 @@ With a complete test automation framework built, most of the hard work is alread
|
|
64
64
|
|
65
65
|
--------
|
66
66
|
|
67
|
-
[<img src="https://seleniumbase.io/cdn/img/fancy_logo_14.png" title="SeleniumBase" width="290">](https://github.com/seleniumbase/SeleniumBase)
|
67
|
+
[<img src="https://seleniumbase.github.io/cdn/img/fancy_logo_14.png" title="SeleniumBase" width="290">](https://github.com/seleniumbase/SeleniumBase)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
from seleniumbase import BaseCase
|
2
|
+
BaseCase.main(__name__, __file__)
|
3
|
+
|
4
|
+
|
5
|
+
class TestGeolocation(BaseCase):
|
6
|
+
def tearDown(self):
|
7
|
+
self.save_teardown_screenshot() # If test fails, or if "--screenshot"
|
8
|
+
if self.is_chromium() and not self._multithreaded:
|
9
|
+
# Reset Permissions and GeolocationOverride
|
10
|
+
self.execute_cdp_cmd("Browser.resetPermissions", {})
|
11
|
+
self.execute_cdp_cmd("Emulation.setGeolocationOverride", {})
|
12
|
+
super().tearDown()
|
13
|
+
|
14
|
+
def test_geolocation(self):
|
15
|
+
self.open("about:blank")
|
16
|
+
if self._multithreaded:
|
17
|
+
self.skip("Skipping test in multi-threaded mode.")
|
18
|
+
if not self.is_chromium():
|
19
|
+
print("\n* execute_cdp_cmd() is only for Chromium browsers")
|
20
|
+
self.skip("execute_cdp_cmd() is only for Chromium browsers")
|
21
|
+
self.execute_cdp_cmd(
|
22
|
+
"Browser.grantPermissions",
|
23
|
+
{
|
24
|
+
"origin": "https://www.openstreetmap.org/",
|
25
|
+
"permissions": ["geolocation"],
|
26
|
+
},
|
27
|
+
)
|
28
|
+
self.execute_cdp_cmd(
|
29
|
+
"Emulation.setGeolocationOverride",
|
30
|
+
{
|
31
|
+
"latitude": 48.87645,
|
32
|
+
"longitude": 2.26340,
|
33
|
+
"accuracy": 100,
|
34
|
+
},
|
35
|
+
)
|
36
|
+
self.open("https://www.openstreetmap.org/")
|
37
|
+
self.click("span.geolocate")
|
38
|
+
self.assert_url_contains("48.87645/2.26340")
|
39
|
+
self.save_screenshot_to_logs()
|
40
|
+
if not (self.headless or self.headless2 or self.xvfb):
|
41
|
+
self.sleep(2.5)
|
@@ -16,7 +16,7 @@ class 我的测试类(硒测试用例):
|
|
16
16
|
self.输入文本("#searchInput", "麻婆豆腐")
|
17
17
|
self.单击("#searchButton")
|
18
18
|
self.断言文本("麻婆豆腐", "#firstHeading")
|
19
|
-
self.断言元素('
|
19
|
+
self.断言元素('figure:contains("一家中餐館的麻婆豆腐")')
|
20
20
|
self.输入文本("#searchInput", "精武英雄")
|
21
21
|
self.单击("#searchButton")
|
22
22
|
self.断言元素('img[src*="Fist_of_legend.jpg"]')
|
@@ -16,6 +16,6 @@ class 테스트_클래스(셀레늄_테스트_케이스):
|
|
16
16
|
self.JS_입력("#searchform input", "비빔밥")
|
17
17
|
self.클릭("#searchform button")
|
18
18
|
self.텍스트_확인("비빔밥", "#firstHeading")
|
19
|
-
self.요소_확인('img[
|
19
|
+
self.요소_확인('img[src*="Dolsot-bibimbap.jpg"]')
|
20
20
|
self.링크_텍스트를_클릭합니다("돌솥비빔밥")
|
21
21
|
self.텍스트_확인("돌솥비빔밥", "#firstHeading")
|
@@ -11,11 +11,11 @@ class MiClaseDePrueba(CasoDePrueba):
|
|
11
11
|
self.escriba('[name="search"]', "Parque de Atracciones Tibidabo")
|
12
12
|
self.haga_clic('button:contains("Buscar")')
|
13
13
|
self.verificar_texto("Tibidabo", "#firstHeading")
|
14
|
-
self.verificar_elemento('img[
|
14
|
+
self.verificar_elemento('img[src*="Tibidabo"]')
|
15
15
|
self.escriba('input[name="search"]', "Palma de Mallorca")
|
16
16
|
self.haga_clic('button:contains("Buscar")')
|
17
17
|
self.verificar_texto("Palma de Mallorca", "#firstHeading")
|
18
|
-
self.verificar_elemento('img[
|
18
|
+
self.verificar_elemento('img[src*="Palma"]')
|
19
19
|
self.volver()
|
20
20
|
self.verificar_url_contiene("Tibidabo")
|
21
21
|
self.adelante()
|
@@ -73,6 +73,9 @@ pytest test_swag_labs.py --mobile
|
|
73
73
|
# Run mobile tests specifying CSS Width, CSS Height, and Pixel-Ratio
|
74
74
|
pytest test_swag_labs.py --mobile --metrics="360,640,2"
|
75
75
|
|
76
|
+
# Run a test with an option to evade bot-detection services
|
77
|
+
pytest verify_undetected.py --uc
|
78
|
+
|
76
79
|
# Run tests while changing SeleniumBase default settings
|
77
80
|
pytest my_first_test.py --settings-file=custom_settings.py
|
78
81
|
```
|
@@ -177,8 +180,8 @@ pytest my_first_test.py --settings-file=custom_settings.py
|
|
177
180
|
--incognito # (Enable Chrome's Incognito mode.)
|
178
181
|
--guest # (Enable Chrome's Guest mode.)
|
179
182
|
--devtools # (Open Chrome's DevTools when the browser opens.)
|
180
|
-
--
|
181
|
-
--reuse-class-session
|
183
|
+
--rs | --reuse-session # (Reuse browser session for all tests.)
|
184
|
+
--rcs | --reuse-class-session # (Reuse session for tests in class.)
|
182
185
|
--crumbs # (Delete all cookies between tests reusing a session.)
|
183
186
|
--disable-beforeunload # (Disable the "beforeunload" event on Chrome.)
|
184
187
|
--window-size=WIDTH,HEIGHT # (Set the browser's starting window size.)
|
@@ -33,6 +33,7 @@
|
|
33
33
|
* [Singapore Institute of Tech](https://www.singaporetech.edu.sg)
|
34
34
|
* [Mississippi State University](https://www.msstate.edu/)
|
35
35
|
* [The New York Public Libary](https://www.nypl.org/)
|
36
|
+
* [Boehringer Ingelheim](https://www.boehringer-ingelheim.com/)
|
36
37
|
* [Queen's University](https://www.queensu.ca/)
|
37
38
|
* [L1NNA Laboratory](https://l1nna.com/)
|
38
39
|
* [Canfield Scientific](https://www.canfieldsci.com/)
|
@@ -420,7 +420,7 @@ class 我的测试类(硒测试用例):
|
|
420
420
|
self.输入文本("#searchInput", "麻婆豆腐")
|
421
421
|
self.单击("#searchButton")
|
422
422
|
self.断言文本("麻婆豆腐", "#firstHeading")
|
423
|
-
self.断言元素('
|
423
|
+
self.断言元素('figure:contains("一家中餐館的麻婆豆腐")')
|
424
424
|
self.输入文本("#searchInput", "精武英雄")
|
425
425
|
self.单击("#searchButton")
|
426
426
|
self.断言元素('img[src*="Fist_of_legend.jpg"]')
|
@@ -577,7 +577,7 @@ class 테스트_클래스(셀레늄_테스트_케이스):
|
|
577
577
|
self.JS_입력("#searchform input", "비빔밥")
|
578
578
|
self.클릭("#searchform button")
|
579
579
|
self.텍스트_확인("비빔밥", "#firstHeading")
|
580
|
-
self.요소_확인('img[
|
580
|
+
self.요소_확인('img[src*="Dolsot-bibimbap.jpg"]')
|
581
581
|
self.링크_텍스트를_클릭합니다("돌솥비빔밥")
|
582
582
|
self.텍스트_확인("돌솥비빔밥", "#firstHeading")
|
583
583
|
```
|
@@ -667,11 +667,11 @@ class MiClaseDePrueba(CasoDePrueba):
|
|
667
667
|
self.escriba('[name="search"]', "Parque de Atracciones Tibidabo")
|
668
668
|
self.haga_clic('button:contains("Buscar")')
|
669
669
|
self.verificar_texto("Tibidabo", "#firstHeading")
|
670
|
-
self.verificar_elemento('img[
|
670
|
+
self.verificar_elemento('img[src*="Tibidabo"]')
|
671
671
|
self.escriba('input[name="search"]', "Palma de Mallorca")
|
672
672
|
self.haga_clic('button:contains("Buscar")')
|
673
673
|
self.verificar_texto("Palma de Mallorca", "#firstHeading")
|
674
|
-
self.verificar_elemento('img[
|
674
|
+
self.verificar_elemento('img[src*="Palma"]')
|
675
675
|
self.volver()
|
676
676
|
self.verificar_url_contiene("Tibidabo")
|
677
677
|
self.adelante()
|
@@ -19,11 +19,11 @@ If the necessary driver is not found in this location while running tests, Selen
|
|
19
19
|
* You can also download specific versions of drivers. Examples:
|
20
20
|
|
21
21
|
```bash
|
22
|
-
sbase get chromedriver
|
23
|
-
sbase get chromedriver
|
22
|
+
sbase get chromedriver 114
|
23
|
+
sbase get chromedriver 114.0.5735.90
|
24
24
|
sbase get chromedriver latest
|
25
25
|
sbase get chromedriver latest-1
|
26
|
-
sbase get edgedriver
|
26
|
+
sbase get edgedriver 114.0.1823.82
|
27
27
|
```
|
28
28
|
|
29
29
|
(NOTE: ``sbase`` is a shortcut for ``seleniumbase``)
|
@@ -3,10 +3,11 @@
|
|
3
3
|
|
4
4
|
regex>=2023.6.3
|
5
5
|
pkginfo>=1.9.6
|
6
|
+
PyYAML>=6.0.1
|
6
7
|
readme-renderer>=40.0
|
7
|
-
pymdown-extensions>=10.
|
8
|
+
pymdown-extensions>=10.1
|
8
9
|
importlib-metadata>=6.8.0
|
9
|
-
pipdeptree>=2.
|
10
|
+
pipdeptree>=2.10.2
|
10
11
|
bleach>=6.0.0
|
11
12
|
docutils>=0.20.1
|
12
13
|
python-dateutil>=2.8.2
|
@@ -15,7 +16,7 @@ joblib==1.3.1
|
|
15
16
|
Markdown==3.3.7
|
16
17
|
MarkupSafe==2.1.3
|
17
18
|
Jinja2==3.1.2
|
18
|
-
click==8.1.
|
19
|
+
click==8.1.5
|
19
20
|
ghp-import==2.1.0
|
20
21
|
lunr==0.6.2
|
21
22
|
nltk==3.8.1
|
@@ -27,7 +28,7 @@ cssselect2==0.7.0
|
|
27
28
|
tinycss2==1.2.1
|
28
29
|
defusedxml==0.7.1
|
29
30
|
mkdocs==1.4.3
|
30
|
-
mkdocs-material==9.1.
|
31
|
+
mkdocs-material==9.1.19
|
31
32
|
mkdocs-exclude-search==0.6.5
|
32
33
|
mkdocs-simple-hooks==0.1.5
|
33
34
|
mkdocs-material-extensions==1.1.1
|
@@ -1,5 +1,5 @@
|
|
1
1
|
pip>=21.3.1;python_version<"3.7"
|
2
|
-
pip>=23.
|
2
|
+
pip>=23.2;python_version>="3.7"
|
3
3
|
packaging>=21.3;python_version<"3.7"
|
4
4
|
packaging>=23.1;python_version>="3.7"
|
5
5
|
setuptools>=59.6.0;python_version<"3.7"
|
@@ -12,7 +12,7 @@ certifi>=2023.5.7
|
|
12
12
|
filelock>=3.4.1;python_version<"3.7"
|
13
13
|
filelock>=3.12.2;python_version>="3.7"
|
14
14
|
platformdirs>=2.4.0;python_version<"3.7"
|
15
|
-
platformdirs>=3.
|
15
|
+
platformdirs>=3.9.1;python_version>="3.7"
|
16
16
|
parse>=1.19.1
|
17
17
|
parse-type>=0.6.2
|
18
18
|
six==1.16.0
|
@@ -70,7 +70,7 @@ pygments==2.14.0;python_version<"3.7"
|
|
70
70
|
pygments==2.15.1;python_version>="3.7"
|
71
71
|
pyreadline3==3.4.1;platform_system=="Windows"
|
72
72
|
tabcompleter==1.2.1
|
73
|
-
pdbp==1.4.
|
73
|
+
pdbp==1.4.3
|
74
74
|
colorama==0.4.5;python_version<"3.7"
|
75
75
|
colorama==0.4.6;python_version>="3.7"
|
76
76
|
exceptiongroup==1.1.2;python_version>="3.7"
|
@@ -6,6 +6,7 @@ from seleniumbase import DriverContext # noqa
|
|
6
6
|
from seleniumbase import encryption # noqa
|
7
7
|
from seleniumbase import get_driver # noqa
|
8
8
|
from seleniumbase import js_utils # noqa
|
9
|
+
from seleniumbase import shared_utils # noqa
|
9
10
|
from seleniumbase import MasterQA # noqa
|
10
11
|
from seleniumbase import page_actions # noqa
|
11
12
|
from seleniumbase import page_utils # noqa
|
@@ -14,6 +14,7 @@ from seleniumbase.core.browser_launcher import get_driver # noqa
|
|
14
14
|
from seleniumbase.fixtures import js_utils # noqa
|
15
15
|
from seleniumbase.fixtures import page_actions # noqa
|
16
16
|
from seleniumbase.fixtures import page_utils # noqa
|
17
|
+
from seleniumbase.fixtures import shared_utils # noqa
|
17
18
|
from seleniumbase.fixtures.base_case import BaseCase # noqa
|
18
19
|
from seleniumbase.masterqa.master_qa import MasterQA # noqa
|
19
20
|
from seleniumbase.plugins.sb_manager import SB # noqa
|
@@ -82,8 +82,8 @@ behave -D agent="User Agent String" -D demo
|
|
82
82
|
-D incognito (Enable Chrome's Incognito mode.)
|
83
83
|
-D guest (Enable Chrome's Guest mode.)
|
84
84
|
-D devtools (Open Chrome's DevTools when the browser opens.)
|
85
|
-
-D
|
86
|
-
-D
|
85
|
+
-D rs | -D reuse-session (Reuse browser session for all tests.)
|
86
|
+
-D rcs | -D reuse-class-session (Reuse session for tests in class/feature)
|
87
87
|
-D crumbs (Delete all cookies between tests reusing a session.)
|
88
88
|
-D disable-beforeunload (Disable the "beforeunload" event on Chrome.)
|
89
89
|
-D window-size=WIDTH,HEIGHT (Set the browser's starting window size.)
|
@@ -95,24 +95,21 @@ behave -D agent="User Agent String" -D demo
|
|
95
95
|
-D external-pdf (Set Chromium "plugins.always_open_pdf_externally":True.)
|
96
96
|
-D timeout-multiplier=MULTIPLIER (Multiplies the default timeout values.)
|
97
97
|
"""
|
98
|
-
|
99
98
|
import ast
|
100
99
|
import colorama
|
101
100
|
import os
|
102
101
|
import re
|
103
102
|
import sys
|
103
|
+
from seleniumbase import config as sb_config
|
104
104
|
from seleniumbase.config import settings
|
105
|
-
from seleniumbase.core import log_helper
|
106
105
|
from seleniumbase.core import download_helper
|
106
|
+
from seleniumbase.core import log_helper
|
107
107
|
from seleniumbase.core import proxy_helper
|
108
108
|
from seleniumbase.core import session_helper
|
109
109
|
from seleniumbase.fixtures import constants
|
110
|
-
from seleniumbase import
|
110
|
+
from seleniumbase.fixtures import shared_utils
|
111
111
|
|
112
112
|
sb_config.__base_class = None
|
113
|
-
is_windows = False
|
114
|
-
if sys.platform in ["win32", "win64", "x64"]:
|
115
|
-
is_windows = True
|
116
113
|
|
117
114
|
|
118
115
|
def set_base_class(base_class):
|
@@ -817,10 +814,10 @@ def get_configured_sb(context):
|
|
817
814
|
'\n (Your browser choice was: "%s")\n' % sb.browser
|
818
815
|
)
|
819
816
|
# The Xvfb virtual display server is for Linux OS Only.
|
820
|
-
if sb.xvfb and
|
817
|
+
if sb.xvfb and not shared_utils.is_linux():
|
821
818
|
sb.xvfb = False
|
822
819
|
if (
|
823
|
-
|
820
|
+
shared_utils.is_linux()
|
824
821
|
and not sb.headed
|
825
822
|
and not sb.headless
|
826
823
|
and not sb.headless2
|
@@ -931,7 +928,6 @@ def get_configured_sb(context):
|
|
931
928
|
log_helper.log_folder_setup(sb.log_path, sb.archive_logs)
|
932
929
|
download_helper.reset_downloads_folder()
|
933
930
|
proxy_helper.remove_proxy_zip_if_present()
|
934
|
-
|
935
931
|
return sb
|
936
932
|
|
937
933
|
|
@@ -1007,7 +1003,7 @@ def dashboard_pre_processing():
|
|
1007
1003
|
filename = None
|
1008
1004
|
feature_name = None
|
1009
1005
|
scenario_name = None
|
1010
|
-
if is_windows:
|
1006
|
+
if shared_utils.is_windows():
|
1011
1007
|
output = output.decode("latin1")
|
1012
1008
|
else:
|
1013
1009
|
output = output.decode("utf-8")
|
@@ -1116,7 +1112,7 @@ def behave_dashboard_prepare():
|
|
1116
1112
|
stars = "*" * star_len
|
1117
1113
|
c1 = ""
|
1118
1114
|
cr = ""
|
1119
|
-
if
|
1115
|
+
if not shared_utils.is_linux():
|
1120
1116
|
colorama.init(autoreset=True)
|
1121
1117
|
c1 = colorama.Fore.BLUE + colorama.Back.LIGHTCYAN_EX
|
1122
1118
|
cr = colorama.Style.RESET_ALL
|
@@ -1124,9 +1120,6 @@ def behave_dashboard_prepare():
|
|
1124
1120
|
|
1125
1121
|
|
1126
1122
|
def _perform_behave_unconfigure_():
|
1127
|
-
from seleniumbase.core import log_helper
|
1128
|
-
from seleniumbase.core import proxy_helper
|
1129
|
-
|
1130
1123
|
if hasattr(sb_config, "multi_proxy") and not sb_config.multi_proxy:
|
1131
1124
|
proxy_helper.remove_proxy_zip_if_present()
|
1132
1125
|
if hasattr(sb_config, "reuse_session") and sb_config.reuse_session:
|
@@ -1134,7 +1127,7 @@ def _perform_behave_unconfigure_():
|
|
1134
1127
|
if sb_config.shared_driver:
|
1135
1128
|
try:
|
1136
1129
|
if (
|
1137
|
-
not is_windows
|
1130
|
+
not shared_utils.is_windows()
|
1138
1131
|
or sb_config.browser == "ie"
|
1139
1132
|
or sb_config.shared_driver.service.process
|
1140
1133
|
):
|
@@ -1210,7 +1203,7 @@ def do_final_driver_cleanup_as_needed():
|
|
1210
1203
|
try:
|
1211
1204
|
if hasattr(sb_config, "last_driver") and sb_config.last_driver:
|
1212
1205
|
if (
|
1213
|
-
not is_windows
|
1206
|
+
not shared_utils.is_windows()
|
1214
1207
|
or sb_config.browser == "ie"
|
1215
1208
|
or sb_config.last_driver.service.process
|
1216
1209
|
):
|
@@ -1232,7 +1225,7 @@ def _perform_behave_terminal_summary_():
|
|
1232
1225
|
equals = "=" * (equals_len + 2)
|
1233
1226
|
c2 = ""
|
1234
1227
|
cr = ""
|
1235
|
-
if
|
1228
|
+
if not shared_utils.is_linux():
|
1236
1229
|
colorama.init(autoreset=True)
|
1237
1230
|
c2 = colorama.Fore.MAGENTA + colorama.Back.LIGHTYELLOW_EX
|
1238
1231
|
cr = colorama.Style.RESET_ALL
|