seleniumbase 4.29.4__tar.gz → 4.29.5__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.29.4 → seleniumbase-4.29.5}/Dockerfile +20 -8
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/PKG-INFO +1 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/ReadMe.md +2 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/chinese_test_1.py +2 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/french_test_1.py +1 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/uc_cdp_events.py +1 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/verify_undetected.py +2 -4
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/chinese.md +2 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/method_summary.md +5 -5
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/syntax_formats.md +9 -7
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/translations.md +2 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/requirements.txt +1 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/browser_launcher.py +109 -59
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/base_case.py +6 -2
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase.egg-info/PKG-INFO +1 -1
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/.github/Workflows.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/.github/workflows/pages.yml +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/.github/workflows/python-nightly-mac.yml +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/.github/workflows/python-nightly-ubuntu.yml +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/.github/workflows/python-nightly-windows.yml +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/.github/workflows/python-package.yml +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/.gitignore +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/CHANGELOG.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/CNAME +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/CODE_OF_CONDUCT.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/CONTRIBUTING.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/LICENSE +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/MANIFEST.in +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/README.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/SECURITY.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/_config.yml +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/azure-pipelines.yml +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/basic_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/behave.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/behave.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/calculator.feature +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/environment.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/fail_page.feature +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/realworld.feature +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/steps/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/steps/calculator.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/steps/fail_page.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/steps/imported.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/swag_labs.feature +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/base_test_case.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/boilerplate_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/classic_obj_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/page_objects.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/file_parsing/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/file_parsing/parse_files.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/file_parsing/qa_login_example.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/file_parsing/staging_login_example.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/google_objects.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/google_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/sb_swag_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/swag_labs_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/samples/test_page_objects.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/boilerplates/sb_fixture_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/capabilities/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/capabilities/mac_cap_file.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/capabilities/sample_cap_file_BS.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/capabilities/sample_cap_file_SL.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/capabilities/selenoid_cap_file.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/capabilities/win10_cap_file.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_plans/basic_test.MyTestClass.test_basics.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_plans/my_first_test.MyTestClass.test_swag_labs.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_plans/shadow_root_test.ShadowRootTest.test_shadow_root.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_plans/test_assert_elements.ListAssertTests.test_assert_list_of_elements.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_plans/test_calculator.CalculatorTests.test_6_times_7_plus_12_equals_54.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_plans/test_demo_site.DemoSiteTests.test_demo_site.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_plans/test_login.SwagLabsLoginTests.test_swag_labs_login.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_plans/test_mfa_login.TestMFALogin.test_mfa_login.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/case_summary.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/chart_presentation.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/my_chart.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/pie_charts.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/test_area_chart.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/test_display_chart.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/test_line_chart.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/test_multi_series.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/chart_maker/test_save_chart.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/coffee_cart_tests.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/custom_settings.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/desktop_apps/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/desktop_apps/recorder.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/dialog_boxes/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/dialog_boxes/dialog_box_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/edge_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/example_config.cfg +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/example_logs/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/example_logs/basic_test_info.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/example_logs/page_source.html +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/example_logs/screenshot.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/github_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/gui_test_runner.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/hack_the_planet.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/handle_alert_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/iframe_tests.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/locale_code_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/master_qa/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/master_qa/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/master_qa/basic_masterqa_test_0.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/master_qa/masterqa_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/master_qa/pytest.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/protractor/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/protractor/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/protractor/example_spec.js +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/protractor/example_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/protractor/input_spec.js +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/protractor/input_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/protractor/mat_paginator_spec.js +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/protractor/mat_paginator_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/raw_selenium/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/raw_selenium/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/raw_selenium/flaky_messy_raw.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/raw_selenium/long_messy_raw.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/raw_selenium/messy_raw.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/raw_selenium/pytest.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/raw_selenium/refined_raw.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/migration/raw_selenium/simple_sbase.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/my_first_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/nth_child_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/offline_examples/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/offline_examples/demo_page.html +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/offline_examples/load_html_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/offline_examples/test_demo_page.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/offline_examples/test_handle_alerts.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/offline_examples/test_request_fixture.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/offline_examples/test_user_agent.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/old_wordle_script.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/parameterized_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/performance_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/presenter/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/presenter/core_presentation.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/presenter/edge_presentation.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/presenter/fundamentals.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/presenter/my_presentation.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/presenter/py_virtual_envs.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/proxy_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/pytest.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/rate_limiting_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/raw_call.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/raw_driver_context.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/raw_file_call.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/raw_main_call.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/raw_parameter_script.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/raw_sb.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/raw_test_scripts.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/raw_uc_mode.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/setup.cfg +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/shadow_root_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/swag_labs_user_tests.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_apple_site.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_assert_elements.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_calculator.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_canvas.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_checkboxes.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_chinese_pdf.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_chromedriver.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_coffee_cart.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_console_logging.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_contains_selector.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_cycle_elements.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_decryption.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_deferred_asserts.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_demo_site.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_detect_404s.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_docs_site.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_double_click.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_download_files.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_download_images.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_drag_and_drop.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_error_page.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_event_firing.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_fail.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_geolocation.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_get_coffee.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_get_locale_code.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_get_pdf_text.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_get_user_agent.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_hack_search.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_image_saving.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_inspect_html.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_login.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_markers.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_mfa_login.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_multiple_drivers.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_null.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_override_driver.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_override_sb_fixture.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_parse_soup.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_pdf_asserts.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_pytest_parametrize.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_repeat_tests.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_request_sb_fixture.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_save_screenshots.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_sb_fixture.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_scrape_bing.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_select_options.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_shadow_dom.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_show_file_choosers.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_skype_site.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_suite.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_swag_labs.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_tinymce.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_todomvc.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_url_asserts.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_usefixtures.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_verify_chromedriver.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_window_switching.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_xfail.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/test_xkcd.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/time_limit_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/bootstrap_google_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/bootstrap_xkcd_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/driverjs_maps_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/google_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/hopscotch_google_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/introjs_google_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/maps_introjs_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/octocat_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/shepherd_google_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/tour_examples/xkcd_tour.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/dutch_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/english_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/italian_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/japanese_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/korean_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/portuguese_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/pytest.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/russian_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/translations/spanish_test_1.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/unit_tests/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/unit_tests/verify_framework.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/upgrade_chromedriver.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/upload_file_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/user_agent_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/case_plans/layout_test.VisualLayoutTests.test_applitools_layout_change.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/case_plans/python_home_test.VisualLayoutTests.test_python_home_layout_change.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_applitools_change.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/case_plans/test_layout_fail.VisualLayoutFailureTests.test_xkcd_logo_change.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/case_plans/test_layout_fail.VisualLayout_FixtureTests.test_python_home_change.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/case_plans/xkcd_visual_test.VisualLayoutTests.test_xkcd_layout_change.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/layout_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/python_home_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/test_layout_fail.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/visual_testing/xkcd_visual_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/wordle_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/xpath_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/youtube_search_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/behave_gui.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/case_plans.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/commander.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/customizing_test_runs.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/demo_mode.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/desired_capabilities.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/features_list.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/handling_iframes.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/happy_customers.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/hidden_files_info.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/how_it_works.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/html_inspector.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/install.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/install_python_pip_git.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/js_package_manager.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/locale_codes.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/mobile_testing.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/mysql_installation.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/recorder_mode.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/shadow_dom.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/thank_you.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/useful_grep_commands.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/using_safari_driver.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/verify_webdriver.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/virtualenv_instructions.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/help_docs/webdriver_installation.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/install.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/azure/azure_pipelines/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/azure/jenkins/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/behave.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/behave.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/calculator.feature +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/environment.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/fail_page.feature +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/realworld.feature +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/steps/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/steps/calculator.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/steps/fail_page.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/steps/real_world.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/steps/swag_labs.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/behave/features/swag_labs.feature +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/brython/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/brython/index.html +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/brython/index.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/brython/library.html +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/docker/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/docker/docker-entrypoint.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/docker/run_docker_test_in_chrome.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/github/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/github/workflows/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/github/workflows/extras.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/google_cloud/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/katalon/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/linux/Linuxfile.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/linux/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/linux/Xvfb_launcher.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/linux/jenkins_permissions.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/linux/tomcat_permissions.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/node_js/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/node_js/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/node_js/index.html +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/node_js/my_first_test.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/node_js/npm-shrinkwrap.json +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/node_js/package.json +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/node_js/server.js +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/node_js/test_demo_site.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/integrations/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs.yml +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/ReadMe.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/docs_instructions.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/dash_pie.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/dash_pie_2.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/dash_pie_3.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/favicon.ico +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/grad_logo.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/green_icon.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/green_logo.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/green_logo2.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/green_logo3.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/logo3.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/logo3a.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/logo3b.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/logo3c.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/logo4.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/logo5.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/logo6.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/logo7.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/sb_icon.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/sb_logo_10.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/sb_logo_7.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/side_by_side.png +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/social/share_facebook.svg +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/social/share_github.svg +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/social/share_gitter.svg +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/social/share_instagram.svg +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/img/social/share_twitter.svg +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/index.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/mkdocs_build/prepare.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/pytest.ini +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/requirements.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/sbase/ReadMe.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/sbase/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/sbase/__main__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/sbase/steps.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/common/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/drivers/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/extensions/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/masterqa/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/resources/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/resources/favicon.ico +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/undetected/webelement.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_ide/ReadMe.md +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase.egg-info/requires.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/setup.cfg +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/setup.py +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/virtualenv_install.sh +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/win_install.bat +0 -0
- {seleniumbase-4.29.4 → seleniumbase-4.29.5}/win_virtualenv.bat +0 -0
@@ -1,6 +1,8 @@
|
|
1
1
|
# SeleniumBase Docker Image
|
2
2
|
FROM ubuntu:22.04
|
3
3
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
4
|
+
ENV PYTHONUNBUFFERED=1
|
5
|
+
ENV PYTHONIOENCODING=UTF-8
|
4
6
|
|
5
7
|
#======================
|
6
8
|
# Locale Configuration
|
@@ -8,10 +10,15 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
|
8
10
|
RUN apt-get update
|
9
11
|
RUN apt-get install -y --no-install-recommends tzdata locales
|
10
12
|
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
|
11
|
-
ENV
|
12
|
-
|
13
|
-
ENV
|
14
|
-
ENV
|
13
|
+
ENV TZ=America/New_York
|
14
|
+
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
15
|
+
ENV LANG=en_US.UTF-8
|
16
|
+
ENV LANGUAGE=en_US:en
|
17
|
+
ENV LC_ALL=en_US.UTF-8
|
18
|
+
RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment
|
19
|
+
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
|
20
|
+
RUN echo "LANG=en_US.UTF-8" > /etc/locale.conf
|
21
|
+
RUN locale-gen en_US.UTF-8
|
15
22
|
|
16
23
|
#======================
|
17
24
|
# Install Common Fonts
|
@@ -19,6 +26,11 @@ ENV TZ="America/New_York"
|
|
19
26
|
RUN apt-get update
|
20
27
|
RUN apt-get install -y \
|
21
28
|
fonts-liberation \
|
29
|
+
fonts-liberation2 \
|
30
|
+
fonts-font-awesome \
|
31
|
+
fonts-ubuntu \
|
32
|
+
fonts-terminus \
|
33
|
+
fonts-powerline \
|
22
34
|
fonts-open-sans \
|
23
35
|
fonts-mononoki \
|
24
36
|
fonts-roboto \
|
@@ -53,7 +65,7 @@ RUN apt-get install -y \
|
|
53
65
|
# Install useful utilities
|
54
66
|
#==========================
|
55
67
|
RUN apt-get update
|
56
|
-
RUN apt-get install -y xdg-utils
|
68
|
+
RUN apt-get install -y xdg-utils ca-certificates
|
57
69
|
|
58
70
|
#=================================
|
59
71
|
# Install Bash Command Line Tools
|
@@ -72,9 +84,8 @@ RUN apt-get -qy --no-install-recommends install \
|
|
72
84
|
#================
|
73
85
|
RUN apt-get update
|
74
86
|
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
|
75
|
-
RUN
|
76
|
-
RUN
|
77
|
-
RUN rm google-chrome-stable_current_amd64.deb
|
87
|
+
RUN apt-get install -y ./google-chrome-stable_current_amd64.deb
|
88
|
+
RUN rm ./google-chrome-stable_current_amd64.deb
|
78
89
|
|
79
90
|
#================
|
80
91
|
# Install Python
|
@@ -90,6 +101,7 @@ RUN ln -s python3.10 /usr/bin/python3
|
|
90
101
|
#===============
|
91
102
|
# Cleanup Lists
|
92
103
|
#===============
|
104
|
+
RUN apt-get clean
|
93
105
|
RUN rm -rf /var/lib/apt/lists/*
|
94
106
|
|
95
107
|
#=====================
|
@@ -15,9 +15,10 @@ class 我的测试类(硒测试用例):
|
|
15
15
|
self.开启("https://zh.wikipedia.org/wiki/")
|
16
16
|
self.断言标题("维基百科,自由的百科全书")
|
17
17
|
self.断言元素('a[title="Wikipedia:关于"]')
|
18
|
+
self.如果可见请单击('button[aria-label="关闭"]')
|
19
|
+
self.如果可见请单击('button[aria-label="關閉"]')
|
18
20
|
self.断言元素('span:contains("创建账号")')
|
19
21
|
self.断言元素('span:contains("登录")')
|
20
|
-
self.断言文本("新闻动态", "span#新闻动态")
|
21
22
|
self.输入文本('input[name="search"]', "舞龍")
|
22
23
|
self.单击('button:contains("搜索")')
|
23
24
|
self.断言文本("舞龍", "#firstHeading")
|
@@ -8,9 +8,10 @@ class 我的测试类(硒测试用例):
|
|
8
8
|
self.开启("https://zh.wikipedia.org/wiki/")
|
9
9
|
self.断言标题("维基百科,自由的百科全书")
|
10
10
|
self.断言元素('a[title="Wikipedia:关于"]')
|
11
|
+
self.如果可见请单击('button[aria-label="关闭"]')
|
12
|
+
self.如果可见请单击('button[aria-label="關閉"]')
|
11
13
|
self.断言元素('span:contains("创建账号")')
|
12
14
|
self.断言元素('span:contains("登录")')
|
13
|
-
self.断言文本("新闻动态", "span#新闻动态")
|
14
15
|
self.输入文本('input[name="search"]', "舞龍")
|
15
16
|
self.单击('button:contains("搜索")')
|
16
17
|
self.断言文本("舞龍", "#firstHeading")
|
@@ -8,6 +8,7 @@ class MaClasseDeTest(CasDeBase):
|
|
8
8
|
self.ouvrir("https://fr.wikipedia.org/wiki/")
|
9
9
|
self.vérifier_texte("Wikipédia")
|
10
10
|
self.vérifier_élément('[alt="Wikipédia"]')
|
11
|
+
self.cliquer_si_affiché('button[aria-label="Fermer"]')
|
11
12
|
self.js_taper("#searchform input", "Crème brûlée")
|
12
13
|
self.cliquer("#searchform button")
|
13
14
|
self.vérifier_texte("Crème brûlée", "#firstHeading")
|
@@ -10,10 +10,8 @@ class UndetectedTest(BaseCase):
|
|
10
10
|
url = "https://gitlab.com/users/sign_in"
|
11
11
|
if not self.undetectable:
|
12
12
|
self.get_new_driver(undetectable=True)
|
13
|
-
self.
|
14
|
-
|
15
|
-
self.get_new_driver(undetectable=True)
|
16
|
-
self.driver.uc_open_with_reconnect(url, 4)
|
13
|
+
self.uc_open_with_reconnect(url, 4)
|
14
|
+
self.uc_gui_click_captcha()
|
17
15
|
self.assert_text("Username", '[for="user_login"]', timeout=3)
|
18
16
|
self.post_message("SeleniumBase wasn't detected", duration=4)
|
19
17
|
self._print("\n Success! Website did not detect Selenium! ")
|
@@ -182,9 +182,10 @@ class 我的测试类(硒测试用例):
|
|
182
182
|
self.开启("https://zh.wikipedia.org/wiki/")
|
183
183
|
self.断言标题("维基百科,自由的百科全书")
|
184
184
|
self.断言元素('a[title="Wikipedia:关于"]')
|
185
|
+
self.如果可见请单击('button[aria-label="关闭"]')
|
186
|
+
self.如果可见请单击('button[aria-label="關閉"]')
|
185
187
|
self.断言元素('span:contains("创建账号")')
|
186
188
|
self.断言元素('span:contains("登录")')
|
187
|
-
self.断言文本("新闻动态", "span#新闻动态")
|
188
189
|
self.输入文本('input[name="search"]', "舞龍")
|
189
190
|
self.单击('button:contains("搜索")')
|
190
191
|
self.断言文本("舞龍", "#firstHeading")
|
@@ -1077,12 +1077,12 @@ driver.uc_gui_write(text) # Similar to uc_gui_press_keys(), but faster
|
|
1077
1077
|
driver.uc_gui_click_x_y(x, y, timeframe=0.25) # PyAutoGUI click screen
|
1078
1078
|
|
1079
1079
|
driver.uc_gui_click_captcha(frame="iframe", retry=False, blind=False)
|
1080
|
+
# driver.uc_gui_click_cf(frame="iframe", retry=False, blind=False)
|
1081
|
+
# driver.uc_gui_click_rc(frame="iframe", retry=False, blind=False)
|
1080
1082
|
|
1081
|
-
driver.
|
1082
|
-
|
1083
|
-
driver.
|
1084
|
-
|
1085
|
-
driver.uc_gui_handle_cf(frame="iframe") # PyAutoGUI click CF Turnstile
|
1083
|
+
driver.uc_gui_handle_captcha(frame="iframe") # (Auto-detects the CAPTCHA)
|
1084
|
+
# driver.uc_gui_handle_cf(frame="iframe") # PyAutoGUI click CF Turnstile
|
1085
|
+
# driver.uc_gui_handle_rc(frame="iframe") # PyAutoGUI click G. reCAPTCHA
|
1086
1086
|
|
1087
1087
|
driver.uc_switch_to_frame(frame="iframe") # Stealthy switch_to_frame()
|
1088
1088
|
```
|
@@ -450,9 +450,10 @@ class 我的测试类(硒测试用例):
|
|
450
450
|
self.开启("https://zh.wikipedia.org/wiki/")
|
451
451
|
self.断言标题("维基百科,自由的百科全书")
|
452
452
|
self.断言元素('a[title="Wikipedia:关于"]')
|
453
|
+
self.如果可见请单击('button[aria-label="关闭"]')
|
454
|
+
self.如果可见请单击('button[aria-label="關閉"]')
|
453
455
|
self.断言元素('span:contains("创建账号")')
|
454
456
|
self.断言元素('span:contains("登录")')
|
455
|
-
self.断言文本("新闻动态", "span#新闻动态")
|
456
457
|
self.输入文本('input[name="search"]', "舞龍")
|
457
458
|
self.单击('button:contains("搜索")')
|
458
459
|
self.断言文本("舞龍", "#firstHeading")
|
@@ -484,14 +485,14 @@ Testgeval.main(__name__, __file__)
|
|
484
485
|
class MijnTestklasse(Testgeval):
|
485
486
|
def test_voorbeeld_1(self):
|
486
487
|
self.openen("https://nl.wikipedia.org/wiki/Hoofdpagina")
|
487
|
-
self.controleren_element('a[title*="
|
488
|
+
self.controleren_element('a[title*="Welkom voor nieuwkomers"]')
|
488
489
|
self.controleren_tekst("Welkom op Wikipedia", "td.hp-welkom")
|
489
|
-
self.typ("#
|
490
|
-
self.klik("#
|
490
|
+
self.typ("#searchform input", "Stroopwafel")
|
491
|
+
self.klik("#searchform button")
|
491
492
|
self.controleren_tekst("Stroopwafel", "#firstHeading")
|
492
493
|
self.controleren_element('img[src*="Stroopwafels"]')
|
493
|
-
self.typ("#
|
494
|
-
self.klik("#
|
494
|
+
self.typ("#searchform input", "Rijksmuseum Amsterdam")
|
495
|
+
self.klik("#searchform button")
|
495
496
|
self.controleren_tekst("Rijksmuseum", "#firstHeading")
|
496
497
|
self.controleren_element('img[src*="Rijksmuseum"]')
|
497
498
|
self.terug()
|
@@ -517,6 +518,7 @@ class MaClasseDeTest(CasDeBase):
|
|
517
518
|
self.ouvrir("https://fr.wikipedia.org/wiki/")
|
518
519
|
self.vérifier_texte("Wikipédia")
|
519
520
|
self.vérifier_élément('[alt="Wikipédia"]')
|
521
|
+
self.cliquer_si_affiché('button[aria-label="Fermer"]')
|
520
522
|
self.js_taper("#searchform input", "Crème brûlée")
|
521
523
|
self.cliquer("#searchform button")
|
522
524
|
self.vérifier_texte("Crème brûlée", "#firstHeading")
|
@@ -674,7 +676,7 @@ class МойТестовыйКласс(ТестНаСелен):
|
|
674
676
|
def test_пример_1(self):
|
675
677
|
self.открыть("https://ru.wikipedia.org/wiki/")
|
676
678
|
self.подтвердить_элемент('[title="Русский язык"]')
|
677
|
-
self.подтвердить_текст("Википедия", "
|
679
|
+
self.подтвердить_текст("Википедия", "div.main-wikimedia-header")
|
678
680
|
self.введите("#searchInput", "МГУ")
|
679
681
|
self.нажмите("#searchButton")
|
680
682
|
self.подтвердить_текст("университет", "#firstHeading")
|
@@ -17,9 +17,10 @@ class 我的测试类(硒测试用例):
|
|
17
17
|
self.开启("https://zh.wikipedia.org/wiki/")
|
18
18
|
self.断言标题("维基百科,自由的百科全书")
|
19
19
|
self.断言元素('a[title="Wikipedia:关于"]')
|
20
|
+
self.如果可见请单击('button[aria-label="关闭"]')
|
21
|
+
self.如果可见请单击('button[aria-label="關閉"]')
|
20
22
|
self.断言元素('span:contains("创建账号")')
|
21
23
|
self.断言元素('span:contains("登录")')
|
22
|
-
self.断言文本("新闻动态", "span#新闻动态")
|
23
24
|
self.输入文本('input[name="search"]', "舞龍")
|
24
25
|
self.单击('button:contains("搜索")')
|
25
26
|
self.断言文本("舞龍", "#firstHeading")
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.29.
|
2
|
+
__version__ = "4.29.5"
|
@@ -394,9 +394,9 @@ def uc_special_open_if_cf(
|
|
394
394
|
)
|
395
395
|
uc_metrics = {}
|
396
396
|
if (
|
397
|
-
isinstance(device_width, int)
|
398
|
-
and isinstance(device_height, int)
|
399
|
-
and isinstance(device_pixel_ratio, int)
|
397
|
+
isinstance(device_width, (int, float))
|
398
|
+
and isinstance(device_height, (int, float))
|
399
|
+
and isinstance(device_pixel_ratio, (int, float))
|
400
400
|
):
|
401
401
|
uc_metrics["width"] = device_width
|
402
402
|
uc_metrics["height"] = device_height
|
@@ -975,9 +975,24 @@ def uc_gui_click_cf(driver, frame="iframe", retry=False, blind=False):
|
|
975
975
|
)
|
976
976
|
|
977
977
|
|
978
|
-
def
|
979
|
-
|
980
|
-
|
978
|
+
def _uc_gui_handle_captcha(
|
979
|
+
driver,
|
980
|
+
frame="iframe",
|
981
|
+
ctype=None,
|
982
|
+
):
|
983
|
+
if ctype == "cf_t":
|
984
|
+
if not _on_a_cf_turnstile_page(driver):
|
985
|
+
return
|
986
|
+
elif ctype == "g_rc":
|
987
|
+
if not _on_a_g_recaptcha_page(driver):
|
988
|
+
return
|
989
|
+
else:
|
990
|
+
if _on_a_g_recaptcha_page(driver):
|
991
|
+
ctype = "g_rc"
|
992
|
+
elif _on_a_cf_turnstile_page(driver):
|
993
|
+
ctype = "cf_t"
|
994
|
+
else:
|
995
|
+
return
|
981
996
|
install_pyautogui_if_missing(driver)
|
982
997
|
import pyautogui
|
983
998
|
pyautogui = get_configured_pyautogui(pyautogui)
|
@@ -988,7 +1003,10 @@ def uc_gui_handle_cf(driver, frame="iframe"):
|
|
988
1003
|
with gui_lock: # Prevent issues with multiple processes
|
989
1004
|
needs_switch = False
|
990
1005
|
is_in_frame = js_utils.is_in_frame(driver)
|
991
|
-
|
1006
|
+
selector = "#challenge-stage"
|
1007
|
+
if ctype == "g_rc":
|
1008
|
+
selector = "#recaptcha-token"
|
1009
|
+
if is_in_frame and driver.is_element_present(selector):
|
992
1010
|
driver.switch_to.parent_frame()
|
993
1011
|
needs_switch = True
|
994
1012
|
is_in_frame = js_utils.is_in_frame(driver)
|
@@ -997,67 +1015,77 @@ def uc_gui_handle_cf(driver, frame="iframe"):
|
|
997
1015
|
page_actions.switch_to_window(
|
998
1016
|
driver, driver.current_window_handle, 2, uc_lock=False
|
999
1017
|
)
|
1000
|
-
if
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
):
|
1006
|
-
pass
|
1007
|
-
else:
|
1008
|
-
visible_iframe = False
|
1009
|
-
if driver.is_element_present(".cf-turnstile-wrapper"):
|
1010
|
-
frame = ".cf-turnstile-wrapper"
|
1011
|
-
elif driver.is_element_present(
|
1012
|
-
'[data-callback="onCaptchaSuccess"]'
|
1013
|
-
):
|
1014
|
-
frame = '[data-callback="onCaptchaSuccess"]'
|
1015
|
-
elif (
|
1016
|
-
driver.is_element_present('[name*="cf-turnstile-"]')
|
1017
|
-
and driver.is_element_present("div.spacer div[style]")
|
1018
|
-
):
|
1019
|
-
frame = "div.spacer div[style]"
|
1020
|
-
elif (
|
1021
|
-
(
|
1022
|
-
driver.is_element_present('[name*="cf-turnstile-"]')
|
1023
|
-
or driver.is_element_present('[id*="cf-turnstile-"]')
|
1024
|
-
)
|
1025
|
-
and driver.is_element_present(
|
1026
|
-
'form div div[style*="margin"][style*="padding"]'
|
1018
|
+
if ctype == "cf_t":
|
1019
|
+
if (
|
1020
|
+
driver.is_element_present(".cf-turnstile-wrapper iframe")
|
1021
|
+
or driver.is_element_present(
|
1022
|
+
'[data-callback="onCaptchaSuccess"] iframe'
|
1027
1023
|
)
|
1028
1024
|
):
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1025
|
+
pass
|
1026
|
+
else:
|
1027
|
+
visible_iframe = False
|
1028
|
+
if driver.is_element_present(".cf-turnstile-wrapper"):
|
1029
|
+
frame = ".cf-turnstile-wrapper"
|
1030
|
+
elif driver.is_element_present(
|
1031
|
+
'[data-callback="onCaptchaSuccess"]'
|
1032
|
+
):
|
1033
|
+
frame = '[data-callback="onCaptchaSuccess"]'
|
1034
|
+
elif (
|
1032
1035
|
driver.is_element_present('[name*="cf-turnstile-"]')
|
1033
|
-
|
1034
|
-
)
|
1035
|
-
|
1036
|
-
|
1037
|
-
|
1036
|
+
and driver.is_element_present("div.spacer div[style]")
|
1037
|
+
):
|
1038
|
+
frame = "div.spacer div[style]"
|
1039
|
+
elif (
|
1040
|
+
(
|
1041
|
+
driver.is_element_present('[name*="cf-turnstile-"]')
|
1042
|
+
or driver.is_element_present('[id*="cf-turnstile-"]')
|
1043
|
+
)
|
1044
|
+
and driver.is_element_present(
|
1045
|
+
'form div div[style*="margin"][style*="padding"]'
|
1046
|
+
)
|
1047
|
+
):
|
1048
|
+
frame = 'form div div[style*="margin"][style*="padding"]'
|
1049
|
+
elif (
|
1050
|
+
(
|
1051
|
+
driver.is_element_present('[name*="cf-turnstile-"]')
|
1052
|
+
or driver.is_element_present('[id*="cf-turnstile-"]')
|
1053
|
+
)
|
1054
|
+
and driver.is_element_present(
|
1055
|
+
'div > div > [style*="margin"][style*="padding"]'
|
1056
|
+
)
|
1057
|
+
):
|
1058
|
+
frame = 'div > div > [style*="margin"][style*="padding"]'
|
1059
|
+
else:
|
1060
|
+
return
|
1061
|
+
else:
|
1062
|
+
if (
|
1063
|
+
driver.is_element_present('iframe[title="reCAPTCHA"]')
|
1064
|
+
and frame == "iframe"
|
1038
1065
|
):
|
1039
|
-
frame = '
|
1040
|
-
else:
|
1041
|
-
return
|
1066
|
+
frame = 'iframe[title="reCAPTCHA"]'
|
1042
1067
|
if not is_in_frame or needs_switch:
|
1043
1068
|
# Currently not in frame (or nested frame outside CF one)
|
1044
1069
|
try:
|
1045
|
-
if visible_iframe:
|
1070
|
+
if visible_iframe or ctype == "g_rc":
|
1046
1071
|
driver.switch_to_frame(frame)
|
1047
1072
|
except Exception:
|
1048
|
-
if visible_iframe:
|
1073
|
+
if visible_iframe or ctype == "g_rc":
|
1049
1074
|
if driver.is_element_present("iframe"):
|
1050
1075
|
driver.switch_to_frame("iframe")
|
1051
1076
|
else:
|
1052
1077
|
return
|
1053
1078
|
try:
|
1079
|
+
selector = "div.cf-turnstile"
|
1080
|
+
if ctype == "g_rc":
|
1081
|
+
selector = "span#recaptcha-anchor"
|
1054
1082
|
found_checkbox = False
|
1055
1083
|
for i in range(24):
|
1056
1084
|
pyautogui.press("\t")
|
1057
1085
|
time.sleep(0.02)
|
1058
1086
|
active_element_css = js_utils.get_active_element_css(driver)
|
1059
1087
|
if (
|
1060
|
-
active_element_css.startswith(
|
1088
|
+
active_element_css.startswith(selector)
|
1061
1089
|
or active_element_css.endswith(" > div" * 2)
|
1062
1090
|
):
|
1063
1091
|
found_checkbox = True
|
@@ -1081,6 +1109,18 @@ def uc_gui_handle_cf(driver, frame="iframe"):
|
|
1081
1109
|
driver.reconnect(reconnect_time)
|
1082
1110
|
|
1083
1111
|
|
1112
|
+
def uc_gui_handle_captcha(driver, frame="iframe"):
|
1113
|
+
_uc_gui_handle_captcha(driver, frame=frame, ctype=None)
|
1114
|
+
|
1115
|
+
|
1116
|
+
def uc_gui_handle_cf(driver, frame="iframe"):
|
1117
|
+
_uc_gui_handle_captcha(driver, frame=frame, ctype="cf_t")
|
1118
|
+
|
1119
|
+
|
1120
|
+
def uc_gui_handle_rc(driver, frame="iframe"):
|
1121
|
+
_uc_gui_handle_captcha(driver, frame=frame, ctype="g_rc")
|
1122
|
+
|
1123
|
+
|
1084
1124
|
def uc_switch_to_frame(driver, frame="iframe", reconnect_time=None):
|
1085
1125
|
from selenium.webdriver.remote.webelement import WebElement
|
1086
1126
|
if isinstance(frame, WebElement):
|
@@ -1479,9 +1519,9 @@ def _set_chrome_options(
|
|
1479
1519
|
emulator_settings = {}
|
1480
1520
|
device_metrics = {}
|
1481
1521
|
if (
|
1482
|
-
isinstance(device_width, int)
|
1483
|
-
and isinstance(device_height, int)
|
1484
|
-
and isinstance(device_pixel_ratio, int)
|
1522
|
+
isinstance(device_width, (int, float))
|
1523
|
+
and isinstance(device_height, (int, float))
|
1524
|
+
and isinstance(device_pixel_ratio, (int, float))
|
1485
1525
|
):
|
1486
1526
|
device_metrics["width"] = device_width
|
1487
1527
|
device_metrics["height"] = device_height
|
@@ -3229,9 +3269,9 @@ def get_local_driver(
|
|
3229
3269
|
emulator_settings = {}
|
3230
3270
|
device_metrics = {}
|
3231
3271
|
if (
|
3232
|
-
isinstance(device_width, int)
|
3233
|
-
and isinstance(device_height, int)
|
3234
|
-
and isinstance(device_pixel_ratio, int)
|
3272
|
+
isinstance(device_width, (int, float))
|
3273
|
+
and isinstance(device_height, (int, float))
|
3274
|
+
and isinstance(device_pixel_ratio, (int, float))
|
3235
3275
|
):
|
3236
3276
|
device_metrics["width"] = device_width
|
3237
3277
|
device_metrics["height"] = device_height
|
@@ -4421,13 +4461,18 @@ def get_local_driver(
|
|
4421
4461
|
driver, *args, **kwargs
|
4422
4462
|
)
|
4423
4463
|
)
|
4464
|
+
driver.uc_gui_click_cf = (
|
4465
|
+
lambda *args, **kwargs: uc_gui_click_cf(
|
4466
|
+
driver, *args, **kwargs
|
4467
|
+
)
|
4468
|
+
)
|
4424
4469
|
driver.uc_gui_click_rc = (
|
4425
4470
|
lambda *args, **kwargs: uc_gui_click_rc(
|
4426
4471
|
driver, *args, **kwargs
|
4427
4472
|
)
|
4428
4473
|
)
|
4429
|
-
driver.
|
4430
|
-
lambda *args, **kwargs:
|
4474
|
+
driver.uc_gui_handle_captcha = (
|
4475
|
+
lambda *args, **kwargs: uc_gui_handle_captcha(
|
4431
4476
|
driver, *args, **kwargs
|
4432
4477
|
)
|
4433
4478
|
)
|
@@ -4436,6 +4481,11 @@ def get_local_driver(
|
|
4436
4481
|
driver, *args, **kwargs
|
4437
4482
|
)
|
4438
4483
|
)
|
4484
|
+
driver.uc_gui_handle_rc = (
|
4485
|
+
lambda *args, **kwargs: uc_gui_handle_rc(
|
4486
|
+
driver, *args, **kwargs
|
4487
|
+
)
|
4488
|
+
)
|
4439
4489
|
driver.uc_switch_to_frame = (
|
4440
4490
|
lambda *args, **kwargs: uc_switch_to_frame(
|
4441
4491
|
driver, *args, **kwargs
|
@@ -4446,9 +4496,9 @@ def get_local_driver(
|
|
4446
4496
|
if mobile_emulator:
|
4447
4497
|
uc_metrics = {}
|
4448
4498
|
if (
|
4449
|
-
isinstance(device_width, int)
|
4450
|
-
and isinstance(device_height, int)
|
4451
|
-
and isinstance(device_pixel_ratio, int)
|
4499
|
+
isinstance(device_width, (int, float))
|
4500
|
+
and isinstance(device_height, (int, float))
|
4501
|
+
and isinstance(device_pixel_ratio, (int, float))
|
4452
4502
|
):
|
4453
4503
|
uc_metrics["width"] = device_width
|
4454
4504
|
uc_metrics["height"] = device_height
|
@@ -4246,12 +4246,16 @@ class BaseCase(unittest.TestCase):
|
|
4246
4246
|
self.uc_gui_click_x_y = new_driver.uc_gui_click_x_y
|
4247
4247
|
if hasattr(new_driver, "uc_gui_click_captcha"):
|
4248
4248
|
self.uc_gui_click_captcha = new_driver.uc_gui_click_captcha
|
4249
|
-
if hasattr(new_driver, "uc_gui_click_rc"):
|
4250
|
-
self.uc_gui_click_rc = new_driver.uc_gui_click_rc
|
4251
4249
|
if hasattr(new_driver, "uc_gui_click_cf"):
|
4252
4250
|
self.uc_gui_click_cf = new_driver.uc_gui_click_cf
|
4251
|
+
if hasattr(new_driver, "uc_gui_click_rc"):
|
4252
|
+
self.uc_gui_click_rc = new_driver.uc_gui_click_rc
|
4253
|
+
if hasattr(new_driver, "uc_gui_handle_captcha"):
|
4254
|
+
self.uc_gui_handle_captcha = new_driver.uc_gui_handle_captcha
|
4253
4255
|
if hasattr(new_driver, "uc_gui_handle_cf"):
|
4254
4256
|
self.uc_gui_handle_cf = new_driver.uc_gui_handle_cf
|
4257
|
+
if hasattr(new_driver, "uc_gui_handle_rc"):
|
4258
|
+
self.uc_gui_handle_rc = new_driver.uc_gui_handle_rc
|
4255
4259
|
if hasattr(new_driver, "uc_switch_to_frame"):
|
4256
4260
|
self.uc_switch_to_frame = new_driver.uc_switch_to_frame
|
4257
4261
|
return new_driver
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.29.4 → seleniumbase-4.29.5}/examples/behave_bdd/features/steps/calculator.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|