Appium-Python-Client 6.1.1__tar.gz → 6.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.github/workflows/functional-test.yml +3 -3
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.github/workflows/unit-test.yml +2 -2
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/CHANGELOG.md +39 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/PKG-INFO +12 -7
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/README.md +11 -6
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/appium_service.py +28 -22
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/flutter_integration/flutter_commands.py +5 -3
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/flutter_integration/scroll_directions.py +2 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/images_comparison.py +14 -12
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/log_event.py +6 -2
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/screen_record.py +19 -13
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/webdriver.py +9 -9
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/pyproject.toml +1 -1
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/uv.lock +1 -1
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.github/actions/setup-appium-server/action.yml +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.github/dependabot.yml +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.github/issue_template.md +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.github/workflows/pr-title.yml +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.github/workflows/publish.yml +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.gitignore +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.pre-commit-config.yaml +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/.ruff.toml +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/LICENSE +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/MANIFEST.in +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/Makefile +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/common/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/common/exceptions.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/common/helper.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/common/logger.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/adb_exec_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/adb_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/allow_delay_adb_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/build_tools_version_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/clear_device_logs_on_start_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/ignore_hidden_api_policy_error_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/logcat_filter_specs_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/logcat_format_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/mock_location_app_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/remote_adb_host_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/skip_logcat_capture_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/adb/suppress_kill_server_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/allow_test_packages_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/android_install_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/app_activity_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/app_package_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/app_wait_activity_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/app_wait_duration_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/app_wait_for_launch_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/app_wait_package_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/auto_grant_premissions_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/enforce_app_install_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/intent_action_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/intent_category_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/intent_flags_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/optional_intent_arguments_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/remote_apps_cache_limit_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/app/uninstall_other_packages_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/avd/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/avd/avd_args_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/avd/avd_env_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/avd/avd_launch_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/avd/avd_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/avd/avd_ready_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/avd/gps_enabled_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/avd/network_speed_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/auto_webview_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chrome_logging_prefs_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chrome_options_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chromedriver_args_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chromedriver_chrome_mapping_file_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chromedriver_disable_build_check_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chromedriver_executable_dir_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chromedriver_executable_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chromedriver_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chromedriver_ports_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/chromedriver_use_system_executable_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/ensure_webviews_have_pages_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/extract_chrome_android_package_from_context_name_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/native_web_screenshot_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/recreate_chrome_driver_sessions_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/show_chromedriver_log_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/context/webview_devtools_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/localization/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/localization/locale_script_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/locking/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/locking/skip_unlock_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/locking/unlock_key_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/locking/unlock_strategy_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/locking/unlock_success_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/locking/unlock_type_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/mjpeg/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/mjpeg/mjpeg_screenshot_url_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/other/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/other/disable_suppress_accessibility_service_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/other/user_profile_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/signing/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/signing/key_alias_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/signing/key_password_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/signing/keystore_password_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/signing/keystore_path_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/signing/no_sign_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/signing/use_keystore_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/activity_options_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/app_locale_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/espresso_build_config_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/espresso_server_launch_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/force_espresso_rebuild_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/intent_options_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/espresso/show_gradle_log_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/disable_window_animation_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/mjpeg_server_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/skip_device_initialization_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/skip_server_installation_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/uiautomator2_server_install_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/uiautomator2_server_launch_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/uiautomator2/uiautomator2_server_read_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/app_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/auto_web_view_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/automation_name_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/browser_name_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/bundle_id_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/clear_system_files_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/device_name_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/enable_performance_logging_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/event_timings_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/full_reset_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/is_headless_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/language_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/locale_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/new_command_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/no_reset_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/orientation_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/other_apps_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/platform_version_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/postrun_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/prerun_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/print_page_source_on_find_failure_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/skip_log_capture_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/supports_capabilities.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/system_host_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/system_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/common/udid_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/flutter_integration/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/flutter_integration/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/flutter_integration/flutter_element_wait_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/flutter_integration/flutter_enable_mock_camera_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/flutter_integration/flutter_server_launch_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/flutter_integration/flutter_system_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/gecko/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/gecko/android_storage_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/gecko/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/gecko/firefox_options_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/gecko/marionette_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/gecko/verbosity_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/automatic_inspection_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/automatic_profiling_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/device_name_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/device_type_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/device_udid_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/platform_build_version_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/platform_version_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/use_simulator_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/safari/webkit_webrtc_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/app/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/app/app_install_strategy_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/app/app_push_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/app/localizable_strings_dir_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/general/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/general/include_device_caps_to_session_info_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/general/reset_location_service_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/other/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/other/command_timeouts_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/other/launch_with_idb_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/other/show_ios_log_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/other/use_json_source_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/calendar_access_authorized_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/calendar_format_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/connect_hardware_keyboard_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/custom_ssl_cert_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/enforce_fresh_simulator_creation_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/force_simulator_software_keyboard_presence_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/ios_simulator_logs_predicate_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/keep_key_chains_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/keychains_exclude_patterns_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/permissions_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/reduce_motion_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/reset_on_session_start_only_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/scale_factor_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/shutdown_other_simulators_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/simulator_devices_set_path_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/simulator_pasteboard_automatic_sync_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/simulator_startup_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/simulator_trace_pointer_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/simulator/simulator_window_center_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/allow_provisioning_device_regitration_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/auto_accept_alerts_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/auto_disimiss_alerts_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/derived_data_path_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/disable_automatic_screenshots_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/force_app_launch_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/keychain_password_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/keychain_path_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/max_typing_frequency_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/mjpeg_server_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/prebuilt_wda_path_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/process_arguments_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/result_bundle_path_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/screenshot_quality_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/should_terminate_app_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/should_use_singleton_test_manager_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/show_xcode_log_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/simple_is_visible_check_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/updated_wda_bundle_id_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/use_native_caching_strategy_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/use_new_wda_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/use_prebuilt_wda_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/use_preinstalled_wda_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/use_simple_build_test_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/use_xctestrun_file_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wait_for_idle_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wait_for_quiescence_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wda_base_url_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wda_connection_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wda_eventloop_idle_delay_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wda_launch_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wda_local_port_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wda_startup_retries_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/wda_startup_retry_interval_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/web_driver_agent_url_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/xcode_org_id_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/wda/xcode_signing_id_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/absolute_web_locations_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/additional_webview_bundle_ids_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/enable_async_execute_from_https_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/full_context_list_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/include_safari_in_webviews_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/native_web_tap_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_garbage_collect_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_ignore_fraud_warning_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_ignore_web_hostnames_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_initial_url_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_log_all_communication_hex_dump_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_log_all_communication_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_open_links_in_background_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_socket_chunk_size_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/safari_web_inspector_max_frame_length_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/webkit_response_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/webview_connect_retries_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/ios/xcuitest/webview/webview_connect_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/app_path_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/arguments_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/bootstrap_root_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/environment_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/server_startup_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/show_server_logs_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/skip_app_kill_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/mac/mac2/web_driver_agent_mac_url_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/windows/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/windows/app_arguments_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/windows/app_top_level_window_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/windows/app_working_dir_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/windows/base.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/windows/create_session_timeout_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/windows/expreimental_web_driver_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/windows/windows/wait_for_app_launch_option.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/protocols/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/protocols/webdriver/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/protocols/webdriver/can_execute_commands.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/protocols/webdriver/can_execute_scripts.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/protocols/webdriver/can_find_elements.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/py.typed +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/version.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/appium_connection.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/applicationstate.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/client_config.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/clipboard_content_type.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/command_method.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/common/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/common/appiumby.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/connectiontype.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/errorhandler.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/action_helpers.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/activities.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/common.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/display.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/gsm.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/nativekey.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/network.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/performance.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/power.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/sms.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/android/system_bars.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/applications.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/clipboard.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/context.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/device_time.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/execute_driver.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/execute_mobile_command.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/flutter_integration/__init__.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/flutter_integration/flutter_finder.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/hw_actions.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/keyboard.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/location.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/logs.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/remote_fs.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/session.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/settings.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/locator_converter.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/mobilecommand.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/switch_to.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/webelement.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/Makefile +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/README.md +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/conf.py +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/generate.sh +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/index.rst +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/make.bat +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/webdriver.common.rst +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/webdriver.extensions.android.rst +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/webdriver.extensions.flutter_integration.rst +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/webdriver.extensions.rst +0 -0
- {appium_python_client-6.1.1 → appium_python_client-6.1.3}/docs/webdriver.rst +0 -0
{appium_python_client-6.1.1 → appium_python_client-6.1.3}/.github/workflows/functional-test.yml
RENAMED
|
@@ -83,7 +83,7 @@ jobs:
|
|
|
83
83
|
python-version: 3.14
|
|
84
84
|
|
|
85
85
|
- name: Set up uv
|
|
86
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
86
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
87
87
|
with:
|
|
88
88
|
enable-cache: true
|
|
89
89
|
python-version: '3.14'
|
|
@@ -190,7 +190,7 @@ jobs:
|
|
|
190
190
|
python-version: 3.14
|
|
191
191
|
|
|
192
192
|
- name: Set up uv
|
|
193
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
193
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
194
194
|
with:
|
|
195
195
|
enable-cache: true
|
|
196
196
|
python-version: '3.14'
|
|
@@ -306,7 +306,7 @@ jobs:
|
|
|
306
306
|
log_file: appium-${{ matrix.e2e-tests }}.log
|
|
307
307
|
|
|
308
308
|
- name: Set up uv
|
|
309
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
309
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
310
310
|
with:
|
|
311
311
|
enable-cache: true
|
|
312
312
|
python-version: '3.14'
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
with:
|
|
26
26
|
python-version: '3.14'
|
|
27
27
|
- name: Set up uv
|
|
28
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
28
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
29
29
|
with:
|
|
30
30
|
enable-cache: true
|
|
31
31
|
python-version: '3.14'
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
with:
|
|
48
48
|
python-version: ${{ matrix.python-version }}
|
|
49
49
|
- name: Set up uv
|
|
50
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
50
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
51
51
|
with:
|
|
52
52
|
enable-cache: true
|
|
53
53
|
python-version: ${{ matrix.python-version }}
|
|
@@ -2,6 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v6.1.3 (2026-11-02)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **flutter**: Support horizontal scrolling in scroll_till_visible
|
|
10
|
+
([#1351](https://github.com/appium/python-client/pull/1351),
|
|
11
|
+
[`ae9042d`](https://github.com/appium/python-client/commit/ae9042dcabd6c6b6967f938b8bbb38683f58ded1))
|
|
12
|
+
|
|
13
|
+
### Documentation
|
|
14
|
+
|
|
15
|
+
- Fix broken README and docstring examples
|
|
16
|
+
([#1350](https://github.com/appium/python-client/pull/1350),
|
|
17
|
+
[`6e0bf47`](https://github.com/appium/python-client/commit/6e0bf47fc8e0fb3f6737f79bd9d07fb7d53d23fc))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## v6.1.2 (2026-11-01)
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
- Correct return types of image comparison and get_events
|
|
25
|
+
([#1347](https://github.com/appium/python-client/pull/1347),
|
|
26
|
+
[`16fc1f3`](https://github.com/appium/python-client/commit/16fc1f3807e9c05b55549585de6f3d225c72fba6))
|
|
27
|
+
|
|
28
|
+
- Correct screen recording return types and documented options
|
|
29
|
+
([#1346](https://github.com/appium/python-client/pull/1346),
|
|
30
|
+
[`b92ec44`](https://github.com/appium/python-client/commit/b92ec444ab68f0588edff3608e5bf7d4d4251073))
|
|
31
|
+
|
|
32
|
+
### Continuous Integration
|
|
33
|
+
|
|
34
|
+
- **deps**: Bump astral-sh/setup-uv from 10.3.1 to 10.3.3
|
|
35
|
+
([#1348](https://github.com/appium/python-client/pull/1348),
|
|
36
|
+
[`f7143a7`](https://github.com/appium/python-client/commit/f7143a75fa13a6edb544f486c9572459f4b08ace))
|
|
37
|
+
|
|
38
|
+
### Refactoring
|
|
39
|
+
|
|
40
|
+
- Consolidate the process end handling ([#1349](https://github.com/appium/python-client/pull/1349),
|
|
41
|
+
[`6abcf22`](https://github.com/appium/python-client/commit/6abcf22581928377bdc43aab083ddd6667564923))
|
|
42
|
+
|
|
43
|
+
|
|
5
44
|
## v6.1.1 (2026-10-31)
|
|
6
45
|
|
|
7
46
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: Appium-Python-Client
|
|
3
|
-
Version: 6.1.
|
|
3
|
+
Version: 6.1.3
|
|
4
4
|
Summary: Python client for Appium
|
|
5
5
|
Project-URL: Homepage, https://appium.io/
|
|
6
6
|
Project-URL: Repository, https://github.com/appium/python-client
|
|
@@ -232,7 +232,7 @@ def appium_service():
|
|
|
232
232
|
|
|
233
233
|
def create_ios_driver(custom_opts=None):
|
|
234
234
|
options = XCUITestOptions()
|
|
235
|
-
options.
|
|
235
|
+
options.platform_version = '13.4'
|
|
236
236
|
options.udid = '123456789ABC'
|
|
237
237
|
if custom_opts is not None:
|
|
238
238
|
options.load_capabilities(custom_opts)
|
|
@@ -242,7 +242,7 @@ def create_ios_driver(custom_opts=None):
|
|
|
242
242
|
|
|
243
243
|
def create_android_driver(custom_opts=None):
|
|
244
244
|
options = UiAutomator2Options()
|
|
245
|
-
options.
|
|
245
|
+
options.platform_version = '10'
|
|
246
246
|
options.udid = '123456789ABC'
|
|
247
247
|
if custom_opts is not None:
|
|
248
248
|
options.load_capabilities(custom_opts)
|
|
@@ -408,15 +408,20 @@ from appium.options.ios import XCUITestOptions
|
|
|
408
408
|
|
|
409
409
|
import urllib3
|
|
410
410
|
from appium.webdriver.appium_connection import AppiumConnection
|
|
411
|
+
from appium.webdriver.client_config import AppiumClientConfig
|
|
411
412
|
|
|
412
413
|
# Retry connection error up to 3 times.
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
414
|
+
# Selenium passes the arguments under the nested 'init_args_for_pool_manager' key to urllib3.PoolManager.
|
|
415
|
+
init_args_for_pool_manager = {
|
|
416
|
+
'init_args_for_pool_manager': {'retries': urllib3.util.retry.Retry(total=3, connect=3, read=False)}
|
|
417
|
+
}
|
|
418
|
+
client_config = AppiumClientConfig(
|
|
419
|
+
remote_server_addr='http://127.0.0.1:4723', init_args_for_pool_manager=init_args_for_pool_manager
|
|
416
420
|
)
|
|
421
|
+
appium_executor = AppiumConnection(client_config=client_config)
|
|
417
422
|
|
|
418
423
|
options = XCUITestOptions()
|
|
419
|
-
options.
|
|
424
|
+
options.platform_version = '13.4'
|
|
420
425
|
options.udid = '123456789ABC'
|
|
421
426
|
options.app = '/full/path/to/app/UICatalog.app.zip'
|
|
422
427
|
driver = webdriver.Remote(appium_executor, options=options)
|
|
@@ -204,7 +204,7 @@ def appium_service():
|
|
|
204
204
|
|
|
205
205
|
def create_ios_driver(custom_opts=None):
|
|
206
206
|
options = XCUITestOptions()
|
|
207
|
-
options.
|
|
207
|
+
options.platform_version = '13.4'
|
|
208
208
|
options.udid = '123456789ABC'
|
|
209
209
|
if custom_opts is not None:
|
|
210
210
|
options.load_capabilities(custom_opts)
|
|
@@ -214,7 +214,7 @@ def create_ios_driver(custom_opts=None):
|
|
|
214
214
|
|
|
215
215
|
def create_android_driver(custom_opts=None):
|
|
216
216
|
options = UiAutomator2Options()
|
|
217
|
-
options.
|
|
217
|
+
options.platform_version = '10'
|
|
218
218
|
options.udid = '123456789ABC'
|
|
219
219
|
if custom_opts is not None:
|
|
220
220
|
options.load_capabilities(custom_opts)
|
|
@@ -380,15 +380,20 @@ from appium.options.ios import XCUITestOptions
|
|
|
380
380
|
|
|
381
381
|
import urllib3
|
|
382
382
|
from appium.webdriver.appium_connection import AppiumConnection
|
|
383
|
+
from appium.webdriver.client_config import AppiumClientConfig
|
|
383
384
|
|
|
384
385
|
# Retry connection error up to 3 times.
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
386
|
+
# Selenium passes the arguments under the nested 'init_args_for_pool_manager' key to urllib3.PoolManager.
|
|
387
|
+
init_args_for_pool_manager = {
|
|
388
|
+
'init_args_for_pool_manager': {'retries': urllib3.util.retry.Retry(total=3, connect=3, read=False)}
|
|
389
|
+
}
|
|
390
|
+
client_config = AppiumClientConfig(
|
|
391
|
+
remote_server_addr='http://127.0.0.1:4723', init_args_for_pool_manager=init_args_for_pool_manager
|
|
388
392
|
)
|
|
393
|
+
appium_executor = AppiumConnection(client_config=client_config)
|
|
389
394
|
|
|
390
395
|
options = XCUITestOptions()
|
|
391
|
-
options.
|
|
396
|
+
options.platform_version = '13.4'
|
|
392
397
|
options.udid = '123456789ABC'
|
|
393
398
|
options.app = '/full/path/to/app/UICatalog.app.zip'
|
|
394
399
|
driver = webdriver.Remote(appium_executor, options=options)
|
{appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/appium_service.py
RENAMED
|
@@ -127,17 +127,7 @@ class AppiumService:
|
|
|
127
127
|
if stderr == sp.PIPE and self._process.stderr is not None:
|
|
128
128
|
# The server might still be running, for example if it does not listen on the expected URL.
|
|
129
129
|
# Reading its stderr before the process exits would block forever, so terminate it first.
|
|
130
|
-
self.
|
|
131
|
-
try:
|
|
132
|
-
_, err_output = self._process.communicate(timeout=STOP_TIMEOUT_SEC)
|
|
133
|
-
except sp.TimeoutExpired:
|
|
134
|
-
# The server ignored the termination request. Kill it, so its error output is not lost.
|
|
135
|
-
self._process.kill()
|
|
136
|
-
try:
|
|
137
|
-
_, err_output = self._process.communicate(timeout=STOP_TIMEOUT_SEC)
|
|
138
|
-
except sp.TimeoutExpired as e:
|
|
139
|
-
# Another process might still hold stderr open. Keep the output read so far.
|
|
140
|
-
err_output = e.stderr or b''
|
|
130
|
+
err_output = self._terminate_process(STOP_TIMEOUT_SEC)
|
|
141
131
|
if err_output:
|
|
142
132
|
error_msg += f'\nOriginal error: {str(err_output)}'
|
|
143
133
|
self.stop()
|
|
@@ -156,21 +146,37 @@ class AppiumService:
|
|
|
156
146
|
Returns:
|
|
157
147
|
`True` if the service was running before being stopped
|
|
158
148
|
"""
|
|
159
|
-
was_running =
|
|
160
|
-
if
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
self._process
|
|
149
|
+
was_running = self.is_running
|
|
150
|
+
if was_running:
|
|
151
|
+
self._terminate_process(timeout)
|
|
152
|
+
else:
|
|
153
|
+
self._process = None
|
|
154
|
+
self._cmd = None
|
|
155
|
+
return was_running
|
|
156
|
+
|
|
157
|
+
def _terminate_process(self, timeout: float) -> bytes | str | None:
|
|
158
|
+
"""Terminate the process and collect stderr within bounded waits."""
|
|
159
|
+
process = self._process
|
|
160
|
+
if process is None:
|
|
161
|
+
return None
|
|
162
|
+
try:
|
|
163
|
+
process.terminate()
|
|
164
164
|
try:
|
|
165
|
-
|
|
165
|
+
_, stderr = process.communicate(timeout=timeout)
|
|
166
166
|
except sp.SubprocessError:
|
|
167
167
|
if sys.platform == 'win32':
|
|
168
|
-
sp.call(['taskkill', '/f', '/pid', str(
|
|
168
|
+
sp.call(['taskkill', '/f', '/pid', str(process.pid)])
|
|
169
169
|
else:
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
170
|
+
process.kill()
|
|
171
|
+
try:
|
|
172
|
+
_, stderr = process.communicate(timeout=timeout)
|
|
173
|
+
except sp.TimeoutExpired as e:
|
|
174
|
+
# Another process might still hold stderr open. Keep the output read so far.
|
|
175
|
+
stderr = e.stderr
|
|
176
|
+
return stderr
|
|
177
|
+
finally:
|
|
178
|
+
self._process = None
|
|
179
|
+
self._cmd = None
|
|
174
180
|
|
|
175
181
|
@property
|
|
176
182
|
def is_running(self) -> bool:
|
|
@@ -38,7 +38,8 @@ class FlutterCommand:
|
|
|
38
38
|
|
|
39
39
|
Args:
|
|
40
40
|
locator (Union[WebElement, FlutterFinder]): The element to wait for; can be a WebElement or a FlutterFinder.
|
|
41
|
-
timeout (Optional[float]): Maximum wait time in seconds.
|
|
41
|
+
timeout (Optional[float]): Maximum wait time in whole seconds. The Flutter server drops any fractional
|
|
42
|
+
part, so 0.5 becomes 0. Defaults to a predefined timeout if not specified.
|
|
42
43
|
|
|
43
44
|
Returns:
|
|
44
45
|
None
|
|
@@ -59,7 +60,8 @@ class FlutterCommand:
|
|
|
59
60
|
|
|
60
61
|
Args:
|
|
61
62
|
locator (Union[WebElement, FlutterFinder]): The element to wait for; can be a WebElement or a FlutterFinder.
|
|
62
|
-
timeout (Optional[float]): Maximum wait time in seconds.
|
|
63
|
+
timeout (Optional[float]): Maximum wait time in whole seconds. The Flutter server drops any fractional
|
|
64
|
+
part, so 0.5 becomes 0. Defaults to a predefined timeout if not specified.
|
|
63
65
|
|
|
64
66
|
Returns:
|
|
65
67
|
None:
|
|
@@ -128,7 +130,7 @@ class FlutterCommand:
|
|
|
128
130
|
|
|
129
131
|
Args:
|
|
130
132
|
scroll_to (FlutterFinder): The Flutter element to scroll to.
|
|
131
|
-
scroll_direction (ScrollDirection): The direction to scroll
|
|
133
|
+
scroll_direction (ScrollDirection): The direction to scroll. Defaults to `ScrollDirection.DOWN`.
|
|
132
134
|
|
|
133
135
|
KeywordArgs:
|
|
134
136
|
scrollView (str): The view of the scroll. Default value is 'Scrollable'
|
|
@@ -51,7 +51,7 @@ class ImagesComparison(CanExecuteCommands):
|
|
|
51
51
|
Returns:
|
|
52
52
|
The dictionary containing the following entries:
|
|
53
53
|
|
|
54
|
-
visualization (
|
|
54
|
+
visualization (str): base64-encoded content of PNG visualization of the current comparison
|
|
55
55
|
operation. This entry is only present if `visualize` option is enabled
|
|
56
56
|
count (int): The count of matched edges on both images.
|
|
57
57
|
The more matching edges there are no both images the more similar they are.
|
|
@@ -59,11 +59,11 @@ class ImagesComparison(CanExecuteCommands):
|
|
|
59
59
|
It is equal to `count` if `goodMatchesFactor` does not limit the matches,
|
|
60
60
|
otherwise it contains the total count of matches before `goodMatchesFactor` is
|
|
61
61
|
applied.
|
|
62
|
-
points1 (
|
|
62
|
+
points1 (list): The array of matching points on the first image. Each point is a dictionary
|
|
63
63
|
with 'x' and 'y' keys
|
|
64
64
|
rect1 (dict): The bounding rect for the `points1` array or a zero rect if not enough matching points
|
|
65
65
|
were found. The rect is represented by a dictionary with 'x', 'y', 'width' and 'height' keys
|
|
66
|
-
points2 (
|
|
66
|
+
points2 (list): The array of matching points on the second image. Each point is a dictionary
|
|
67
67
|
with 'x' and 'y' keys
|
|
68
68
|
rect2 (dict): The bounding rect for the `points2` array or a zero rect if not enough matching points
|
|
69
69
|
were found. The rect is represented by a dictionary with 'x', 'y', 'width' and 'height' keys
|
|
@@ -78,7 +78,7 @@ class ImagesComparison(CanExecuteCommands):
|
|
|
78
78
|
|
|
79
79
|
def find_image_occurrence(
|
|
80
80
|
self, base64_full_image: Base64Payload, base64_partial_image: Base64Payload, **opts: Any
|
|
81
|
-
) -> dict[str,
|
|
81
|
+
) -> dict[str, Any] | list[dict[str, Any]]:
|
|
82
82
|
"""Performs images matching by template to find possible occurrence of the partial image
|
|
83
83
|
in the full image.
|
|
84
84
|
|
|
@@ -94,13 +94,17 @@ class ImagesComparison(CanExecuteCommands):
|
|
|
94
94
|
Keyword Args:
|
|
95
95
|
visualize (bool): Set it to True in order to return the visualization of the matching operation.
|
|
96
96
|
False by default
|
|
97
|
+
multiple (bool): Set it to True in order to return all matches above the threshold
|
|
98
|
+
as a list. False by default
|
|
97
99
|
|
|
98
100
|
Returns:
|
|
99
|
-
The dictionary containing the following entries
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
The dictionary containing the following entries, or a list of such dictionaries
|
|
102
|
+
(one per match) if `multiple` is enabled:
|
|
103
|
+
visualization (str): base64-encoded content of PNG visualization of the current comparison
|
|
104
|
+
operation. This entry is only filled if `visualize` option is enabled
|
|
102
105
|
rect (dict): The region of the partial image occurrence on the full image.
|
|
103
106
|
The rect is represented by a dictionary with 'x', 'y', 'width' and 'height' keys
|
|
107
|
+
score (float): The similarity score of the match
|
|
104
108
|
"""
|
|
105
109
|
options = {
|
|
106
110
|
'mode': 'matchTemplate',
|
|
@@ -110,9 +114,7 @@ class ImagesComparison(CanExecuteCommands):
|
|
|
110
114
|
}
|
|
111
115
|
return self.execute(Command.COMPARE_IMAGES, options)['value']
|
|
112
116
|
|
|
113
|
-
def get_images_similarity(
|
|
114
|
-
self, base64_image1: Base64Payload, base64_image2: Base64Payload, **opts: Any
|
|
115
|
-
) -> dict[str, bytes | dict]:
|
|
117
|
+
def get_images_similarity(self, base64_image1: Base64Payload, base64_image2: Base64Payload, **opts: Any) -> dict[str, Any]:
|
|
116
118
|
"""Performs images matching to calculate the similarity score between them.
|
|
117
119
|
|
|
118
120
|
The flow there is similar to the one used in
|
|
@@ -124,12 +126,12 @@ class ImagesComparison(CanExecuteCommands):
|
|
|
124
126
|
base64_image2: base64-encoded content of the second image
|
|
125
127
|
|
|
126
128
|
Keyword Args:
|
|
127
|
-
visualize (
|
|
129
|
+
visualize (bool): Set it to True in order to return the visualization of the matching operation.
|
|
128
130
|
False by default
|
|
129
131
|
|
|
130
132
|
Returns:
|
|
131
133
|
The dictionary containing the following entries:
|
|
132
|
-
visualization (
|
|
134
|
+
visualization (str): base64-encoded content of PNG visualization of the current comparison
|
|
133
135
|
operation. This entry is only present if `visualize` option is enabled
|
|
134
136
|
score (float): The similarity score as a float number in range [0.0, 1.0].
|
|
135
137
|
1.0 is the highest score (means both images are totally equal).
|
{appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/webdriver/extensions/log_event.py
RENAMED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
15
|
|
|
16
|
+
from typing import Any
|
|
17
|
+
|
|
16
18
|
from typing_extensions import Self
|
|
17
19
|
|
|
18
20
|
from appium.protocols.webdriver.can_execute_commands import CanExecuteCommands
|
|
@@ -21,7 +23,7 @@ from ..mobilecommand import MobileCommand as Command
|
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
class LogEvent(CanExecuteCommands):
|
|
24
|
-
def get_events(self, type: list[str] | None = None) -> dict[str,
|
|
26
|
+
def get_events(self, type: list[str] | None = None) -> dict[str, Any]:
|
|
25
27
|
"""Retrieves events information from the current session
|
|
26
28
|
(Since Appium 1.16.0)
|
|
27
29
|
|
|
@@ -33,11 +35,13 @@ class LogEvent(CanExecuteCommands):
|
|
|
33
35
|
| events = driver.get_events(['appium:funEvent'])
|
|
34
36
|
|
|
35
37
|
Returns:
|
|
36
|
-
`dict`: A dictionary of events timing information
|
|
38
|
+
`dict`: A dictionary of events timing information. Every value is a list.
|
|
37
39
|
| commands: (`list` of `dict`) List of dictionaries containing the following entries
|
|
38
40
|
| cmd: The command name that has been sent to the appium server
|
|
39
41
|
| startTime: Received time
|
|
40
42
|
| endTime: Response time
|
|
43
|
+
| Each other key is an event name, such as 'appium:funEvent', and its value is
|
|
44
|
+
| the `list` of timestamps (`int`, milliseconds) when that event happened
|
|
41
45
|
"""
|
|
42
46
|
data = {}
|
|
43
47
|
if type is not None:
|
|
@@ -20,7 +20,7 @@ from ..mobilecommand import MobileCommand as Command
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class ScreenRecord(CanExecuteCommands):
|
|
23
|
-
def start_recording_screen(self, **options: Any) ->
|
|
23
|
+
def start_recording_screen(self, **options: Any) -> str | None:
|
|
24
24
|
"""Start asynchronous screen recording process.
|
|
25
25
|
|
|
26
26
|
+--------------+-----+---------+-----+-------+
|
|
@@ -50,7 +50,9 @@ class ScreenRecord(CanExecuteCommands):
|
|
|
50
50
|
+--------------+-----+---------+-----+-------+
|
|
51
51
|
| videoFps | O | | | |
|
|
52
52
|
+--------------+-----+---------+-----+-------+
|
|
53
|
-
|
|
|
53
|
+
| videoFilters | O | | | |
|
|
54
|
+
+--------------+-----+---------+-----+-------+
|
|
55
|
+
| videoFilter | | | O | O |
|
|
54
56
|
+--------------+-----+---------+-----+-------+
|
|
55
57
|
| videoScale | O | | | |
|
|
56
58
|
+--------------+-----+---------+-----+-------+
|
|
@@ -93,13 +95,14 @@ class ScreenRecord(CanExecuteCommands):
|
|
|
93
95
|
Only has an effect if `remotePath` is set.
|
|
94
96
|
timeLimit (int): The actual time limit of the recorded video in seconds.
|
|
95
97
|
The default value for both iOS and Android is 180 seconds (3 minutes).
|
|
96
|
-
The default value for macOS is 600 seconds (10 minutes).
|
|
97
|
-
The maximum value for Android is
|
|
98
|
-
The maximum value for iOS is
|
|
99
|
-
|
|
100
|
-
forcedRestart (bool): Whether to ignore the result of previous capture and start a new recording
|
|
98
|
+
The default value for Windows and macOS is 600 seconds (10 minutes).
|
|
99
|
+
The maximum value for Android is 1800 seconds (30 minutes).
|
|
100
|
+
The maximum value for iOS is 4200 seconds (70 minutes).
|
|
101
|
+
forceRestart (bool): Whether to ignore the result of previous capture and start a new recording
|
|
101
102
|
immediately (`True` value). By default (`False`) the endpoint will try to catch and
|
|
102
103
|
return the result of the previous capture if it's still available.
|
|
104
|
+
On Windows and macOS the default is `True`, and `False` makes the call do nothing
|
|
105
|
+
while a recording is already running.
|
|
103
106
|
fileFieldName (str): [multipart/form-data requests] The name of the form field
|
|
104
107
|
containing the binary payload. "file" by default. (Since Appium 1.18.0)
|
|
105
108
|
formFields (dict): [multipart/form-data requests] Additional form fields mapping. If any entry has
|
|
@@ -113,7 +116,7 @@ class ScreenRecord(CanExecuteCommands):
|
|
|
113
116
|
'mjpeg' by default. (Since Appium 1.10.0)
|
|
114
117
|
videoFps (int): [iOS] The Frames Per Second rate of the recorded video. Change this value if the
|
|
115
118
|
resulting video is too slow or too fast. Defaults to 10. This can decrease the resulting file size.
|
|
116
|
-
videoFilters (str): [iOS
|
|
119
|
+
videoFilters (str): [iOS] The FFMPEG video filters to apply. These filters allow to scale,
|
|
117
120
|
flip, rotate and do many other useful transformations on the source video stream. The format of the
|
|
118
121
|
property must comply with https://ffmpeg.org/ffmpeg-filters.html. (Since Appium 1.15)
|
|
119
122
|
videoScale (str): [iOS] The scaling value to apply. Read https://trac.ffmpeg.org/wiki/Scaling for
|
|
@@ -129,7 +132,7 @@ class ScreenRecord(CanExecuteCommands):
|
|
|
129
132
|
bitRate (int): [Android] The video bit rate for the video, in bits per second.
|
|
130
133
|
The default value is 4000000 (4 Mbit/s). You can increase the bit rate to improve video quality,
|
|
131
134
|
but doing so results in larger movie files.
|
|
132
|
-
bugReport (
|
|
135
|
+
bugReport (bool): [Android] Makes the recorder to display an additional information on the video overlay,
|
|
133
136
|
such as a timestamp, that is helpful in videos captured to illustrate bugs.
|
|
134
137
|
This option is only supported since API level 27 (Android P).
|
|
135
138
|
|
|
@@ -137,8 +140,10 @@ class ScreenRecord(CanExecuteCommands):
|
|
|
137
140
|
Increasing fps value also increases the size of the resulting video file and the CPU usage.
|
|
138
141
|
captureCursor (bool): [Win, macOS] Whether to capture the mouse cursor while recording the screen.
|
|
139
142
|
Disabled by default.
|
|
140
|
-
|
|
143
|
+
captureClicks (bool): [Win, macOS] Whether to capture the click gestures while recording the screen.
|
|
141
144
|
Disabled by default.
|
|
145
|
+
videoFilter (str): [Win, macOS] The FFMPEG video filter to apply. The format is the same as
|
|
146
|
+
for `videoFilters`.
|
|
142
147
|
deviceId (int): [macOS] Screen device index to use for the recording.
|
|
143
148
|
The list of available devices could be retrieved using
|
|
144
149
|
`ffmpeg -f avfoundation -list_devices true -i` command.
|
|
@@ -155,16 +160,17 @@ class ScreenRecord(CanExecuteCommands):
|
|
|
155
160
|
driver.start_recording_screen()
|
|
156
161
|
|
|
157
162
|
Returns:
|
|
158
|
-
|
|
163
|
+
str | None: [iOS, Android] Base-64 encoded content of the recorded media
|
|
159
164
|
if `stop_recording_screen` isn't called after previous `start_recording_screen`.
|
|
160
165
|
Otherwise returns an empty string.
|
|
166
|
+
[Win, macOS] Always None.
|
|
161
167
|
"""
|
|
162
168
|
if 'password' in options:
|
|
163
169
|
options['pass'] = options['password']
|
|
164
170
|
del options['password']
|
|
165
171
|
return self.execute(Command.START_RECORDING_SCREEN, {'options': options})['value']
|
|
166
172
|
|
|
167
|
-
def stop_recording_screen(self, **options: Any) ->
|
|
173
|
+
def stop_recording_screen(self, **options: Any) -> str:
|
|
168
174
|
"""Gather the output from the previously started screen recording to a media file.
|
|
169
175
|
|
|
170
176
|
Keyword Args:
|
|
@@ -196,7 +202,7 @@ class ScreenRecord(CanExecuteCommands):
|
|
|
196
202
|
fd.write(base64.b64decode(payload))
|
|
197
203
|
|
|
198
204
|
Returns:
|
|
199
|
-
|
|
205
|
+
str: Base-64 encoded content of the recorded media file or an empty string
|
|
200
206
|
if the file has been successfully uploaded to a remote location
|
|
201
207
|
(depends on the actual `remotePath` value).
|
|
202
208
|
"""
|
|
@@ -74,7 +74,7 @@ class ExtensionBase:
|
|
|
74
74
|
|
|
75
75
|
Example:
|
|
76
76
|
When you want to add `example_command` which calls a get request to
|
|
77
|
-
|
|
77
|
+
`/session/$sessionId/path/to/your/custom/url`.
|
|
78
78
|
|
|
79
79
|
#. Defines an extension as a subclass of `ExtensionBase`
|
|
80
80
|
.. code-block:: python
|
|
@@ -91,7 +91,7 @@ class ExtensionBase:
|
|
|
91
91
|
|
|
92
92
|
# Used to register the command pair as "Appium command" in this driver.
|
|
93
93
|
def add_command(self):
|
|
94
|
-
return ('GET', 'session/$sessionId/path/to/your/custom/url')
|
|
94
|
+
return ('GET', '/session/$sessionId/path/to/your/custom/url')
|
|
95
95
|
|
|
96
96
|
#. Creates a session with the extension.
|
|
97
97
|
.. code-block:: python
|
|
@@ -105,7 +105,7 @@ class ExtensionBase:
|
|
|
105
105
|
.. code-block:: python
|
|
106
106
|
|
|
107
107
|
# Then, the driver calls a get request against
|
|
108
|
-
#
|
|
108
|
+
# `/session/$sessionId/path/to/your/custom/url`. `$sessionId` will be
|
|
109
109
|
# replaced properly in the driver. Then, the method returns
|
|
110
110
|
# the `value` part of the response.
|
|
111
111
|
driver.custom_method_name()
|
|
@@ -127,16 +127,16 @@ class ExtensionBase:
|
|
|
127
127
|
def method_name(self):
|
|
128
128
|
return 'custom_method_name'
|
|
129
129
|
|
|
130
|
-
def
|
|
130
|
+
def custom_method_name(self, argument):
|
|
131
131
|
return self.execute(argument)['value']
|
|
132
132
|
|
|
133
133
|
def add_command(self):
|
|
134
|
-
return ('post', 'session/$sessionId/path/to/your/custom/url')
|
|
134
|
+
return ('post', '/session/$sessionId/path/to/your/custom/url')
|
|
135
135
|
|
|
136
136
|
driver = webdriver.Remote('http://localhost:4723/wd/hub', options=options,
|
|
137
137
|
extensions=[YourCustomCommand])
|
|
138
138
|
|
|
139
|
-
# Then, the driver sends a post request to
|
|
139
|
+
# Then, the driver sends a post request to `/session/$sessionId/path/to/your/custom/url`
|
|
140
140
|
# with `{'dummy_arg': 'as a value'}` JSON body.
|
|
141
141
|
driver.custom_method_name({'dummy_arg': 'as a value'})
|
|
142
142
|
|
|
@@ -153,13 +153,13 @@ class ExtensionBase:
|
|
|
153
153
|
return self.execute({'id': element_id})['value']
|
|
154
154
|
|
|
155
155
|
def add_command(self):
|
|
156
|
-
return ('GET', 'session/$sessionId/path/to/your/custom/$id/url')
|
|
156
|
+
return ('GET', '/session/$sessionId/path/to/your/custom/$id/url')
|
|
157
157
|
|
|
158
158
|
driver = webdriver.Remote('http://localhost:4723/wd/hub', options=options,
|
|
159
|
-
extensions=[
|
|
159
|
+
extensions=[CustomURLCommand])
|
|
160
160
|
element = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='id')
|
|
161
161
|
|
|
162
|
-
# Then, the driver calls a get request to
|
|
162
|
+
# Then, the driver calls a get request to `/session/$sessionId/path/to/your/custom/$id/url`
|
|
163
163
|
# with replacing the `$id` with the given `element.id`
|
|
164
164
|
driver.custom_method_name(element.id)
|
|
165
165
|
|
|
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
|
{appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/__init__.py
RENAMED
|
File without changes
|
{appium_python_client-6.1.1 → appium_python_client-6.1.3}/appium/options/android/common/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|