Appium-Python-Client 2.10.1__tar.gz → 2.11.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.
Files changed (402) hide show
  1. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/Appium_Python_Client.egg-info/PKG-INFO +117 -35
  2. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/PKG-INFO +117 -35
  3. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/README.md +114 -34
  4. Appium-Python-Client-2.11.0/appium/version.py +1 -0
  5. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/appium_connection.py +5 -1
  6. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/mobilecommand.py +0 -1
  7. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/webdriver.py +25 -7
  8. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/webelement.py +0 -12
  9. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/setup.py +2 -0
  10. Appium-Python-Client-2.10.1/appium/version.py +0 -1
  11. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/Appium_Python_Client.egg-info/SOURCES.txt +0 -0
  12. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/Appium_Python_Client.egg-info/dependency_links.txt +0 -0
  13. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/Appium_Python_Client.egg-info/requires.txt +0 -0
  14. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/Appium_Python_Client.egg-info/top_level.txt +0 -0
  15. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/LICENSE +0 -0
  16. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/MANIFEST.in +0 -0
  17. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/__init__.py +0 -0
  18. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/common/__init__.py +0 -0
  19. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/common/exceptions.py +0 -0
  20. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/common/helper.py +0 -0
  21. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/common/logger.py +0 -0
  22. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/__init__.py +0 -0
  23. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/__init__.py +0 -0
  24. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/__init__.py +0 -0
  25. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/__init__.py +0 -0
  26. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/adb_exec_timeout_option.py +0 -0
  27. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/adb_port_option.py +0 -0
  28. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/allow_delay_adb_option.py +0 -0
  29. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/build_tools_version_option.py +0 -0
  30. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/clear_device_logs_on_start_option.py +0 -0
  31. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/ignore_hidden_api_policy_error_option.py +0 -0
  32. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/logcat_filter_specs_option.py +0 -0
  33. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/logcat_format_option.py +0 -0
  34. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/mock_location_app_option.py +0 -0
  35. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/remote_adb_host_option.py +0 -0
  36. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/skip_logcat_capture_option.py +0 -0
  37. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/adb/suppress_kill_server_option.py +0 -0
  38. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/__init__.py +0 -0
  39. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/allow_test_packages_option.py +0 -0
  40. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/android_install_timeout_option.py +0 -0
  41. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/app_activity_option.py +0 -0
  42. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/app_package_option.py +0 -0
  43. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/app_wait_activity_option.py +0 -0
  44. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/app_wait_duration_option.py +0 -0
  45. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/app_wait_for_launch_option.py +0 -0
  46. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/app_wait_package_option.py +0 -0
  47. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/auto_grant_premissions_option.py +0 -0
  48. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/enforce_app_install_option.py +0 -0
  49. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/intent_action_option.py +0 -0
  50. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/intent_category_option.py +0 -0
  51. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/intent_flags_option.py +0 -0
  52. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/optional_intent_arguments_option.py +0 -0
  53. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/remote_apps_cache_limit_option.py +0 -0
  54. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/app/uninstall_other_packages_option.py +0 -0
  55. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/avd/__init__.py +0 -0
  56. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/avd/avd_args_option.py +0 -0
  57. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/avd/avd_env_option.py +0 -0
  58. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/avd/avd_launch_timeout_option.py +0 -0
  59. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/avd/avd_option.py +0 -0
  60. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/avd/avd_ready_timeout_option.py +0 -0
  61. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/avd/gps_enabled_option.py +0 -0
  62. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/avd/network_speed_option.py +0 -0
  63. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/__init__.py +0 -0
  64. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/auto_webview_timeout_option.py +0 -0
  65. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chrome_logging_prefs_option.py +0 -0
  66. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chrome_options_option.py +0 -0
  67. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chromedriver_args_option.py +0 -0
  68. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chromedriver_chrome_mapping_file_option.py +0 -0
  69. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chromedriver_disable_build_check_option.py +0 -0
  70. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chromedriver_executable_dir_option.py +0 -0
  71. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chromedriver_executable_option.py +0 -0
  72. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chromedriver_port_option.py +0 -0
  73. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chromedriver_ports_option.py +0 -0
  74. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/chromedriver_use_system_executable_option.py +0 -0
  75. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/ensure_webviews_have_pages_option.py +0 -0
  76. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/extract_chrome_android_package_from_context_name_option.py +0 -0
  77. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/native_web_screenshot_option.py +0 -0
  78. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/recreate_chrome_driver_sessions_option.py +0 -0
  79. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/show_chromedriver_log_option.py +0 -0
  80. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/context/webview_devtools_port_option.py +0 -0
  81. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/localization/__init__.py +0 -0
  82. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/localization/locale_script_option.py +0 -0
  83. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/locking/__init__.py +0 -0
  84. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/locking/skip_unlock_option.py +0 -0
  85. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/locking/unlock_key_option.py +0 -0
  86. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/locking/unlock_strategy_option.py +0 -0
  87. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/locking/unlock_success_timeout_option.py +0 -0
  88. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/locking/unlock_type_option.py +0 -0
  89. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/mjpeg/__init__.py +0 -0
  90. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/mjpeg/mjpeg_screenshot_url_option.py +0 -0
  91. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/other/__init__.py +0 -0
  92. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/other/disable_suppress_accessibility_service_option.py +0 -0
  93. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/other/user_profile_option.py +0 -0
  94. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/signing/__init__.py +0 -0
  95. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/signing/key_alias_option.py +0 -0
  96. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/signing/key_password_option.py +0 -0
  97. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/signing/keystore_password_option.py +0 -0
  98. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/signing/keystore_path_option.py +0 -0
  99. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/signing/no_sign_option.py +0 -0
  100. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/common/signing/use_keystore_option.py +0 -0
  101. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/__init__.py +0 -0
  102. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/activity_options_option.py +0 -0
  103. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/app_locale_option.py +0 -0
  104. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/base.py +0 -0
  105. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/espresso_build_config_option.py +0 -0
  106. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/espresso_server_launch_timeout_option.py +0 -0
  107. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/force_espresso_rebuild_option.py +0 -0
  108. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/intent_options_option.py +0 -0
  109. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/espresso/show_gradle_log_option.py +0 -0
  110. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/__init__.py +0 -0
  111. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/base.py +0 -0
  112. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/disable_window_animation_option.py +0 -0
  113. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/mjpeg_server_port_option.py +0 -0
  114. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/skip_device_initialization_option.py +0 -0
  115. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/skip_server_installation_option.py +0 -0
  116. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/uiautomator2_server_install_timeout_option.py +0 -0
  117. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/uiautomator2_server_launch_timeout_option.py +0 -0
  118. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/android/uiautomator2/uiautomator2_server_read_timeout_option.py +0 -0
  119. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/__init__.py +0 -0
  120. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/app_option.py +0 -0
  121. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/auto_web_view_option.py +0 -0
  122. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/automation_name_option.py +0 -0
  123. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/base.py +0 -0
  124. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/bundle_id_option.py +0 -0
  125. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/clear_system_files_option.py +0 -0
  126. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/device_name_option.py +0 -0
  127. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/enable_performance_logging_option.py +0 -0
  128. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/event_timings_option.py +0 -0
  129. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/full_reset_option.py +0 -0
  130. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/is_headless_option.py +0 -0
  131. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/language_option.py +0 -0
  132. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/locale_option.py +0 -0
  133. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/new_command_timeout_option.py +0 -0
  134. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/no_reset_option.py +0 -0
  135. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/orientation_option.py +0 -0
  136. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/other_apps_option.py +0 -0
  137. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/postrun_option.py +0 -0
  138. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/prerun_option.py +0 -0
  139. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/print_page_source_on_find_failure_option.py +0 -0
  140. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/skip_log_capture_option.py +0 -0
  141. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/supports_capabilities.py +0 -0
  142. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/system_host_option.py +0 -0
  143. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/system_port_option.py +0 -0
  144. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/common/udid_option.py +0 -0
  145. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/gecko/__init__.py +0 -0
  146. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/gecko/android_storage_option.py +0 -0
  147. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/gecko/base.py +0 -0
  148. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/gecko/firefox_options_option.py +0 -0
  149. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/gecko/marionette_port_option.py +0 -0
  150. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/gecko/verbosity_option.py +0 -0
  151. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/__init__.py +0 -0
  152. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/__init__.py +0 -0
  153. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/automatic_inspection_option.py +0 -0
  154. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/automatic_profiling_option.py +0 -0
  155. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/base.py +0 -0
  156. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/device_name_option.py +0 -0
  157. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/device_type_option.py +0 -0
  158. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/device_udid_option.py +0 -0
  159. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/platform_build_version_option.py +0 -0
  160. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/platform_version_option.py +0 -0
  161. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/use_simulator_option.py +0 -0
  162. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/safari/webkit_webrtc_option.py +0 -0
  163. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/__init__.py +0 -0
  164. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/app/__init__.py +0 -0
  165. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/app/app_install_strategy_option.py +0 -0
  166. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/app/app_push_timeout_option.py +0 -0
  167. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/app/localizable_strings_dir_option.py +0 -0
  168. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/base.py +0 -0
  169. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/general/__init__.py +0 -0
  170. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/general/include_device_caps_to_session_info_option.py +0 -0
  171. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/general/reset_location_service_option.py +0 -0
  172. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/other/__init__.py +0 -0
  173. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/other/command_timeouts_option.py +0 -0
  174. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/other/launch_with_idb_option.py +0 -0
  175. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/other/show_ios_log_option.py +0 -0
  176. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/other/use_json_source_option.py +0 -0
  177. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/__init__.py +0 -0
  178. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/calendar_access_authorized_option.py +0 -0
  179. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/calendar_format_option.py +0 -0
  180. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/connect_hardware_keyboard_option.py +0 -0
  181. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/custom_ssl_cert_option.py +0 -0
  182. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/enforce_fresh_simulator_creation_option.py +0 -0
  183. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/force_simulator_software_keyboard_presence_option.py +0 -0
  184. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/ios_simulator_logs_predicate_option.py +0 -0
  185. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/keep_key_chains_option.py +0 -0
  186. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/keychains_exclude_patterns_option.py +0 -0
  187. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/permissions_option.py +0 -0
  188. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/reduce_motion_option.py +0 -0
  189. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/reset_on_session_start_only_option.py +0 -0
  190. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/scale_factor_option.py +0 -0
  191. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/shutdown_other_simulators_option.py +0 -0
  192. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/simulator_devices_set_path_option.py +0 -0
  193. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/simulator_pasteboard_automatic_sync_option.py +0 -0
  194. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/simulator_startup_timeout_option.py +0 -0
  195. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/simulator_trace_pointer_option.py +0 -0
  196. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/simulator/simulator_window_center_option.py +0 -0
  197. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/__init__.py +0 -0
  198. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/allow_provisioning_device_regitration_option.py +0 -0
  199. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/auto_accept_alerts_option.py +0 -0
  200. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/auto_disimiss_alerts_option.py +0 -0
  201. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/derived_data_path_option.py +0 -0
  202. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/disable_automatic_screenshots_option.py +0 -0
  203. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/force_app_launch_option.py +0 -0
  204. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/keychain_password_option.py +0 -0
  205. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/keychain_path_option.py +0 -0
  206. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/max_typing_frequency_option.py +0 -0
  207. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/mjpeg_server_port_option.py +0 -0
  208. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/process_arguments_option.py +0 -0
  209. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/result_bundle_path_option.py +0 -0
  210. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/screenshot_quality_option.py +0 -0
  211. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/should_terminate_app_option.py +0 -0
  212. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/should_use_singleton_test_manager_option.py +0 -0
  213. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/show_xcode_log_option.py +0 -0
  214. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/simple_is_visible_check_option.py +0 -0
  215. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/updated_wda_bundle_id_option.py +0 -0
  216. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/use_native_caching_strategy_option.py +0 -0
  217. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/use_new_wda_option.py +0 -0
  218. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/use_prebuilt_wda_option.py +0 -0
  219. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/use_simple_build_test_option.py +0 -0
  220. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/use_xctestrun_file_option.py +0 -0
  221. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wait_for_idle_timeout_option.py +0 -0
  222. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wait_for_quiescence_option.py +0 -0
  223. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wda_base_url_option.py +0 -0
  224. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wda_connection_timeout_option.py +0 -0
  225. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wda_eventloop_idle_delay_option.py +0 -0
  226. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wda_launch_timeout_option.py +0 -0
  227. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wda_local_port_option.py +0 -0
  228. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wda_startup_retries_option.py +0 -0
  229. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/wda_startup_retry_interval_option.py +0 -0
  230. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/web_driver_agent_url_option.py +0 -0
  231. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/xcode_org_id_option.py +0 -0
  232. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/wda/xcode_signing_id_option.py +0 -0
  233. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/__init__.py +0 -0
  234. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/absolute_web_locations_option.py +0 -0
  235. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/additional_webview_bundle_ids_option.py +0 -0
  236. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/enable_async_execute_from_https_option.py +0 -0
  237. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/full_context_list_option.py +0 -0
  238. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/include_safari_in_webviews_option.py +0 -0
  239. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/native_web_tap_option.py +0 -0
  240. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_garbage_collect_option.py +0 -0
  241. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_ignore_fraud_warning_option.py +0 -0
  242. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_ignore_web_hostnames_option.py +0 -0
  243. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_initial_url_option.py +0 -0
  244. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_log_all_communication_hex_dump_option.py +0 -0
  245. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_log_all_communication_option.py +0 -0
  246. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_open_links_in_background_option.py +0 -0
  247. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_socket_chunk_size_option.py +0 -0
  248. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/safari_web_inspector_max_frame_length_option.py +0 -0
  249. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/webkit_response_timeout_option.py +0 -0
  250. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/webview_connect_retries_option.py +0 -0
  251. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/ios/xcuitest/webview/webview_connect_timeout_option.py +0 -0
  252. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/__init__.py +0 -0
  253. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/__init__.py +0 -0
  254. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/arguments_option.py +0 -0
  255. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/base.py +0 -0
  256. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/bootstrap_root_option.py +0 -0
  257. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/environment_option.py +0 -0
  258. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/server_startup_timeout_option.py +0 -0
  259. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/show_server_logs_option.py +0 -0
  260. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/skip_app_kill_option.py +0 -0
  261. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/mac/mac2/web_driver_agent_mac_url_option.py +0 -0
  262. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/__init__.py +0 -0
  263. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/windows/__init__.py +0 -0
  264. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/windows/app_arguments_option.py +0 -0
  265. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/windows/app_top_level_window_option.py +0 -0
  266. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/windows/app_working_dir_option.py +0 -0
  267. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/windows/base.py +0 -0
  268. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/windows/create_session_timeout_option.py +0 -0
  269. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/windows/expreimental_web_driver_option.py +0 -0
  270. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/options/windows/windows/wait_for_app_launch_option.py +0 -0
  271. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/protocols/__init__.py +0 -0
  272. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/protocols/protocol.py +0 -0
  273. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/protocols/webdriver/__init__.py +0 -0
  274. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/protocols/webdriver/can_execute_commands.py +0 -0
  275. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/protocols/webdriver/can_execute_scripts.py +0 -0
  276. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/protocols/webdriver/can_find_elements.py +0 -0
  277. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/protocols/webdriver/can_remember_extension_presence.py +0 -0
  278. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/py.typed +0 -0
  279. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/__init__.py +0 -0
  280. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/appium_service.py +0 -0
  281. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/applicationstate.py +0 -0
  282. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/clipboard_content_type.py +0 -0
  283. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/command_method.py +0 -0
  284. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/common/__init__.py +0 -0
  285. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/common/appiumby.py +0 -0
  286. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/common/mobileby.py +0 -0
  287. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/common/multi_action.py +0 -0
  288. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/common/touch_action.py +0 -0
  289. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/connectiontype.py +0 -0
  290. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/errorhandler.py +0 -0
  291. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/__init__.py +0 -0
  292. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/action_helpers.py +0 -0
  293. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/__init__.py +0 -0
  294. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/activities.py +0 -0
  295. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/common.py +0 -0
  296. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/display.py +0 -0
  297. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/gsm.py +0 -0
  298. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/nativekey.py +0 -0
  299. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/network.py +0 -0
  300. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/performance.py +0 -0
  301. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/power.py +0 -0
  302. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/sms.py +0 -0
  303. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/android/system_bars.py +0 -0
  304. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/applications.py +0 -0
  305. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/clipboard.py +0 -0
  306. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/context.py +0 -0
  307. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/device_time.py +0 -0
  308. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/execute_driver.py +0 -0
  309. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/execute_mobile_command.py +0 -0
  310. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/hw_actions.py +0 -0
  311. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/images_comparison.py +0 -0
  312. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/ime.py +0 -0
  313. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/keyboard.py +0 -0
  314. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/location.py +0 -0
  315. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/log_event.py +0 -0
  316. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/remote_fs.py +0 -0
  317. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/screen_record.py +0 -0
  318. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/session.py +0 -0
  319. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/extensions/settings.py +0 -0
  320. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/appium/webdriver/switch_to.py +0 -0
  321. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/.DS_Store +0 -0
  322. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/Makefile +0 -0
  323. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/README.md +0 -0
  324. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/appium.common.doctree +0 -0
  325. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/appium.doctree +0 -0
  326. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/appium.webdriver.common.doctree +0 -0
  327. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/appium.webdriver.doctree +0 -0
  328. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/appium.webdriver.extensions.android.doctree +0 -0
  329. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/appium.webdriver.extensions.doctree +0 -0
  330. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/appium.webdriver.extensions.search_context.doctree +0 -0
  331. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/environment.pickle +0 -0
  332. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/doctrees/index.doctree +0 -0
  333. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/.buildinfo +0 -0
  334. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/.nojekyll +0 -0
  335. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_sources/appium.common.rst.txt +0 -0
  336. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_sources/appium.rst.txt +0 -0
  337. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_sources/appium.webdriver.common.rst.txt +0 -0
  338. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_sources/appium.webdriver.extensions.android.rst.txt +0 -0
  339. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_sources/appium.webdriver.extensions.rst.txt +0 -0
  340. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_sources/appium.webdriver.extensions.search_context.rst.txt +0 -0
  341. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_sources/appium.webdriver.rst.txt +0 -0
  342. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_sources/index.rst.txt +0 -0
  343. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/basic.css +0 -0
  344. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/badge_only.css +0 -0
  345. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  346. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  347. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  348. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  349. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  350. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  351. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  352. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  353. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  354. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  355. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  356. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/lato-bold.woff +0 -0
  357. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  358. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  359. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  360. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/lato-normal.woff +0 -0
  361. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  362. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/css/theme.css +0 -0
  363. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/doctools.js +0 -0
  364. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/documentation_options.js +0 -0
  365. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/file.png +0 -0
  366. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/jquery-3.5.1.js +0 -0
  367. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/jquery.js +0 -0
  368. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/js/badge_only.js +0 -0
  369. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/js/html5shiv-printshiv.min.js +0 -0
  370. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/js/html5shiv.min.js +0 -0
  371. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/js/theme.js +0 -0
  372. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/language_data.js +0 -0
  373. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/minus.png +0 -0
  374. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/plus.png +0 -0
  375. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/pygments.css +0 -0
  376. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/searchtools.js +0 -0
  377. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/underscore-1.13.1.js +0 -0
  378. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/_static/underscore.js +0 -0
  379. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/appium.common.html +0 -0
  380. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/appium.html +0 -0
  381. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/appium.webdriver.common.html +0 -0
  382. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/appium.webdriver.extensions.android.html +0 -0
  383. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/appium.webdriver.extensions.html +0 -0
  384. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/appium.webdriver.extensions.search_context.html +0 -0
  385. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/appium.webdriver.html +0 -0
  386. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/genindex.html +0 -0
  387. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/index.html +0 -0
  388. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/objects.inv +0 -0
  389. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/py-modindex.html +0 -0
  390. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/search.html +0 -0
  391. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/_build/html/searchindex.js +0 -0
  392. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/conf.py +0 -0
  393. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/generate.sh +0 -0
  394. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/index.rst +0 -0
  395. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/make.bat +0 -0
  396. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/requirements.txt +0 -0
  397. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/webdriver.common.rst +0 -0
  398. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/webdriver.extensions.android.rst +0 -0
  399. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/webdriver.extensions.rst +0 -0
  400. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/webdriver.extensions.search_context.rst +0 -0
  401. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/docs/webdriver.rst +0 -0
  402. {Appium-Python-Client-2.10.1 → Appium-Python-Client-2.11.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: Appium-Python-Client
3
- Version: 2.10.1
3
+ Version: 2.11.0
4
4
  Summary: Python client for Appium
5
5
  Home-page: http://appium.io/
6
6
  Author: Isaac Murchie
@@ -14,6 +14,8 @@ Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3.7
15
15
  Classifier: Programming Language :: Python :: 3.8
16
16
  Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
17
19
  Classifier: Environment :: Console
18
20
  Classifier: Environment :: MacOS X
19
21
  Classifier: Environment :: Win32 (MS Windows)
@@ -112,6 +114,23 @@ download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).
112
114
  python setup.py install
113
115
  ```
114
116
 
117
+ ## Compatibility Matrix
118
+
119
+ |Appium Python Client| Selenium binding|
120
+ |----|----|
121
+ |`2.10.0`+ |`4.1.0`+ |
122
+ |`2.2.0` - `2.9.0` |`4.1.0` - `4.9.0` |
123
+ |`2.0.0` - `2.1.4` |`4.0.0` |
124
+ |`1.1.0` and below|`3.x`|
125
+
126
+ The Appium Python Client depends on [Selenium Python binding](https://pypi.org/project/selenium/), thus
127
+ the Selenium Python binding update might affect the Appium Python Client behavior.
128
+ For exampple, some changes in the Selenium binding could break the Appium client.
129
+
130
+ > **Note**
131
+ > We strongly recommend you to manage dependencies with version management tools such as Pipenv and requirements.txt
132
+ > to keep compatible version combinations.
133
+
115
134
  ## Usage
116
135
 
117
136
  The Appium Python Client is fully compliant with the WebDriver Protocol
@@ -131,41 +150,102 @@ As a base for the following code examples, the following sets up the [UnitTest](
131
150
  environment:
132
151
 
133
152
  ```python
134
- # Android environment
135
- from appium import webdriver
136
- # Options are only available since client version 2.3.0
137
- # If you use an older client then switch to desired_capabilities
138
- # instead: https://github.com/appium/python-client/pull/720
139
- from appium.options.android import UiAutomator2Options
140
- from appium.webdriver.common.appiumby import AppiumBy
153
+ # Python/Pytest
154
+ import pytest
141
155
 
142
- options = UiAutomator2Options()
143
- options.platformVersion = '10'
144
- options.udid = '123456789ABC'
145
- options.app = PATH('../../../apps/test-app.apk')
146
- # Appium1 points to http://127.0.0.1:4723/wd/hub by default
147
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options)
148
- el = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
149
- el.click()
150
- ```
151
-
152
- ```python
153
- # iOS environment
154
156
  from appium import webdriver
155
157
  # Options are only available since client version 2.3.0
156
158
  # If you use an older client then switch to desired_capabilities
157
159
  # instead: https://github.com/appium/python-client/pull/720
160
+ from appium.options.android import UiAutomator2Options
158
161
  from appium.options.ios import XCUITestOptions
162
+ from appium.webdriver.appium_service import AppiumService
159
163
  from appium.webdriver.common.appiumby import AppiumBy
160
164
 
161
- options = XCUITestOptions()
162
- options.platformVersion = '13.4'
163
- options.udid = '123456789ABC'
164
- options.app = PATH('../../apps/UICatalog.app.zip')
165
- # Appium1 points to http://127.0.0.1:4723/wd/hub by default
166
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options)
167
- el = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
168
- el.click()
165
+ APPIUM_PORT = 4723
166
+ APPIUM_HOST = '127.0.0.1'
167
+
168
+
169
+ # HINT: fixtures below could be extracted into conftest.py
170
+ # HINT: and shared across all tests in the suite
171
+ @pytest.fixture(scope='session')
172
+ def appium_service():
173
+ service = AppiumService()
174
+ service.start(
175
+ # Check the output of `appium server --help` for the complete list of
176
+ # server command line arguments
177
+ args=['--address', APPIUM_HOST, '-p', str(APPIUM_PORT)],
178
+ timeout_ms=20000,
179
+ )
180
+ yield service
181
+ service.stop()
182
+
183
+
184
+ def create_ios_driver(custom_opts = None):
185
+ options = XCUITestOptions()
186
+ options.platformVersion = '13.4'
187
+ options.udid = '123456789ABC'
188
+ if custom_opts is not None:
189
+ options.load_capabilities(custom_opts)
190
+ # Appium1 points to http://127.0.0.1:4723/wd/hub by default
191
+ return webdriver.Remote(f'http://{APPIUM_HOST}:{APPIUM_PORT}', options=options)
192
+
193
+
194
+ def create_android_driver(custom_opts = None):
195
+ options = UiAutomator2Options()
196
+ options.platformVersion = '10'
197
+ options.udid = '123456789ABC'
198
+ if custom_opts is not None:
199
+ options.load_capabilities(custom_opts)
200
+ # Appium1 points to http://127.0.0.1:4723/wd/hub by default
201
+ return webdriver.Remote(f'http://{APPIUM_HOST}:{APPIUM_PORT}', options=options)
202
+
203
+
204
+ @pytest.fixture
205
+ def ios_driver_factory():
206
+ return create_ios_driver
207
+
208
+
209
+ @pytest.fixture
210
+ def ios_driver():
211
+ # prefer this fixture if there is no need to customize driver options in tests
212
+ driver = create_ios_driver()
213
+ yield driver
214
+ driver.quit()
215
+
216
+
217
+ @pytest.fixture
218
+ def android_driver_factory():
219
+ return create_android_driver
220
+
221
+
222
+ @pytest.fixture
223
+ def android_driver():
224
+ # prefer this fixture if there is no need to customize driver options in tests
225
+ driver = create_android_driver()
226
+ yield driver
227
+ driver.quit()
228
+
229
+
230
+ def test_ios_click(appium_service, ios_driver_factory):
231
+ # Usage of the context manager ensures the driver session is closed properly
232
+ # after the test completes. Otherwise, make sure to call `driver.quit()` on teardown.
233
+ with ios_driver_factory({
234
+ 'appium:app': '/path/to/app/UICatalog.app.zip'
235
+ }) as driver:
236
+ el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
237
+ el.click()
238
+
239
+
240
+ def test_android_click(appium_service, android_driver_factory):
241
+ # Usage of the context manager ensures the driver session is closed properly
242
+ # after the test completes. Otherwise, make sure to call `driver.quit()` on teardown.
243
+ with android_driver_factory({
244
+ 'appium:app': '/path/to/app/test-app.apk',
245
+ 'appium:udid': '567890',
246
+ }) as driver:
247
+ el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
248
+ el.click()
169
249
  ```
170
250
 
171
251
  ## Direct Connect URLs
@@ -191,10 +271,10 @@ from appium.options.ios import XCUITestOptions
191
271
  options = XCUITestOptions().load_capabilities({
192
272
  'platformVersion': '13.4',
193
273
  'deviceName': 'iPhone Simulator',
194
- 'app': PATH('../../apps/UICatalog.app.zip'),
274
+ 'app': '/full/path/to/app/UICatalog.app.zip',
195
275
  })
196
276
 
197
- self.driver = webdriver.Remote(
277
+ driver = webdriver.Remote(
198
278
  # Appium1 points to http://127.0.0.1:4723/wd/hub by default
199
279
  'http://127.0.0.1:4723',
200
280
  options=options,
@@ -221,7 +301,7 @@ options.automation_name = 'safari'
221
301
  options.set_capability('browser_name', 'safari')
222
302
 
223
303
  # Appium1 points to http://127.0.0.1:4723/wd/hub by default
224
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
304
+ driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
225
305
  ```
226
306
 
227
307
  ## Set custom `AppiumConnection`
@@ -241,13 +321,15 @@ from appium.webdriver.appium_connection import AppiumConnection
241
321
  init_args_for_pool_manage = {
242
322
  'retries': urllib3.util.retry.Retry(total=3, connect=3, read=False)
243
323
  }
244
- appium_executor = AppiumConnection(remote_server_addr='http://127.0.0.1:4723',
245
- init_args_for_pool_manage=init_args_for_pool_manage)
324
+ appium_executor = AppiumConnection(
325
+ remote_server_addr='http://127.0.0.1:4723',
326
+ init_args_for_pool_manage=init_args_for_pool_manage
327
+ )
246
328
 
247
329
  options = XCUITestOptions()
248
330
  options.platformVersion = '13.4'
249
331
  options.udid = '123456789ABC'
250
- options.app = PATH('../../apps/UICatalog.app.zip')
332
+ options.app = '/full/path/to/app/UICatalog.app.zip'
251
333
  driver = webdriver.Remote(appium_executor, options=options)
252
334
  ```
253
335
 
@@ -269,7 +351,7 @@ custom_executor = CustomAppiumConnection(remote_server_addr='http://127.0.0.1:47
269
351
  options = XCUITestOptions().load_capabilities({
270
352
  'platformVersion': '13.4',
271
353
  'deviceName': 'iPhone Simulator',
272
- 'app': PATH('../../apps/UICatalog.app.zip'),
354
+ 'app': '/full/path/to/app/UICatalog.app.zip',
273
355
  })
274
356
  driver = webdriver.Remote(custom_executor, options=options)
275
357
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: Appium-Python-Client
3
- Version: 2.10.1
3
+ Version: 2.11.0
4
4
  Summary: Python client for Appium
5
5
  Home-page: http://appium.io/
6
6
  Author: Isaac Murchie
@@ -14,6 +14,8 @@ Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3.7
15
15
  Classifier: Programming Language :: Python :: 3.8
16
16
  Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
17
19
  Classifier: Environment :: Console
18
20
  Classifier: Environment :: MacOS X
19
21
  Classifier: Environment :: Win32 (MS Windows)
@@ -112,6 +114,23 @@ download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).
112
114
  python setup.py install
113
115
  ```
114
116
 
117
+ ## Compatibility Matrix
118
+
119
+ |Appium Python Client| Selenium binding|
120
+ |----|----|
121
+ |`2.10.0`+ |`4.1.0`+ |
122
+ |`2.2.0` - `2.9.0` |`4.1.0` - `4.9.0` |
123
+ |`2.0.0` - `2.1.4` |`4.0.0` |
124
+ |`1.1.0` and below|`3.x`|
125
+
126
+ The Appium Python Client depends on [Selenium Python binding](https://pypi.org/project/selenium/), thus
127
+ the Selenium Python binding update might affect the Appium Python Client behavior.
128
+ For exampple, some changes in the Selenium binding could break the Appium client.
129
+
130
+ > **Note**
131
+ > We strongly recommend you to manage dependencies with version management tools such as Pipenv and requirements.txt
132
+ > to keep compatible version combinations.
133
+
115
134
  ## Usage
116
135
 
117
136
  The Appium Python Client is fully compliant with the WebDriver Protocol
@@ -131,41 +150,102 @@ As a base for the following code examples, the following sets up the [UnitTest](
131
150
  environment:
132
151
 
133
152
  ```python
134
- # Android environment
135
- from appium import webdriver
136
- # Options are only available since client version 2.3.0
137
- # If you use an older client then switch to desired_capabilities
138
- # instead: https://github.com/appium/python-client/pull/720
139
- from appium.options.android import UiAutomator2Options
140
- from appium.webdriver.common.appiumby import AppiumBy
153
+ # Python/Pytest
154
+ import pytest
141
155
 
142
- options = UiAutomator2Options()
143
- options.platformVersion = '10'
144
- options.udid = '123456789ABC'
145
- options.app = PATH('../../../apps/test-app.apk')
146
- # Appium1 points to http://127.0.0.1:4723/wd/hub by default
147
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options)
148
- el = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
149
- el.click()
150
- ```
151
-
152
- ```python
153
- # iOS environment
154
156
  from appium import webdriver
155
157
  # Options are only available since client version 2.3.0
156
158
  # If you use an older client then switch to desired_capabilities
157
159
  # instead: https://github.com/appium/python-client/pull/720
160
+ from appium.options.android import UiAutomator2Options
158
161
  from appium.options.ios import XCUITestOptions
162
+ from appium.webdriver.appium_service import AppiumService
159
163
  from appium.webdriver.common.appiumby import AppiumBy
160
164
 
161
- options = XCUITestOptions()
162
- options.platformVersion = '13.4'
163
- options.udid = '123456789ABC'
164
- options.app = PATH('../../apps/UICatalog.app.zip')
165
- # Appium1 points to http://127.0.0.1:4723/wd/hub by default
166
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options)
167
- el = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
168
- el.click()
165
+ APPIUM_PORT = 4723
166
+ APPIUM_HOST = '127.0.0.1'
167
+
168
+
169
+ # HINT: fixtures below could be extracted into conftest.py
170
+ # HINT: and shared across all tests in the suite
171
+ @pytest.fixture(scope='session')
172
+ def appium_service():
173
+ service = AppiumService()
174
+ service.start(
175
+ # Check the output of `appium server --help` for the complete list of
176
+ # server command line arguments
177
+ args=['--address', APPIUM_HOST, '-p', str(APPIUM_PORT)],
178
+ timeout_ms=20000,
179
+ )
180
+ yield service
181
+ service.stop()
182
+
183
+
184
+ def create_ios_driver(custom_opts = None):
185
+ options = XCUITestOptions()
186
+ options.platformVersion = '13.4'
187
+ options.udid = '123456789ABC'
188
+ if custom_opts is not None:
189
+ options.load_capabilities(custom_opts)
190
+ # Appium1 points to http://127.0.0.1:4723/wd/hub by default
191
+ return webdriver.Remote(f'http://{APPIUM_HOST}:{APPIUM_PORT}', options=options)
192
+
193
+
194
+ def create_android_driver(custom_opts = None):
195
+ options = UiAutomator2Options()
196
+ options.platformVersion = '10'
197
+ options.udid = '123456789ABC'
198
+ if custom_opts is not None:
199
+ options.load_capabilities(custom_opts)
200
+ # Appium1 points to http://127.0.0.1:4723/wd/hub by default
201
+ return webdriver.Remote(f'http://{APPIUM_HOST}:{APPIUM_PORT}', options=options)
202
+
203
+
204
+ @pytest.fixture
205
+ def ios_driver_factory():
206
+ return create_ios_driver
207
+
208
+
209
+ @pytest.fixture
210
+ def ios_driver():
211
+ # prefer this fixture if there is no need to customize driver options in tests
212
+ driver = create_ios_driver()
213
+ yield driver
214
+ driver.quit()
215
+
216
+
217
+ @pytest.fixture
218
+ def android_driver_factory():
219
+ return create_android_driver
220
+
221
+
222
+ @pytest.fixture
223
+ def android_driver():
224
+ # prefer this fixture if there is no need to customize driver options in tests
225
+ driver = create_android_driver()
226
+ yield driver
227
+ driver.quit()
228
+
229
+
230
+ def test_ios_click(appium_service, ios_driver_factory):
231
+ # Usage of the context manager ensures the driver session is closed properly
232
+ # after the test completes. Otherwise, make sure to call `driver.quit()` on teardown.
233
+ with ios_driver_factory({
234
+ 'appium:app': '/path/to/app/UICatalog.app.zip'
235
+ }) as driver:
236
+ el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
237
+ el.click()
238
+
239
+
240
+ def test_android_click(appium_service, android_driver_factory):
241
+ # Usage of the context manager ensures the driver session is closed properly
242
+ # after the test completes. Otherwise, make sure to call `driver.quit()` on teardown.
243
+ with android_driver_factory({
244
+ 'appium:app': '/path/to/app/test-app.apk',
245
+ 'appium:udid': '567890',
246
+ }) as driver:
247
+ el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
248
+ el.click()
169
249
  ```
170
250
 
171
251
  ## Direct Connect URLs
@@ -191,10 +271,10 @@ from appium.options.ios import XCUITestOptions
191
271
  options = XCUITestOptions().load_capabilities({
192
272
  'platformVersion': '13.4',
193
273
  'deviceName': 'iPhone Simulator',
194
- 'app': PATH('../../apps/UICatalog.app.zip'),
274
+ 'app': '/full/path/to/app/UICatalog.app.zip',
195
275
  })
196
276
 
197
- self.driver = webdriver.Remote(
277
+ driver = webdriver.Remote(
198
278
  # Appium1 points to http://127.0.0.1:4723/wd/hub by default
199
279
  'http://127.0.0.1:4723',
200
280
  options=options,
@@ -221,7 +301,7 @@ options.automation_name = 'safari'
221
301
  options.set_capability('browser_name', 'safari')
222
302
 
223
303
  # Appium1 points to http://127.0.0.1:4723/wd/hub by default
224
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
304
+ driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
225
305
  ```
226
306
 
227
307
  ## Set custom `AppiumConnection`
@@ -241,13 +321,15 @@ from appium.webdriver.appium_connection import AppiumConnection
241
321
  init_args_for_pool_manage = {
242
322
  'retries': urllib3.util.retry.Retry(total=3, connect=3, read=False)
243
323
  }
244
- appium_executor = AppiumConnection(remote_server_addr='http://127.0.0.1:4723',
245
- init_args_for_pool_manage=init_args_for_pool_manage)
324
+ appium_executor = AppiumConnection(
325
+ remote_server_addr='http://127.0.0.1:4723',
326
+ init_args_for_pool_manage=init_args_for_pool_manage
327
+ )
246
328
 
247
329
  options = XCUITestOptions()
248
330
  options.platformVersion = '13.4'
249
331
  options.udid = '123456789ABC'
250
- options.app = PATH('../../apps/UICatalog.app.zip')
332
+ options.app = '/full/path/to/app/UICatalog.app.zip'
251
333
  driver = webdriver.Remote(appium_executor, options=options)
252
334
  ```
253
335
 
@@ -269,7 +351,7 @@ custom_executor = CustomAppiumConnection(remote_server_addr='http://127.0.0.1:47
269
351
  options = XCUITestOptions().load_capabilities({
270
352
  'platformVersion': '13.4',
271
353
  'deviceName': 'iPhone Simulator',
272
- 'app': PATH('../../apps/UICatalog.app.zip'),
354
+ 'app': '/full/path/to/app/UICatalog.app.zip',
273
355
  })
274
356
  driver = webdriver.Remote(custom_executor, options=options)
275
357
 
@@ -84,6 +84,23 @@ download and unarchive the source tarball (Appium-Python-Client-X.X.tar.gz).
84
84
  python setup.py install
85
85
  ```
86
86
 
87
+ ## Compatibility Matrix
88
+
89
+ |Appium Python Client| Selenium binding|
90
+ |----|----|
91
+ |`2.10.0`+ |`4.1.0`+ |
92
+ |`2.2.0` - `2.9.0` |`4.1.0` - `4.9.0` |
93
+ |`2.0.0` - `2.1.4` |`4.0.0` |
94
+ |`1.1.0` and below|`3.x`|
95
+
96
+ The Appium Python Client depends on [Selenium Python binding](https://pypi.org/project/selenium/), thus
97
+ the Selenium Python binding update might affect the Appium Python Client behavior.
98
+ For exampple, some changes in the Selenium binding could break the Appium client.
99
+
100
+ > **Note**
101
+ > We strongly recommend you to manage dependencies with version management tools such as Pipenv and requirements.txt
102
+ > to keep compatible version combinations.
103
+
87
104
  ## Usage
88
105
 
89
106
  The Appium Python Client is fully compliant with the WebDriver Protocol
@@ -103,41 +120,102 @@ As a base for the following code examples, the following sets up the [UnitTest](
103
120
  environment:
104
121
 
105
122
  ```python
106
- # Android environment
107
- from appium import webdriver
108
- # Options are only available since client version 2.3.0
109
- # If you use an older client then switch to desired_capabilities
110
- # instead: https://github.com/appium/python-client/pull/720
111
- from appium.options.android import UiAutomator2Options
112
- from appium.webdriver.common.appiumby import AppiumBy
123
+ # Python/Pytest
124
+ import pytest
113
125
 
114
- options = UiAutomator2Options()
115
- options.platformVersion = '10'
116
- options.udid = '123456789ABC'
117
- options.app = PATH('../../../apps/test-app.apk')
118
- # Appium1 points to http://127.0.0.1:4723/wd/hub by default
119
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options)
120
- el = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
121
- el.click()
122
- ```
123
-
124
- ```python
125
- # iOS environment
126
126
  from appium import webdriver
127
127
  # Options are only available since client version 2.3.0
128
128
  # If you use an older client then switch to desired_capabilities
129
129
  # instead: https://github.com/appium/python-client/pull/720
130
+ from appium.options.android import UiAutomator2Options
130
131
  from appium.options.ios import XCUITestOptions
132
+ from appium.webdriver.appium_service import AppiumService
131
133
  from appium.webdriver.common.appiumby import AppiumBy
132
134
 
133
- options = XCUITestOptions()
134
- options.platformVersion = '13.4'
135
- options.udid = '123456789ABC'
136
- options.app = PATH('../../apps/UICatalog.app.zip')
137
- # Appium1 points to http://127.0.0.1:4723/wd/hub by default
138
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options)
139
- el = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
140
- el.click()
135
+ APPIUM_PORT = 4723
136
+ APPIUM_HOST = '127.0.0.1'
137
+
138
+
139
+ # HINT: fixtures below could be extracted into conftest.py
140
+ # HINT: and shared across all tests in the suite
141
+ @pytest.fixture(scope='session')
142
+ def appium_service():
143
+ service = AppiumService()
144
+ service.start(
145
+ # Check the output of `appium server --help` for the complete list of
146
+ # server command line arguments
147
+ args=['--address', APPIUM_HOST, '-p', str(APPIUM_PORT)],
148
+ timeout_ms=20000,
149
+ )
150
+ yield service
151
+ service.stop()
152
+
153
+
154
+ def create_ios_driver(custom_opts = None):
155
+ options = XCUITestOptions()
156
+ options.platformVersion = '13.4'
157
+ options.udid = '123456789ABC'
158
+ if custom_opts is not None:
159
+ options.load_capabilities(custom_opts)
160
+ # Appium1 points to http://127.0.0.1:4723/wd/hub by default
161
+ return webdriver.Remote(f'http://{APPIUM_HOST}:{APPIUM_PORT}', options=options)
162
+
163
+
164
+ def create_android_driver(custom_opts = None):
165
+ options = UiAutomator2Options()
166
+ options.platformVersion = '10'
167
+ options.udid = '123456789ABC'
168
+ if custom_opts is not None:
169
+ options.load_capabilities(custom_opts)
170
+ # Appium1 points to http://127.0.0.1:4723/wd/hub by default
171
+ return webdriver.Remote(f'http://{APPIUM_HOST}:{APPIUM_PORT}', options=options)
172
+
173
+
174
+ @pytest.fixture
175
+ def ios_driver_factory():
176
+ return create_ios_driver
177
+
178
+
179
+ @pytest.fixture
180
+ def ios_driver():
181
+ # prefer this fixture if there is no need to customize driver options in tests
182
+ driver = create_ios_driver()
183
+ yield driver
184
+ driver.quit()
185
+
186
+
187
+ @pytest.fixture
188
+ def android_driver_factory():
189
+ return create_android_driver
190
+
191
+
192
+ @pytest.fixture
193
+ def android_driver():
194
+ # prefer this fixture if there is no need to customize driver options in tests
195
+ driver = create_android_driver()
196
+ yield driver
197
+ driver.quit()
198
+
199
+
200
+ def test_ios_click(appium_service, ios_driver_factory):
201
+ # Usage of the context manager ensures the driver session is closed properly
202
+ # after the test completes. Otherwise, make sure to call `driver.quit()` on teardown.
203
+ with ios_driver_factory({
204
+ 'appium:app': '/path/to/app/UICatalog.app.zip'
205
+ }) as driver:
206
+ el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
207
+ el.click()
208
+
209
+
210
+ def test_android_click(appium_service, android_driver_factory):
211
+ # Usage of the context manager ensures the driver session is closed properly
212
+ # after the test completes. Otherwise, make sure to call `driver.quit()` on teardown.
213
+ with android_driver_factory({
214
+ 'appium:app': '/path/to/app/test-app.apk',
215
+ 'appium:udid': '567890',
216
+ }) as driver:
217
+ el = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value='item')
218
+ el.click()
141
219
  ```
142
220
 
143
221
  ## Direct Connect URLs
@@ -163,10 +241,10 @@ from appium.options.ios import XCUITestOptions
163
241
  options = XCUITestOptions().load_capabilities({
164
242
  'platformVersion': '13.4',
165
243
  'deviceName': 'iPhone Simulator',
166
- 'app': PATH('../../apps/UICatalog.app.zip'),
244
+ 'app': '/full/path/to/app/UICatalog.app.zip',
167
245
  })
168
246
 
169
- self.driver = webdriver.Remote(
247
+ driver = webdriver.Remote(
170
248
  # Appium1 points to http://127.0.0.1:4723/wd/hub by default
171
249
  'http://127.0.0.1:4723',
172
250
  options=options,
@@ -193,7 +271,7 @@ options.automation_name = 'safari'
193
271
  options.set_capability('browser_name', 'safari')
194
272
 
195
273
  # Appium1 points to http://127.0.0.1:4723/wd/hub by default
196
- self.driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
274
+ driver = webdriver.Remote('http://127.0.0.1:4723', options=options, strict_ssl=False)
197
275
  ```
198
276
 
199
277
  ## Set custom `AppiumConnection`
@@ -213,13 +291,15 @@ from appium.webdriver.appium_connection import AppiumConnection
213
291
  init_args_for_pool_manage = {
214
292
  'retries': urllib3.util.retry.Retry(total=3, connect=3, read=False)
215
293
  }
216
- appium_executor = AppiumConnection(remote_server_addr='http://127.0.0.1:4723',
217
- init_args_for_pool_manage=init_args_for_pool_manage)
294
+ appium_executor = AppiumConnection(
295
+ remote_server_addr='http://127.0.0.1:4723',
296
+ init_args_for_pool_manage=init_args_for_pool_manage
297
+ )
218
298
 
219
299
  options = XCUITestOptions()
220
300
  options.platformVersion = '13.4'
221
301
  options.udid = '123456789ABC'
222
- options.app = PATH('../../apps/UICatalog.app.zip')
302
+ options.app = '/full/path/to/app/UICatalog.app.zip'
223
303
  driver = webdriver.Remote(appium_executor, options=options)
224
304
  ```
225
305
 
@@ -241,7 +321,7 @@ custom_executor = CustomAppiumConnection(remote_server_addr='http://127.0.0.1:47
241
321
  options = XCUITestOptions().load_capabilities({
242
322
  'platformVersion': '13.4',
243
323
  'deviceName': 'iPhone Simulator',
244
- 'app': PATH('../../apps/UICatalog.app.zip'),
324
+ 'app': '/full/path/to/app/UICatalog.app.zip',
245
325
  })
246
326
  driver = webdriver.Remote(custom_executor, options=options)
247
327
 
@@ -0,0 +1 @@
1
+ version = '2.11.0'
@@ -24,6 +24,9 @@ if TYPE_CHECKING:
24
24
  from urllib.parse import ParseResult
25
25
 
26
26
 
27
+ PREFIX_HEADER = 'appium/'
28
+
29
+
27
30
  class AppiumConnection(RemoteConnection):
28
31
  _proxy_url: Optional[str]
29
32
 
@@ -68,7 +71,8 @@ class AppiumConnection(RemoteConnection):
68
71
  def get_remote_connection_headers(cls, parsed_url: 'ParseResult', keep_alive: bool = True) -> Dict[str, Any]:
69
72
  """Override get_remote_connection_headers in RemoteConnection"""
70
73
  headers = RemoteConnection.get_remote_connection_headers(parsed_url, keep_alive=keep_alive)
71
- headers['User-Agent'] = f'appium/python {library_version()} ({headers["User-Agent"]})'
74
+ # e.g. appium/0.49 (selenium/3.141.0 (python linux))
75
+ headers['User-Agent'] = f'{PREFIX_HEADER}{library_version()} ({headers["User-Agent"]})'
72
76
  if parsed_url.path.endswith('/session'):
73
77
  # https://github.com/appium/appium-base-driver/pull/400
74
78
  headers['X-Idempotency-Key'] = str(uuid.uuid4())
@@ -31,7 +31,6 @@ class MobileCommand:
31
31
  DEACTIVATE_IME_ENGINE = 'deactivateIMEEngine'
32
32
  GET_ACTIVE_IME_ENGINE = 'getActiveEngine'
33
33
 
34
- CLEAR = 'clear'
35
34
  LOCATION_IN_VIEW = 'locationInView'
36
35
 
37
36
  CONTEXTS = 'getContexts'