Appium-Python-Client 4.2.0__tar.gz → 4.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/Appium_Python_Client.egg-info/PKG-INFO +52 -6
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/Appium_Python_Client.egg-info/SOURCES.txt +1 -1
- appium_python_client-4.3.0/Appium_Python_Client.egg-info/requires.txt +1 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/PKG-INFO +52 -6
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/README.md +50 -4
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/adb_exec_timeout_option.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/app_wait_duration_option.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/avd/avd_launch_timeout_option.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/avd/avd_ready_timeout_option.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/auto_webview_timeout_option.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/espresso_build_config_option.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/supports_capabilities.py +2 -4
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/flutter_integration/flutter_enable_mock_camera_option.py +0 -1
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/app/app_push_timeout_option.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wda_launch_timeout_option.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/protocols/webdriver/can_execute_commands.py +1 -2
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/protocols/webdriver/can_execute_scripts.py +5 -10
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/protocols/webdriver/can_find_elements.py +2 -4
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/protocols/webdriver/can_remember_extension_presence.py +2 -4
- appium_python_client-4.3.0/appium/version.py +1 -0
- appium_python_client-4.3.0/appium/webdriver/appium_connection.py +64 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/appium_service.py +158 -119
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/action_helpers.py +18 -18
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/activities.py +2 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/common.py +7 -10
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/display.py +2 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/gsm.py +10 -19
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/network.py +12 -15
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/performance.py +4 -4
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/power.py +8 -13
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/sms.py +4 -10
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/system_bars.py +2 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/applications.py +22 -22
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/clipboard.py +9 -11
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/context.py +3 -5
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/device_time.py +5 -7
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/execute_driver.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/execute_mobile_command.py +5 -6
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/flutter_integration/flutter_commands.py +1 -1
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/hw_actions.py +24 -26
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/images_comparison.py +2 -6
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/keyboard.py +18 -22
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/location.py +11 -14
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/log_event.py +7 -10
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/remote_fs.py +7 -13
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/screen_record.py +4 -4
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/session.py +1 -3
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/settings.py +7 -10
- appium_python_client-4.3.0/appium/webdriver/locator_converter.py +29 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/switch_to.py +4 -6
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/webdriver.py +35 -105
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/webelement.py +4 -69
- appium_python_client-4.3.0/docs/requirements.txt +2 -0
- appium_python_client-4.3.0/setup.cfg +4 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/setup.py +1 -1
- appium_python_client-4.2.0/Appium_Python_Client.egg-info/requires.txt +0 -1
- appium_python_client-4.2.0/appium/version.py +0 -1
- appium_python_client-4.2.0/appium/webdriver/appium_connection.py +0 -80
- appium_python_client-4.2.0/docs/requirements.txt +0 -2
- appium_python_client-4.2.0/setup.cfg +0 -24
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/Appium_Python_Client.egg-info/dependency_links.txt +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/Appium_Python_Client.egg-info/top_level.txt +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/LICENSE +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/MANIFEST.in +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/common/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/common/exceptions.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/common/helper.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/common/logger.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/adb_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/allow_delay_adb_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/build_tools_version_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/clear_device_logs_on_start_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/ignore_hidden_api_policy_error_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/logcat_filter_specs_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/logcat_format_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/mock_location_app_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/remote_adb_host_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/skip_logcat_capture_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/adb/suppress_kill_server_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/allow_test_packages_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/android_install_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/app_activity_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/app_package_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/app_wait_activity_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/app_wait_for_launch_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/app_wait_package_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/auto_grant_premissions_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/enforce_app_install_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/intent_action_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/intent_category_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/intent_flags_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/optional_intent_arguments_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/remote_apps_cache_limit_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/app/uninstall_other_packages_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/avd/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/avd/avd_args_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/avd/avd_env_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/avd/avd_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/avd/gps_enabled_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/avd/network_speed_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chrome_logging_prefs_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chrome_options_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chromedriver_args_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chromedriver_chrome_mapping_file_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chromedriver_disable_build_check_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chromedriver_executable_dir_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chromedriver_executable_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chromedriver_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chromedriver_ports_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/chromedriver_use_system_executable_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/ensure_webviews_have_pages_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/extract_chrome_android_package_from_context_name_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/native_web_screenshot_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/recreate_chrome_driver_sessions_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/show_chromedriver_log_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/context/webview_devtools_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/localization/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/localization/locale_script_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/locking/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/locking/skip_unlock_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/locking/unlock_key_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/locking/unlock_strategy_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/locking/unlock_success_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/locking/unlock_type_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/mjpeg/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/mjpeg/mjpeg_screenshot_url_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/other/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/other/disable_suppress_accessibility_service_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/other/user_profile_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/signing/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/signing/key_alias_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/signing/key_password_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/signing/keystore_password_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/signing/keystore_path_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/signing/no_sign_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/common/signing/use_keystore_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/activity_options_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/app_locale_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/espresso_server_launch_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/force_espresso_rebuild_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/intent_options_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/espresso/show_gradle_log_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/disable_window_animation_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/mjpeg_server_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/skip_device_initialization_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/skip_server_installation_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/uiautomator2_server_install_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/uiautomator2_server_launch_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/android/uiautomator2/uiautomator2_server_read_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/app_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/auto_web_view_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/automation_name_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/browser_name_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/bundle_id_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/clear_system_files_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/device_name_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/enable_performance_logging_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/event_timings_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/full_reset_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/is_headless_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/language_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/locale_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/new_command_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/no_reset_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/orientation_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/other_apps_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/platform_version_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/postrun_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/prerun_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/print_page_source_on_find_failure_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/skip_log_capture_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/system_host_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/system_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/common/udid_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/flutter_integration/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/flutter_integration/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/flutter_integration/flutter_element_wait_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/flutter_integration/flutter_server_launch_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/flutter_integration/flutter_system_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/gecko/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/gecko/android_storage_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/gecko/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/gecko/firefox_options_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/gecko/marionette_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/gecko/verbosity_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/automatic_inspection_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/automatic_profiling_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/device_name_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/device_type_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/device_udid_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/platform_build_version_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/platform_version_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/use_simulator_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/safari/webkit_webrtc_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/app/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/app/app_install_strategy_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/app/localizable_strings_dir_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/general/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/general/include_device_caps_to_session_info_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/general/reset_location_service_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/other/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/other/command_timeouts_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/other/launch_with_idb_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/other/show_ios_log_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/other/use_json_source_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/calendar_access_authorized_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/calendar_format_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/connect_hardware_keyboard_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/custom_ssl_cert_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/enforce_fresh_simulator_creation_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/force_simulator_software_keyboard_presence_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/ios_simulator_logs_predicate_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/keep_key_chains_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/keychains_exclude_patterns_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/permissions_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/reduce_motion_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/reset_on_session_start_only_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/scale_factor_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/shutdown_other_simulators_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/simulator_devices_set_path_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/simulator_pasteboard_automatic_sync_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/simulator_startup_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/simulator_trace_pointer_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/simulator/simulator_window_center_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/allow_provisioning_device_regitration_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/auto_accept_alerts_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/auto_disimiss_alerts_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/derived_data_path_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/disable_automatic_screenshots_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/force_app_launch_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/keychain_password_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/keychain_path_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/max_typing_frequency_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/mjpeg_server_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/process_arguments_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/result_bundle_path_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/screenshot_quality_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/should_terminate_app_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/should_use_singleton_test_manager_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/show_xcode_log_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/simple_is_visible_check_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/updated_wda_bundle_id_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/use_native_caching_strategy_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/use_new_wda_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/use_prebuilt_wda_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/use_simple_build_test_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/use_xctestrun_file_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wait_for_idle_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wait_for_quiescence_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wda_base_url_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wda_connection_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wda_eventloop_idle_delay_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wda_local_port_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wda_startup_retries_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/wda_startup_retry_interval_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/web_driver_agent_url_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/xcode_org_id_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/wda/xcode_signing_id_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/absolute_web_locations_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/additional_webview_bundle_ids_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/enable_async_execute_from_https_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/full_context_list_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/include_safari_in_webviews_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/native_web_tap_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_garbage_collect_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_ignore_fraud_warning_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_ignore_web_hostnames_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_initial_url_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_log_all_communication_hex_dump_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_log_all_communication_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_open_links_in_background_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_socket_chunk_size_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/safari_web_inspector_max_frame_length_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/webkit_response_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/webview_connect_retries_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/ios/xcuitest/webview/webview_connect_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/app_path_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/arguments_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/bootstrap_root_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/environment_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/server_startup_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/show_server_logs_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/skip_app_kill_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/mac/mac2/web_driver_agent_mac_url_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/windows/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/windows/app_arguments_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/windows/app_top_level_window_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/windows/app_working_dir_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/windows/base.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/windows/create_session_timeout_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/windows/expreimental_web_driver_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/options/windows/windows/wait_for_app_launch_option.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/protocols/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/protocols/webdriver/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/py.typed +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/applicationstate.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/clipboard_content_type.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/command_method.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/common/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/common/appiumby.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/connectiontype.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/errorhandler.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/android/nativekey.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/flutter_integration/__init__.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/flutter_integration/flutter_finder.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/extensions/flutter_integration/scroll_directions.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/appium/webdriver/mobilecommand.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/Makefile +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/README.md +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/conf.py +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/generate.sh +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/index.rst +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/make.bat +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/webdriver.common.rst +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/webdriver.extensions.android.rst +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/webdriver.extensions.rst +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/webdriver.extensions.search_context.rst +0 -0
- {appium_python_client-4.2.0 → appium_python_client-4.3.0}/docs/webdriver.rst +0 -0
{appium_python_client-4.2.0 → appium_python_client-4.3.0}/Appium_Python_Client.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: Appium-Python-Client
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.3.0
|
|
4
4
|
Summary: Python client for Appium
|
|
5
5
|
Home-page: http://appium.io/
|
|
6
6
|
Author: Isaac Murchie
|
|
@@ -25,7 +25,7 @@ Classifier: Topic :: Software Development :: Quality Assurance
|
|
|
25
25
|
Classifier: Topic :: Software Development :: Testing
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
27
|
License-File: LICENSE
|
|
28
|
-
Requires-Dist: selenium
|
|
28
|
+
Requires-Dist: selenium<5.0,~=4.26
|
|
29
29
|
|
|
30
30
|
# Appium Python Client
|
|
31
31
|
|
|
@@ -34,8 +34,6 @@ Requires-Dist: selenium~=4.12
|
|
|
34
34
|
|
|
35
35
|
[](https://github.com/appium/python-client/actions/workflows/functional-test.yml)
|
|
36
36
|
|
|
37
|
-
[](https://github.com/psf/black)
|
|
38
|
-
|
|
39
37
|
An extension library for adding [WebDriver Protocol](https://www.w3.org/TR/webdriver/) and Appium commands to the Selenium Python language binding for use with the mobile testing framework [Appium](https://appium.io).
|
|
40
38
|
|
|
41
39
|
## Getting the Appium Python client
|
|
@@ -72,7 +70,8 @@ download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).
|
|
|
72
70
|
|
|
73
71
|
|Appium Python Client| Selenium binding| Python version |
|
|
74
72
|
|----|----|----|
|
|
75
|
-
|`3.0
|
|
73
|
+
|`4.3.0`+ |`4.26.0`+ | 3.8+ |
|
|
74
|
+
|`3.0.0` - `4.2.1` |`4.12.0` - `4.25.0` | 3.8+ |
|
|
76
75
|
|`2.10.0` - `2.11.1` |`4.1.0` - `4.11.2` | 3.7+ |
|
|
77
76
|
|`2.2.0` - `2.9.0` |`4.1.0` - `4.9.0` | 3.7+ |
|
|
78
77
|
|`2.0.0` - `2.1.4` |`4.0.0` | 3.7+ |
|
|
@@ -266,6 +265,26 @@ def test_android_click(appium_service, android_driver_factory):
|
|
|
266
265
|
el.click()
|
|
267
266
|
```
|
|
268
267
|
|
|
268
|
+
### Available `options`
|
|
269
|
+
|
|
270
|
+
Appium Python Client has a common options class named `AppiumOptions` but the available commands are minimal.
|
|
271
|
+
It does not have driver/automationName specific commands unless adding commands with `add_command` method.
|
|
272
|
+
|
|
273
|
+
Available options for each automation name below will help to check what options are already defined.
|
|
274
|
+
Please use proper options for your automaiton usage.
|
|
275
|
+
|
|
276
|
+
`automationName` | Package path
|
|
277
|
+
|:---|:-----|
|
|
278
|
+
any | `appium.options.common.base.AppiumOptions`
|
|
279
|
+
`uiautomator2` | `appium.options.android.Uiautomator2Options`
|
|
280
|
+
`espresso` | `appium.options.android.EspressoOptions`
|
|
281
|
+
`xcuitest` | `appium.options.ios.XCUITestOptions`
|
|
282
|
+
`safari` | `appium.options.ios.SafariOptions`
|
|
283
|
+
`mac2` | `appium.options.mac.Mac2Options`
|
|
284
|
+
`windows` | `appium.options.WindowsOptions`
|
|
285
|
+
`gecko` | `appium.options.GeckoOptions`
|
|
286
|
+
`flutterintegration` | `appium.options.flutter_integration.FlutterOptions`
|
|
287
|
+
|
|
269
288
|
## Direct Connect URLs
|
|
270
289
|
|
|
271
290
|
If your Selenium/Appium server decorates the new session capabilities response with the following keys:
|
|
@@ -322,6 +341,21 @@ options.set_capability('browser_name', 'safari')
|
|
|
322
341
|
driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
|
|
323
342
|
```
|
|
324
343
|
|
|
344
|
+
Since Appium Python client v4.3.0, we recommend using `selenium.webdriver.remote.client_config.ClientConfig`
|
|
345
|
+
instead of giving `strict_ssl` as an argument of `webdriver.Remote` below to configure the validation.
|
|
346
|
+
|
|
347
|
+
```python
|
|
348
|
+
from appium import webdriver
|
|
349
|
+
|
|
350
|
+
from selenium.webdriver.remote.client_config import ClientConfig
|
|
351
|
+
|
|
352
|
+
client_config = ClientConfig(
|
|
353
|
+
remote_server_addr='http://127.0.0.1:4723',
|
|
354
|
+
ignore_certificates=True
|
|
355
|
+
)
|
|
356
|
+
driver = webdriver.Remote(client_config.remote_server_addr, options=options, client_config=client_config)
|
|
357
|
+
```
|
|
358
|
+
|
|
325
359
|
## Set custom `AppiumConnection`
|
|
326
360
|
|
|
327
361
|
The first argument of `webdriver.Remote` can set an arbitrary command executor for you.
|
|
@@ -375,6 +409,18 @@ driver = webdriver.Remote(custom_executor, options=options)
|
|
|
375
409
|
|
|
376
410
|
```
|
|
377
411
|
|
|
412
|
+
The `AppiumConnection` can set `selenium.webdriver.remote.client_config.ClientConfig` as well.
|
|
413
|
+
|
|
414
|
+
## Relaxing HTTP request read timeout
|
|
415
|
+
|
|
416
|
+
Appium Python Client has `120` seconds read timeout on each HTTP request since the version v4.3.0 because of
|
|
417
|
+
the corresponding selenium binding version.
|
|
418
|
+
You have two methods to extend the read timeout.
|
|
419
|
+
|
|
420
|
+
1. Set `GLOBAL_DEFAULT_TIMEOUT` environment variable
|
|
421
|
+
2. Configure timeout via `selenium.webdriver.remote.client_config.ClientConfig`
|
|
422
|
+
- `timeout` argument, or
|
|
423
|
+
- `init_args_for_pool_manager` argument for `urllib3.PoolManager`
|
|
378
424
|
|
|
379
425
|
## Documentation
|
|
380
426
|
|
|
@@ -384,7 +430,7 @@ driver = webdriver.Remote(custom_executor, options=options)
|
|
|
384
430
|
## Development
|
|
385
431
|
|
|
386
432
|
- Code Style: [PEP-0008](https://www.python.org/dev/peps/pep-0008/)
|
|
387
|
-
- Apply `
|
|
433
|
+
- Apply `ruff` as pre commit hook
|
|
388
434
|
- Run `make` command for development. See `make help` output for details
|
|
389
435
|
- Docstring style: [Google Style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
|
|
390
436
|
- `gitchangelog` generates `CHANGELOG.rst`
|
{appium_python_client-4.2.0 → appium_python_client-4.3.0}/Appium_Python_Client.egg-info/SOURCES.txt
RENAMED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
LICENSE
|
|
2
2
|
MANIFEST.in
|
|
3
3
|
README.md
|
|
4
|
-
setup.cfg
|
|
5
4
|
setup.py
|
|
6
5
|
Appium_Python_Client.egg-info/PKG-INFO
|
|
7
6
|
Appium_Python_Client.egg-info/SOURCES.txt
|
|
@@ -287,6 +286,7 @@ appium/webdriver/clipboard_content_type.py
|
|
|
287
286
|
appium/webdriver/command_method.py
|
|
288
287
|
appium/webdriver/connectiontype.py
|
|
289
288
|
appium/webdriver/errorhandler.py
|
|
289
|
+
appium/webdriver/locator_converter.py
|
|
290
290
|
appium/webdriver/mobilecommand.py
|
|
291
291
|
appium/webdriver/switch_to.py
|
|
292
292
|
appium/webdriver/webdriver.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
selenium<5.0,~=4.26
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: Appium-Python-Client
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.3.0
|
|
4
4
|
Summary: Python client for Appium
|
|
5
5
|
Home-page: http://appium.io/
|
|
6
6
|
Author: Isaac Murchie
|
|
@@ -25,7 +25,7 @@ Classifier: Topic :: Software Development :: Quality Assurance
|
|
|
25
25
|
Classifier: Topic :: Software Development :: Testing
|
|
26
26
|
Description-Content-Type: text/markdown
|
|
27
27
|
License-File: LICENSE
|
|
28
|
-
Requires-Dist: selenium
|
|
28
|
+
Requires-Dist: selenium<5.0,~=4.26
|
|
29
29
|
|
|
30
30
|
# Appium Python Client
|
|
31
31
|
|
|
@@ -34,8 +34,6 @@ Requires-Dist: selenium~=4.12
|
|
|
34
34
|
|
|
35
35
|
[](https://github.com/appium/python-client/actions/workflows/functional-test.yml)
|
|
36
36
|
|
|
37
|
-
[](https://github.com/psf/black)
|
|
38
|
-
|
|
39
37
|
An extension library for adding [WebDriver Protocol](https://www.w3.org/TR/webdriver/) and Appium commands to the Selenium Python language binding for use with the mobile testing framework [Appium](https://appium.io).
|
|
40
38
|
|
|
41
39
|
## Getting the Appium Python client
|
|
@@ -72,7 +70,8 @@ download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).
|
|
|
72
70
|
|
|
73
71
|
|Appium Python Client| Selenium binding| Python version |
|
|
74
72
|
|----|----|----|
|
|
75
|
-
|`3.0
|
|
73
|
+
|`4.3.0`+ |`4.26.0`+ | 3.8+ |
|
|
74
|
+
|`3.0.0` - `4.2.1` |`4.12.0` - `4.25.0` | 3.8+ |
|
|
76
75
|
|`2.10.0` - `2.11.1` |`4.1.0` - `4.11.2` | 3.7+ |
|
|
77
76
|
|`2.2.0` - `2.9.0` |`4.1.0` - `4.9.0` | 3.7+ |
|
|
78
77
|
|`2.0.0` - `2.1.4` |`4.0.0` | 3.7+ |
|
|
@@ -266,6 +265,26 @@ def test_android_click(appium_service, android_driver_factory):
|
|
|
266
265
|
el.click()
|
|
267
266
|
```
|
|
268
267
|
|
|
268
|
+
### Available `options`
|
|
269
|
+
|
|
270
|
+
Appium Python Client has a common options class named `AppiumOptions` but the available commands are minimal.
|
|
271
|
+
It does not have driver/automationName specific commands unless adding commands with `add_command` method.
|
|
272
|
+
|
|
273
|
+
Available options for each automation name below will help to check what options are already defined.
|
|
274
|
+
Please use proper options for your automaiton usage.
|
|
275
|
+
|
|
276
|
+
`automationName` | Package path
|
|
277
|
+
|:---|:-----|
|
|
278
|
+
any | `appium.options.common.base.AppiumOptions`
|
|
279
|
+
`uiautomator2` | `appium.options.android.Uiautomator2Options`
|
|
280
|
+
`espresso` | `appium.options.android.EspressoOptions`
|
|
281
|
+
`xcuitest` | `appium.options.ios.XCUITestOptions`
|
|
282
|
+
`safari` | `appium.options.ios.SafariOptions`
|
|
283
|
+
`mac2` | `appium.options.mac.Mac2Options`
|
|
284
|
+
`windows` | `appium.options.WindowsOptions`
|
|
285
|
+
`gecko` | `appium.options.GeckoOptions`
|
|
286
|
+
`flutterintegration` | `appium.options.flutter_integration.FlutterOptions`
|
|
287
|
+
|
|
269
288
|
## Direct Connect URLs
|
|
270
289
|
|
|
271
290
|
If your Selenium/Appium server decorates the new session capabilities response with the following keys:
|
|
@@ -322,6 +341,21 @@ options.set_capability('browser_name', 'safari')
|
|
|
322
341
|
driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
|
|
323
342
|
```
|
|
324
343
|
|
|
344
|
+
Since Appium Python client v4.3.0, we recommend using `selenium.webdriver.remote.client_config.ClientConfig`
|
|
345
|
+
instead of giving `strict_ssl` as an argument of `webdriver.Remote` below to configure the validation.
|
|
346
|
+
|
|
347
|
+
```python
|
|
348
|
+
from appium import webdriver
|
|
349
|
+
|
|
350
|
+
from selenium.webdriver.remote.client_config import ClientConfig
|
|
351
|
+
|
|
352
|
+
client_config = ClientConfig(
|
|
353
|
+
remote_server_addr='http://127.0.0.1:4723',
|
|
354
|
+
ignore_certificates=True
|
|
355
|
+
)
|
|
356
|
+
driver = webdriver.Remote(client_config.remote_server_addr, options=options, client_config=client_config)
|
|
357
|
+
```
|
|
358
|
+
|
|
325
359
|
## Set custom `AppiumConnection`
|
|
326
360
|
|
|
327
361
|
The first argument of `webdriver.Remote` can set an arbitrary command executor for you.
|
|
@@ -375,6 +409,18 @@ driver = webdriver.Remote(custom_executor, options=options)
|
|
|
375
409
|
|
|
376
410
|
```
|
|
377
411
|
|
|
412
|
+
The `AppiumConnection` can set `selenium.webdriver.remote.client_config.ClientConfig` as well.
|
|
413
|
+
|
|
414
|
+
## Relaxing HTTP request read timeout
|
|
415
|
+
|
|
416
|
+
Appium Python Client has `120` seconds read timeout on each HTTP request since the version v4.3.0 because of
|
|
417
|
+
the corresponding selenium binding version.
|
|
418
|
+
You have two methods to extend the read timeout.
|
|
419
|
+
|
|
420
|
+
1. Set `GLOBAL_DEFAULT_TIMEOUT` environment variable
|
|
421
|
+
2. Configure timeout via `selenium.webdriver.remote.client_config.ClientConfig`
|
|
422
|
+
- `timeout` argument, or
|
|
423
|
+
- `init_args_for_pool_manager` argument for `urllib3.PoolManager`
|
|
378
424
|
|
|
379
425
|
## Documentation
|
|
380
426
|
|
|
@@ -384,7 +430,7 @@ driver = webdriver.Remote(custom_executor, options=options)
|
|
|
384
430
|
## Development
|
|
385
431
|
|
|
386
432
|
- Code Style: [PEP-0008](https://www.python.org/dev/peps/pep-0008/)
|
|
387
|
-
- Apply `
|
|
433
|
+
- Apply `ruff` as pre commit hook
|
|
388
434
|
- Run `make` command for development. See `make help` output for details
|
|
389
435
|
- Docstring style: [Google Style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
|
|
390
436
|
- `gitchangelog` generates `CHANGELOG.rst`
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
[](https://github.com/appium/python-client/actions/workflows/functional-test.yml)
|
|
7
7
|
|
|
8
|
-
[](https://github.com/psf/black)
|
|
9
|
-
|
|
10
8
|
An extension library for adding [WebDriver Protocol](https://www.w3.org/TR/webdriver/) and Appium commands to the Selenium Python language binding for use with the mobile testing framework [Appium](https://appium.io).
|
|
11
9
|
|
|
12
10
|
## Getting the Appium Python client
|
|
@@ -43,7 +41,8 @@ download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).
|
|
|
43
41
|
|
|
44
42
|
|Appium Python Client| Selenium binding| Python version |
|
|
45
43
|
|----|----|----|
|
|
46
|
-
|`3.0
|
|
44
|
+
|`4.3.0`+ |`4.26.0`+ | 3.8+ |
|
|
45
|
+
|`3.0.0` - `4.2.1` |`4.12.0` - `4.25.0` | 3.8+ |
|
|
47
46
|
|`2.10.0` - `2.11.1` |`4.1.0` - `4.11.2` | 3.7+ |
|
|
48
47
|
|`2.2.0` - `2.9.0` |`4.1.0` - `4.9.0` | 3.7+ |
|
|
49
48
|
|`2.0.0` - `2.1.4` |`4.0.0` | 3.7+ |
|
|
@@ -237,6 +236,26 @@ def test_android_click(appium_service, android_driver_factory):
|
|
|
237
236
|
el.click()
|
|
238
237
|
```
|
|
239
238
|
|
|
239
|
+
### Available `options`
|
|
240
|
+
|
|
241
|
+
Appium Python Client has a common options class named `AppiumOptions` but the available commands are minimal.
|
|
242
|
+
It does not have driver/automationName specific commands unless adding commands with `add_command` method.
|
|
243
|
+
|
|
244
|
+
Available options for each automation name below will help to check what options are already defined.
|
|
245
|
+
Please use proper options for your automaiton usage.
|
|
246
|
+
|
|
247
|
+
`automationName` | Package path
|
|
248
|
+
|:---|:-----|
|
|
249
|
+
any | `appium.options.common.base.AppiumOptions`
|
|
250
|
+
`uiautomator2` | `appium.options.android.Uiautomator2Options`
|
|
251
|
+
`espresso` | `appium.options.android.EspressoOptions`
|
|
252
|
+
`xcuitest` | `appium.options.ios.XCUITestOptions`
|
|
253
|
+
`safari` | `appium.options.ios.SafariOptions`
|
|
254
|
+
`mac2` | `appium.options.mac.Mac2Options`
|
|
255
|
+
`windows` | `appium.options.WindowsOptions`
|
|
256
|
+
`gecko` | `appium.options.GeckoOptions`
|
|
257
|
+
`flutterintegration` | `appium.options.flutter_integration.FlutterOptions`
|
|
258
|
+
|
|
240
259
|
## Direct Connect URLs
|
|
241
260
|
|
|
242
261
|
If your Selenium/Appium server decorates the new session capabilities response with the following keys:
|
|
@@ -293,6 +312,21 @@ options.set_capability('browser_name', 'safari')
|
|
|
293
312
|
driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
|
|
294
313
|
```
|
|
295
314
|
|
|
315
|
+
Since Appium Python client v4.3.0, we recommend using `selenium.webdriver.remote.client_config.ClientConfig`
|
|
316
|
+
instead of giving `strict_ssl` as an argument of `webdriver.Remote` below to configure the validation.
|
|
317
|
+
|
|
318
|
+
```python
|
|
319
|
+
from appium import webdriver
|
|
320
|
+
|
|
321
|
+
from selenium.webdriver.remote.client_config import ClientConfig
|
|
322
|
+
|
|
323
|
+
client_config = ClientConfig(
|
|
324
|
+
remote_server_addr='http://127.0.0.1:4723',
|
|
325
|
+
ignore_certificates=True
|
|
326
|
+
)
|
|
327
|
+
driver = webdriver.Remote(client_config.remote_server_addr, options=options, client_config=client_config)
|
|
328
|
+
```
|
|
329
|
+
|
|
296
330
|
## Set custom `AppiumConnection`
|
|
297
331
|
|
|
298
332
|
The first argument of `webdriver.Remote` can set an arbitrary command executor for you.
|
|
@@ -346,6 +380,18 @@ driver = webdriver.Remote(custom_executor, options=options)
|
|
|
346
380
|
|
|
347
381
|
```
|
|
348
382
|
|
|
383
|
+
The `AppiumConnection` can set `selenium.webdriver.remote.client_config.ClientConfig` as well.
|
|
384
|
+
|
|
385
|
+
## Relaxing HTTP request read timeout
|
|
386
|
+
|
|
387
|
+
Appium Python Client has `120` seconds read timeout on each HTTP request since the version v4.3.0 because of
|
|
388
|
+
the corresponding selenium binding version.
|
|
389
|
+
You have two methods to extend the read timeout.
|
|
390
|
+
|
|
391
|
+
1. Set `GLOBAL_DEFAULT_TIMEOUT` environment variable
|
|
392
|
+
2. Configure timeout via `selenium.webdriver.remote.client_config.ClientConfig`
|
|
393
|
+
- `timeout` argument, or
|
|
394
|
+
- `init_args_for_pool_manager` argument for `urllib3.PoolManager`
|
|
349
395
|
|
|
350
396
|
## Documentation
|
|
351
397
|
|
|
@@ -355,7 +401,7 @@ driver = webdriver.Remote(custom_executor, options=options)
|
|
|
355
401
|
## Development
|
|
356
402
|
|
|
357
403
|
- Code Style: [PEP-0008](https://www.python.org/dev/peps/pep-0008/)
|
|
358
|
-
- Apply `
|
|
404
|
+
- Apply `ruff` as pre commit hook
|
|
359
405
|
- Run `make` command for development. See `make help` output for details
|
|
360
406
|
- Docstring style: [Google Style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
|
|
361
407
|
- `gitchangelog` generates `CHANGELOG.rst`
|
|
@@ -38,6 +38,4 @@ class AdbExecTimeoutOption(SupportsCapabilities):
|
|
|
38
38
|
Maximum time to wait until single ADB command is executed.
|
|
39
39
|
20000 ms by default.
|
|
40
40
|
"""
|
|
41
|
-
self.set_capability(
|
|
42
|
-
ADB_EXEC_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value
|
|
43
|
-
)
|
|
41
|
+
self.set_capability(ADB_EXEC_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value)
|
|
@@ -38,6 +38,4 @@ class AppWaitDurationOption(SupportsCapabilities):
|
|
|
38
38
|
Maximum amount of time to wait until the application under test is started
|
|
39
39
|
(e.g. an activity returns the control to the caller). 20000 ms by default.
|
|
40
40
|
"""
|
|
41
|
-
self.set_capability(
|
|
42
|
-
APP_WAIT_DURATION, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value
|
|
43
|
-
)
|
|
41
|
+
self.set_capability(APP_WAIT_DURATION, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value)
|
|
@@ -38,6 +38,4 @@ class AvdLaunchTimeoutOption(SupportsCapabilities):
|
|
|
38
38
|
Maximum timeout to wait until Android Emulator is started.
|
|
39
39
|
60000 ms by default.
|
|
40
40
|
"""
|
|
41
|
-
self.set_capability(
|
|
42
|
-
AVD_LAUNCH_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value
|
|
43
|
-
)
|
|
41
|
+
self.set_capability(AVD_LAUNCH_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value)
|
|
@@ -38,6 +38,4 @@ class AvdReadyTimeoutOption(SupportsCapabilities):
|
|
|
38
38
|
Maximum timeout to wait until Android Emulator is fully booted and is ready for usage.
|
|
39
39
|
60000 ms by default
|
|
40
40
|
"""
|
|
41
|
-
self.set_capability(
|
|
42
|
-
AVD_READY_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value
|
|
43
|
-
)
|
|
41
|
+
self.set_capability(AVD_READY_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value)
|
|
@@ -38,6 +38,4 @@ class AutoWebviewTimeoutOption(SupportsCapabilities):
|
|
|
38
38
|
"""
|
|
39
39
|
Timeout to wait until a web view is available.
|
|
40
40
|
"""
|
|
41
|
-
self.set_capability(
|
|
42
|
-
AUTO_WEBVIEW_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value
|
|
43
|
-
)
|
|
41
|
+
self.set_capability(AUTO_WEBVIEW_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value)
|
|
@@ -43,6 +43,4 @@ class EspressoBuildConfigOption(SupportsCapabilities):
|
|
|
43
43
|
https://github.com/appium/appium-espresso-driver#espresso-build-config
|
|
44
44
|
for more information on how to properly construct such config.
|
|
45
45
|
"""
|
|
46
|
-
self.set_capability(
|
|
47
|
-
ESPRESSO_BUILD_CONFIG, value if isinstance(value, str) else json.dumps(value, ensure_ascii=False)
|
|
48
|
-
)
|
|
46
|
+
self.set_capability(ESPRESSO_BUILD_CONFIG, value if isinstance(value, str) else json.dumps(value, ensure_ascii=False))
|
|
@@ -21,8 +21,6 @@ T = TypeVar('T')
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class SupportsCapabilities(Protocol):
|
|
24
|
-
def set_capability(self: T, name: str, value: Any) -> T:
|
|
25
|
-
...
|
|
24
|
+
def set_capability(self: T, name: str, value: Any) -> T: ...
|
|
26
25
|
|
|
27
|
-
def get_capability(self: T, name: str) -> Any:
|
|
28
|
-
...
|
|
26
|
+
def get_capability(self: T, name: str) -> Any: ...
|
|
@@ -39,6 +39,4 @@ class AppPushTimeoutOption(SupportsCapabilities):
|
|
|
39
39
|
Works for real devices only.
|
|
40
40
|
The default value is 30000ms.
|
|
41
41
|
"""
|
|
42
|
-
self.set_capability(
|
|
43
|
-
APP_PUSH_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value
|
|
44
|
-
)
|
|
42
|
+
self.set_capability(APP_PUSH_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value)
|
|
@@ -38,6 +38,4 @@ class WdaLaunchTimeoutOption(SupportsCapabilities):
|
|
|
38
38
|
Timeout to wait for WebDriverAgent to be pingable,
|
|
39
39
|
after its building is finished. Defaults to 60000ms.
|
|
40
40
|
"""
|
|
41
|
-
self.set_capability(
|
|
42
|
-
WDA_LAUNCH_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value
|
|
43
|
-
)
|
|
41
|
+
self.set_capability(WDA_LAUNCH_TIMEOUT, int(value.total_seconds() * 1000) if isinstance(value, timedelta) else value)
|
|
@@ -20,5 +20,4 @@ from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
|
20
20
|
class CanExecuteCommands(Protocol):
|
|
21
21
|
command_executor: RemoteConnection
|
|
22
22
|
|
|
23
|
-
def execute(self, driver_command: str, params: Union[Dict, None] = None) -> Dict:
|
|
24
|
-
...
|
|
23
|
+
def execute(self, driver_command: str, params: Union[Dict, None] = None) -> Dict: ...
|
|
@@ -16,17 +16,12 @@ from typing import Any, List, Optional, Protocol
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class CanExecuteScripts(Protocol):
|
|
19
|
-
def pin_script(self, script: str, script_key: Optional[Any] = None) -> Any:
|
|
20
|
-
...
|
|
19
|
+
def pin_script(self, script: str, script_key: Optional[Any] = None) -> Any: ...
|
|
21
20
|
|
|
22
|
-
def unpin(self, script_key: Any) -> None:
|
|
23
|
-
...
|
|
21
|
+
def unpin(self, script_key: Any) -> None: ...
|
|
24
22
|
|
|
25
|
-
def get_pinned_scripts(self) -> List[str]:
|
|
26
|
-
...
|
|
23
|
+
def get_pinned_scripts(self) -> List[str]: ...
|
|
27
24
|
|
|
28
|
-
def execute_script(self, script: str, *args: Any) -> Any:
|
|
29
|
-
...
|
|
25
|
+
def execute_script(self, script: str, *args: Any) -> Any: ...
|
|
30
26
|
|
|
31
|
-
def execute_async_script(self, script: str, *args: Any) -> Any:
|
|
32
|
-
...
|
|
27
|
+
def execute_async_script(self, script: str, *args: Any) -> Any: ...
|
|
@@ -19,8 +19,6 @@ if TYPE_CHECKING:
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class CanFindElements(Protocol):
|
|
22
|
-
def find_element(self, by: str, value: Union[str, Dict, None] = None) -> 'WebElement':
|
|
23
|
-
...
|
|
22
|
+
def find_element(self, by: str, value: Union[str, Dict, None] = None) -> 'WebElement': ...
|
|
24
23
|
|
|
25
|
-
def find_elements(self, by: str, value: Union[str, Dict, None] = None) -> List['WebElement']:
|
|
26
|
-
...
|
|
24
|
+
def find_elements(self, by: str, value: Union[str, Dict, None] = None) -> List['WebElement']: ...
|
|
@@ -18,8 +18,6 @@ T = TypeVar('T')
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
class CanRememberExtensionPresence(Protocol):
|
|
21
|
-
def assert_extension_exists(self: T, ext_name: str) -> T:
|
|
22
|
-
...
|
|
21
|
+
def assert_extension_exists(self: T, ext_name: str) -> T: ...
|
|
23
22
|
|
|
24
|
-
def mark_extension_absence(self: T, ext_name: str) -> T:
|
|
25
|
-
...
|
|
23
|
+
def mark_extension_absence(self: T, ext_name: str) -> T: ...
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = '4.3.0'
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
import uuid
|
|
16
|
+
from typing import TYPE_CHECKING, Any, Dict
|
|
17
|
+
|
|
18
|
+
from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
19
|
+
|
|
20
|
+
from appium.common.helper import library_version
|
|
21
|
+
|
|
22
|
+
if TYPE_CHECKING:
|
|
23
|
+
from urllib.parse import ParseResult
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
PREFIX_HEADER = 'appium/'
|
|
27
|
+
|
|
28
|
+
HEADER_IDEMOTENCY_KEY = 'X-Idempotency-Key'
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def _get_new_headers(key: str, headers: Dict[str, str]) -> Dict[str, str]:
|
|
32
|
+
"""Return a new dictionary of heafers without the given key.
|
|
33
|
+
The key match is case-insensitive."""
|
|
34
|
+
lower_key = key.lower()
|
|
35
|
+
return {k: v for k, v in headers.items() if k.lower() != lower_key}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class AppiumConnection(RemoteConnection):
|
|
39
|
+
"""
|
|
40
|
+
A subclass of selenium.webdriver.remote.remote_connection.Remoteconnection.
|
|
41
|
+
|
|
42
|
+
The changes are:
|
|
43
|
+
- The default user agent
|
|
44
|
+
- Adds 'X-Idempotency-Key' header in a new session request to avoid proceeding
|
|
45
|
+
the same request multiple times in the Appium server side.
|
|
46
|
+
- https://github.com/appium/appium-base-driver/pull/400
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
user_agent = f'{PREFIX_HEADER}{library_version()} ({RemoteConnection.user_agent})'
|
|
50
|
+
extra_headers = {}
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def get_remote_connection_headers(cls, parsed_url: 'ParseResult', keep_alive: bool = True) -> Dict[str, Any]:
|
|
54
|
+
"""Override get_remote_connection_headers in RemoteConnection to control the extra headers.
|
|
55
|
+
This method will be used in sending a request method in this class.
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
if parsed_url.path.endswith('/session'):
|
|
59
|
+
# https://github.com/appium/appium-base-driver/pull/400
|
|
60
|
+
cls.extra_headers[HEADER_IDEMOTENCY_KEY] = str(uuid.uuid4())
|
|
61
|
+
else:
|
|
62
|
+
cls.extra_headers = _get_new_headers(HEADER_IDEMOTENCY_KEY, cls.extra_headers)
|
|
63
|
+
|
|
64
|
+
return {**super().get_remote_connection_headers(parsed_url, keep_alive=keep_alive), **cls.extra_headers}
|