Appium-Python-Client 2.6.1__tar.gz → 6.0.2__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 (454) hide show
  1. appium_python_client-6.0.2/.github/actions/setup-appium-server/action.yml +65 -0
  2. appium_python_client-6.0.2/.github/dependabot.yml +17 -0
  3. appium_python_client-6.0.2/.github/issue_template.md +23 -0
  4. appium_python_client-6.0.2/.github/workflows/functional-test.yml +368 -0
  5. appium_python_client-6.0.2/.github/workflows/lock-update.yml +31 -0
  6. appium_python_client-6.0.2/.github/workflows/pr-title.yml +10 -0
  7. appium_python_client-6.0.2/.github/workflows/publish.yml +50 -0
  8. appium_python_client-6.0.2/.github/workflows/unit-test.yml +36 -0
  9. appium_python_client-6.0.2/.gitignore +30 -0
  10. appium_python_client-6.0.2/.pre-commit-config.yaml +15 -0
  11. appium_python_client-6.0.2/.ruff.toml +29 -0
  12. appium_python_client-6.0.2/CHANGELOG.md +2662 -0
  13. appium_python_client-6.0.2/Makefile +51 -0
  14. appium_python_client-6.0.2/PKG-INFO +569 -0
  15. appium_python_client-6.0.2/README.md +542 -0
  16. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/common/helper.py +9 -2
  17. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/__init__.py +2 -0
  18. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/adb_exec_timeout_option.py +3 -4
  19. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/adb_port_option.py +1 -2
  20. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/allow_delay_adb_option.py +1 -2
  21. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/build_tools_version_option.py +1 -2
  22. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/clear_device_logs_on_start_option.py +1 -2
  23. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/ignore_hidden_api_policy_error_option.py +1 -2
  24. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/logcat_filter_specs_option.py +2 -3
  25. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/logcat_format_option.py +1 -2
  26. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/mock_location_app_option.py +1 -2
  27. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/remote_adb_host_option.py +1 -2
  28. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/skip_logcat_capture_option.py +1 -2
  29. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/suppress_kill_server_option.py +1 -2
  30. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/allow_test_packages_option.py +1 -2
  31. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/android_install_timeout_option.py +3 -4
  32. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/app_activity_option.py +1 -2
  33. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/app_package_option.py +1 -2
  34. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/app_wait_activity_option.py +1 -2
  35. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/app_wait_duration_option.py +3 -4
  36. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/app_wait_for_launch_option.py +1 -2
  37. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/app_wait_package_option.py +1 -2
  38. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/auto_grant_premissions_option.py +1 -2
  39. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/enforce_app_install_option.py +1 -2
  40. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/intent_action_option.py +1 -2
  41. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/intent_category_option.py +1 -2
  42. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/intent_flags_option.py +1 -2
  43. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/optional_intent_arguments_option.py +1 -2
  44. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/remote_apps_cache_limit_option.py +1 -2
  45. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/uninstall_other_packages_option.py +1 -2
  46. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/avd/avd_args_option.py +1 -2
  47. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/avd/avd_env_option.py +2 -3
  48. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/avd/avd_launch_timeout_option.py +3 -4
  49. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/avd/avd_option.py +1 -2
  50. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/avd/avd_ready_timeout_option.py +3 -4
  51. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/avd/gps_enabled_option.py +1 -2
  52. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/avd/network_speed_option.py +1 -2
  53. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/auto_webview_timeout_option.py +3 -4
  54. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chrome_logging_prefs_option.py +3 -3
  55. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chrome_options_option.py +3 -3
  56. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chromedriver_args_option.py +2 -3
  57. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chromedriver_chrome_mapping_file_option.py +1 -2
  58. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chromedriver_disable_build_check_option.py +1 -2
  59. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chromedriver_executable_dir_option.py +1 -2
  60. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chromedriver_executable_option.py +1 -2
  61. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chromedriver_port_option.py +1 -2
  62. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chromedriver_ports_option.py +2 -3
  63. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/chromedriver_use_system_executable_option.py +1 -2
  64. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/ensure_webviews_have_pages_option.py +1 -2
  65. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/extract_chrome_android_package_from_context_name_option.py +1 -2
  66. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/native_web_screenshot_option.py +1 -2
  67. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/recreate_chrome_driver_sessions_option.py +1 -2
  68. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/show_chromedriver_log_option.py +1 -2
  69. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/webview_devtools_port_option.py +1 -2
  70. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/localization/locale_script_option.py +1 -2
  71. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/locking/skip_unlock_option.py +1 -2
  72. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/locking/unlock_key_option.py +1 -2
  73. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/locking/unlock_strategy_option.py +1 -2
  74. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/locking/unlock_success_timeout_option.py +3 -4
  75. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/locking/unlock_type_option.py +1 -2
  76. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/mjpeg/mjpeg_screenshot_url_option.py +1 -2
  77. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/other/disable_suppress_accessibility_service_option.py +1 -2
  78. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/other/user_profile_option.py +1 -2
  79. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/signing/key_alias_option.py +1 -2
  80. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/signing/key_password_option.py +1 -2
  81. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/signing/keystore_password_option.py +1 -2
  82. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/signing/keystore_path_option.py +1 -2
  83. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/signing/no_sign_option.py +1 -2
  84. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/signing/use_keystore_option.py +1 -2
  85. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/activity_options_option.py +2 -3
  86. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/app_locale_option.py +2 -3
  87. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/base.py +3 -2
  88. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/espresso_build_config_option.py +4 -6
  89. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/espresso_server_launch_timeout_option.py +3 -4
  90. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/force_espresso_rebuild_option.py +1 -2
  91. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/intent_options_option.py +3 -3
  92. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/show_gradle_log_option.py +1 -2
  93. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/base.py +3 -2
  94. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/disable_window_animation_option.py +1 -2
  95. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/mjpeg_server_port_option.py +1 -2
  96. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/skip_device_initialization_option.py +1 -2
  97. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/skip_server_installation_option.py +1 -2
  98. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/uiautomator2_server_install_timeout_option.py +4 -4
  99. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/uiautomator2_server_launch_timeout_option.py +4 -4
  100. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/uiautomator2_server_read_timeout_option.py +4 -4
  101. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/__init__.py +2 -0
  102. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/app_option.py +1 -2
  103. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/auto_web_view_option.py +1 -2
  104. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/automation_name_option.py +1 -2
  105. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/base.py +19 -11
  106. appium_python_client-6.0.2/appium/options/common/browser_name_option.py +37 -0
  107. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/bundle_id_option.py +1 -2
  108. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/clear_system_files_option.py +1 -2
  109. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/device_name_option.py +1 -2
  110. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/enable_performance_logging_option.py +1 -2
  111. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/event_timings_option.py +1 -2
  112. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/full_reset_option.py +1 -2
  113. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/is_headless_option.py +1 -2
  114. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/language_option.py +1 -2
  115. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/locale_option.py +1 -2
  116. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/new_command_timeout_option.py +3 -4
  117. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/no_reset_option.py +1 -2
  118. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/orientation_option.py +1 -2
  119. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/other_apps_option.py +1 -2
  120. appium_python_client-6.0.2/appium/options/common/platform_version_option.py +39 -0
  121. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/postrun_option.py +2 -3
  122. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/prerun_option.py +2 -3
  123. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/print_page_source_on_find_failure_option.py +1 -2
  124. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/skip_log_capture_option.py +1 -2
  125. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/supports_capabilities.py +3 -7
  126. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/system_host_option.py +1 -2
  127. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/system_port_option.py +1 -2
  128. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/common/udid_option.py +1 -2
  129. appium_python_client-6.0.2/appium/options/flutter_integration/__init__.py +17 -0
  130. appium_python_client-6.0.2/appium/options/flutter_integration/base.py +38 -0
  131. appium_python_client-6.0.2/appium/options/flutter_integration/flutter_element_wait_timeout_option.py +49 -0
  132. appium_python_client-6.0.2/appium/options/flutter_integration/flutter_enable_mock_camera_option.py +44 -0
  133. appium_python_client-6.0.2/appium/options/flutter_integration/flutter_server_launch_timeout_option.py +50 -0
  134. appium_python_client-6.0.2/appium/options/flutter_integration/flutter_system_port_option.py +44 -0
  135. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/gecko/__init__.py +2 -0
  136. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/gecko/android_storage_option.py +1 -2
  137. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/gecko/base.py +1 -2
  138. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/gecko/firefox_options_option.py +3 -3
  139. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/gecko/marionette_port_option.py +1 -2
  140. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/gecko/verbosity_option.py +1 -2
  141. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/__init__.py +2 -0
  142. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/automatic_inspection_option.py +1 -2
  143. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/automatic_profiling_option.py +1 -2
  144. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/base.py +1 -2
  145. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/device_name_option.py +1 -2
  146. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/device_type_option.py +1 -2
  147. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/device_udid_option.py +1 -2
  148. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/platform_build_version_option.py +1 -2
  149. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/platform_version_option.py +1 -2
  150. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/use_simulator_option.py +1 -2
  151. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/webkit_webrtc_option.py +3 -3
  152. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/app/app_install_strategy_option.py +1 -2
  153. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/app/app_push_timeout_option.py +3 -4
  154. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/app/localizable_strings_dir_option.py +1 -2
  155. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/base.py +7 -2
  156. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/general/include_device_caps_to_session_info_option.py +1 -2
  157. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/general/reset_location_service_option.py +1 -2
  158. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/other/command_timeouts_option.py +4 -5
  159. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/other/launch_with_idb_option.py +1 -2
  160. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/other/show_ios_log_option.py +1 -2
  161. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/other/use_json_source_option.py +1 -2
  162. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/calendar_access_authorized_option.py +1 -2
  163. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/calendar_format_option.py +1 -2
  164. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/connect_hardware_keyboard_option.py +1 -2
  165. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/custom_ssl_cert_option.py +1 -2
  166. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/enforce_fresh_simulator_creation_option.py +1 -2
  167. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/force_simulator_software_keyboard_presence_option.py +1 -2
  168. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/ios_simulator_logs_predicate_option.py +1 -2
  169. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/keep_key_chains_option.py +1 -2
  170. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/keychains_exclude_patterns_option.py +1 -2
  171. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/permissions_option.py +2 -3
  172. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/reduce_motion_option.py +1 -2
  173. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/reset_on_session_start_only_option.py +1 -2
  174. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/scale_factor_option.py +1 -2
  175. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/shutdown_other_simulators_option.py +1 -2
  176. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/simulator_devices_set_path_option.py +1 -2
  177. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/simulator_pasteboard_automatic_sync_option.py +1 -2
  178. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/simulator_startup_timeout_option.py +3 -4
  179. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/simulator_trace_pointer_option.py +1 -2
  180. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/simulator_window_center_option.py +1 -2
  181. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/allow_provisioning_device_regitration_option.py +1 -2
  182. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/auto_accept_alerts_option.py +1 -2
  183. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/auto_disimiss_alerts_option.py +1 -2
  184. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/derived_data_path_option.py +1 -2
  185. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/disable_automatic_screenshots_option.py +1 -2
  186. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/force_app_launch_option.py +1 -2
  187. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/keychain_password_option.py +1 -2
  188. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/keychain_path_option.py +1 -2
  189. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/max_typing_frequency_option.py +1 -2
  190. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/mjpeg_server_port_option.py +1 -2
  191. appium_python_client-6.0.2/appium/options/ios/xcuitest/wda/prebuilt_wda_path_option.py +38 -0
  192. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/process_arguments_option.py +2 -3
  193. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/result_bundle_path_option.py +1 -2
  194. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/screenshot_quality_option.py +1 -2
  195. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/should_terminate_app_option.py +1 -2
  196. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/should_use_singleton_test_manager_option.py +1 -2
  197. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/show_xcode_log_option.py +1 -2
  198. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/simple_is_visible_check_option.py +1 -2
  199. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/updated_wda_bundle_id_option.py +1 -2
  200. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/use_native_caching_strategy_option.py +1 -2
  201. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/use_new_wda_option.py +1 -2
  202. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/use_prebuilt_wda_option.py +1 -2
  203. appium_python_client-6.0.2/appium/options/ios/xcuitest/wda/use_preinstalled_wda_option.py +39 -0
  204. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/use_simple_build_test_option.py +1 -2
  205. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/use_xctestrun_file_option.py +1 -2
  206. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wait_for_idle_timeout_option.py +3 -4
  207. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wait_for_quiescence_option.py +2 -3
  208. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wda_base_url_option.py +1 -2
  209. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wda_connection_timeout_option.py +3 -4
  210. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wda_eventloop_idle_delay_option.py +3 -4
  211. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wda_launch_timeout_option.py +3 -4
  212. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wda_local_port_option.py +1 -2
  213. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wda_startup_retries_option.py +1 -2
  214. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/wda_startup_retry_interval_option.py +3 -4
  215. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/web_driver_agent_url_option.py +1 -2
  216. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/xcode_org_id_option.py +1 -2
  217. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/xcode_signing_id_option.py +1 -2
  218. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/absolute_web_locations_option.py +1 -2
  219. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/additional_webview_bundle_ids_option.py +2 -3
  220. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/enable_async_execute_from_https_option.py +1 -2
  221. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/full_context_list_option.py +1 -2
  222. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/include_safari_in_webviews_option.py +1 -2
  223. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/native_web_tap_option.py +1 -2
  224. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_garbage_collect_option.py +1 -2
  225. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_ignore_fraud_warning_option.py +1 -2
  226. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_ignore_web_hostnames_option.py +1 -2
  227. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_initial_url_option.py +1 -2
  228. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_log_all_communication_hex_dump_option.py +1 -2
  229. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_log_all_communication_option.py +1 -2
  230. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_open_links_in_background_option.py +1 -2
  231. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_socket_chunk_size_option.py +1 -2
  232. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/safari_web_inspector_max_frame_length_option.py +1 -2
  233. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/webkit_response_timeout_option.py +3 -4
  234. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/webview_connect_retries_option.py +1 -2
  235. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/webview_connect_timeout_option.py +3 -4
  236. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/__init__.py +2 -0
  237. appium_python_client-6.0.2/appium/options/mac/mac2/app_path_option.py +38 -0
  238. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/arguments_option.py +2 -3
  239. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/base.py +5 -4
  240. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/bootstrap_root_option.py +1 -2
  241. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/environment_option.py +2 -3
  242. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/server_startup_timeout_option.py +3 -4
  243. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/show_server_logs_option.py +1 -2
  244. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/skip_app_kill_option.py +1 -2
  245. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/web_driver_agent_mac_url_option.py +1 -2
  246. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/windows/__init__.py +2 -0
  247. appium_python_client-6.0.2/appium/options/windows/windows/app_arguments_option.py +39 -0
  248. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/windows/windows/app_top_level_window_option.py +1 -2
  249. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/windows/windows/app_working_dir_option.py +1 -2
  250. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/windows/windows/base.py +5 -4
  251. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/windows/windows/create_session_timeout_option.py +3 -4
  252. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/windows/windows/expreimental_web_driver_option.py +1 -2
  253. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/windows/windows/wait_for_app_launch_option.py +3 -4
  254. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/protocols/webdriver/can_execute_commands.py +2 -5
  255. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/protocols/webdriver/can_execute_scripts.py +6 -13
  256. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/protocols/webdriver/can_find_elements.py +11 -7
  257. appium_python_client-6.0.2/appium/version.py +17 -0
  258. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/__init__.py +2 -0
  259. appium_python_client-6.0.2/appium/webdriver/appium_connection.py +65 -0
  260. appium_python_client-6.0.2/appium/webdriver/appium_service.py +334 -0
  261. appium_python_client-6.0.2/appium/webdriver/client_config.py +38 -0
  262. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/common/appiumby.py +27 -3
  263. appium_python_client-6.0.2/appium/webdriver/errorhandler.py +126 -0
  264. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/action_helpers.py +24 -21
  265. appium_python_client-6.0.2/appium/webdriver/extensions/android/activities.py +56 -0
  266. appium_python_client-6.0.2/appium/webdriver/extensions/android/common.py +34 -0
  267. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/display.py +6 -11
  268. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/gsm.py +14 -21
  269. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/nativekey.py +45 -1
  270. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/network.py +55 -32
  271. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/performance.py +15 -23
  272. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/power.py +15 -19
  273. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/sms.py +9 -12
  274. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/system_bars.py +7 -13
  275. appium_python_client-6.0.2/appium/webdriver/extensions/applications.py +192 -0
  276. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/clipboard.py +21 -24
  277. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/context.py +4 -7
  278. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/device_time.py +11 -19
  279. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/execute_driver.py +6 -9
  280. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/execute_mobile_command.py +5 -5
  281. appium_python_client-6.0.2/appium/webdriver/extensions/flutter_integration/__init__.py +13 -0
  282. appium_python_client-6.0.2/appium/webdriver/extensions/flutter_integration/flutter_commands.py +293 -0
  283. appium_python_client-6.0.2/appium/webdriver/extensions/flutter_integration/flutter_finder.py +55 -0
  284. appium_python_client-6.0.2/appium/webdriver/extensions/flutter_integration/scroll_directions.py +6 -0
  285. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/hw_actions.py +48 -44
  286. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/images_comparison.py +30 -13
  287. appium_python_client-6.0.2/appium/webdriver/extensions/keyboard.py +125 -0
  288. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/location.py +21 -26
  289. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/log_event.py +6 -9
  290. appium_python_client-6.0.2/appium/webdriver/extensions/logs.py +53 -0
  291. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/remote_fs.py +26 -33
  292. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/screen_record.py +17 -8
  293. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/session.py +3 -32
  294. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/settings.py +9 -13
  295. Appium-Python-Client-2.6.1/appium/webdriver/common/mobileby.py → appium_python_client-6.0.2/appium/webdriver/locator_converter.py +11 -5
  296. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/mobilecommand.py +2 -23
  297. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/switch_to.py +3 -13
  298. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/webdriver.py +151 -213
  299. appium_python_client-6.0.2/appium/webdriver/webelement.py +131 -0
  300. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/docs/Makefile +1 -1
  301. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/docs/README.md +0 -1
  302. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/docs/conf.py +3 -3
  303. appium_python_client-6.0.2/docs/generate.sh +4 -0
  304. appium_python_client-6.0.2/docs/index.rst +18 -0
  305. appium_python_client-6.0.2/docs/webdriver.common.rst +21 -0
  306. appium_python_client-6.0.2/docs/webdriver.extensions.flutter_integration.rst +37 -0
  307. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/docs/webdriver.extensions.rst +24 -24
  308. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/docs/webdriver.rst +32 -8
  309. appium_python_client-6.0.2/pyproject.toml +144 -0
  310. appium_python_client-6.0.2/uv.lock +1839 -0
  311. Appium-Python-Client-2.6.1/Appium_Python_Client.egg-info/PKG-INFO +0 -303
  312. Appium-Python-Client-2.6.1/Appium_Python_Client.egg-info/SOURCES.txt +0 -405
  313. Appium-Python-Client-2.6.1/Appium_Python_Client.egg-info/dependency_links.txt +0 -1
  314. Appium-Python-Client-2.6.1/Appium_Python_Client.egg-info/requires.txt +0 -1
  315. Appium-Python-Client-2.6.1/Appium_Python_Client.egg-info/top_level.txt +0 -1
  316. Appium-Python-Client-2.6.1/PKG-INFO +0 -303
  317. Appium-Python-Client-2.6.1/README.md +0 -273
  318. Appium-Python-Client-2.6.1/appium/protocols/protocol.py +0 -22
  319. Appium-Python-Client-2.6.1/appium/version.py +0 -1
  320. Appium-Python-Client-2.6.1/appium/webdriver/appium_connection.py +0 -54
  321. Appium-Python-Client-2.6.1/appium/webdriver/appium_service.py +0 -251
  322. Appium-Python-Client-2.6.1/appium/webdriver/common/multi_action.py +0 -97
  323. Appium-Python-Client-2.6.1/appium/webdriver/common/touch_action.py +0 -218
  324. Appium-Python-Client-2.6.1/appium/webdriver/errorhandler.py +0 -30
  325. Appium-Python-Client-2.6.1/appium/webdriver/extensions/android/activities.py +0 -100
  326. Appium-Python-Client-2.6.1/appium/webdriver/extensions/android/common.py +0 -71
  327. Appium-Python-Client-2.6.1/appium/webdriver/extensions/applications.py +0 -248
  328. Appium-Python-Client-2.6.1/appium/webdriver/extensions/ime.py +0 -99
  329. Appium-Python-Client-2.6.1/appium/webdriver/extensions/keyboard.py +0 -146
  330. Appium-Python-Client-2.6.1/appium/webdriver/webelement.py +0 -219
  331. Appium-Python-Client-2.6.1/docs/.DS_Store +0 -0
  332. Appium-Python-Client-2.6.1/docs/_build/doctrees/appium.common.doctree +0 -0
  333. Appium-Python-Client-2.6.1/docs/_build/doctrees/appium.doctree +0 -0
  334. Appium-Python-Client-2.6.1/docs/_build/doctrees/appium.webdriver.common.doctree +0 -0
  335. Appium-Python-Client-2.6.1/docs/_build/doctrees/appium.webdriver.doctree +0 -0
  336. Appium-Python-Client-2.6.1/docs/_build/doctrees/appium.webdriver.extensions.android.doctree +0 -0
  337. Appium-Python-Client-2.6.1/docs/_build/doctrees/appium.webdriver.extensions.doctree +0 -0
  338. Appium-Python-Client-2.6.1/docs/_build/doctrees/appium.webdriver.extensions.search_context.doctree +0 -0
  339. Appium-Python-Client-2.6.1/docs/_build/doctrees/environment.pickle +0 -0
  340. Appium-Python-Client-2.6.1/docs/_build/doctrees/index.doctree +0 -0
  341. Appium-Python-Client-2.6.1/docs/_build/html/.buildinfo +0 -4
  342. Appium-Python-Client-2.6.1/docs/_build/html/.nojekyll +0 -0
  343. Appium-Python-Client-2.6.1/docs/_build/html/_sources/appium.common.rst.txt +0 -37
  344. Appium-Python-Client-2.6.1/docs/_build/html/_sources/appium.rst.txt +0 -30
  345. Appium-Python-Client-2.6.1/docs/_build/html/_sources/appium.webdriver.common.rst.txt +0 -45
  346. Appium-Python-Client-2.6.1/docs/_build/html/_sources/appium.webdriver.extensions.android.rst.txt +0 -93
  347. Appium-Python-Client-2.6.1/docs/_build/html/_sources/appium.webdriver.extensions.rst.txt +0 -158
  348. Appium-Python-Client-2.6.1/docs/_build/html/_sources/appium.webdriver.extensions.search_context.rst.txt +0 -61
  349. Appium-Python-Client-2.6.1/docs/_build/html/_sources/appium.webdriver.rst.txt +0 -110
  350. Appium-Python-Client-2.6.1/docs/_build/html/_sources/index.rst.txt +0 -21
  351. Appium-Python-Client-2.6.1/docs/_build/html/_static/basic.css +0 -905
  352. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/badge_only.css +0 -1
  353. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  354. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  355. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  356. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  357. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  358. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +0 -2671
  359. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  360. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  361. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  362. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  363. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  364. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/lato-bold.woff +0 -0
  365. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  366. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  367. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  368. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/lato-normal.woff +0 -0
  369. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  370. Appium-Python-Client-2.6.1/docs/_build/html/_static/css/theme.css +0 -4
  371. Appium-Python-Client-2.6.1/docs/_build/html/_static/doctools.js +0 -323
  372. Appium-Python-Client-2.6.1/docs/_build/html/_static/documentation_options.js +0 -12
  373. Appium-Python-Client-2.6.1/docs/_build/html/_static/file.png +0 -0
  374. Appium-Python-Client-2.6.1/docs/_build/html/_static/jquery-3.5.1.js +0 -10872
  375. Appium-Python-Client-2.6.1/docs/_build/html/_static/jquery.js +0 -2
  376. Appium-Python-Client-2.6.1/docs/_build/html/_static/js/badge_only.js +0 -1
  377. Appium-Python-Client-2.6.1/docs/_build/html/_static/js/html5shiv-printshiv.min.js +0 -4
  378. Appium-Python-Client-2.6.1/docs/_build/html/_static/js/html5shiv.min.js +0 -4
  379. Appium-Python-Client-2.6.1/docs/_build/html/_static/js/theme.js +0 -1
  380. Appium-Python-Client-2.6.1/docs/_build/html/_static/language_data.js +0 -297
  381. Appium-Python-Client-2.6.1/docs/_build/html/_static/minus.png +0 -0
  382. Appium-Python-Client-2.6.1/docs/_build/html/_static/plus.png +0 -0
  383. Appium-Python-Client-2.6.1/docs/_build/html/_static/pygments.css +0 -74
  384. Appium-Python-Client-2.6.1/docs/_build/html/_static/searchtools.js +0 -529
  385. Appium-Python-Client-2.6.1/docs/_build/html/_static/underscore-1.13.1.js +0 -2042
  386. Appium-Python-Client-2.6.1/docs/_build/html/_static/underscore.js +0 -6
  387. Appium-Python-Client-2.6.1/docs/_build/html/appium.common.html +0 -175
  388. Appium-Python-Client-2.6.1/docs/_build/html/appium.html +0 -190
  389. Appium-Python-Client-2.6.1/docs/_build/html/appium.webdriver.common.html +0 -423
  390. Appium-Python-Client-2.6.1/docs/_build/html/appium.webdriver.extensions.android.html +0 -2311
  391. Appium-Python-Client-2.6.1/docs/_build/html/appium.webdriver.extensions.html +0 -1873
  392. Appium-Python-Client-2.6.1/docs/_build/html/appium.webdriver.extensions.search_context.html +0 -737
  393. Appium-Python-Client-2.6.1/docs/_build/html/appium.webdriver.html +0 -1388
  394. Appium-Python-Client-2.6.1/docs/_build/html/genindex.html +0 -2141
  395. Appium-Python-Client-2.6.1/docs/_build/html/index.html +0 -149
  396. Appium-Python-Client-2.6.1/docs/_build/html/objects.inv +0 -0
  397. Appium-Python-Client-2.6.1/docs/_build/html/py-modindex.html +0 -400
  398. Appium-Python-Client-2.6.1/docs/_build/html/search.html +0 -115
  399. Appium-Python-Client-2.6.1/docs/_build/html/searchindex.js +0 -1
  400. Appium-Python-Client-2.6.1/docs/appium.common.rst +0 -37
  401. Appium-Python-Client-2.6.1/docs/appium.rst +0 -30
  402. Appium-Python-Client-2.6.1/docs/appium.webdriver.common.rst +0 -45
  403. Appium-Python-Client-2.6.1/docs/appium.webdriver.extensions.android.rst +0 -93
  404. Appium-Python-Client-2.6.1/docs/appium.webdriver.extensions.rst +0 -158
  405. Appium-Python-Client-2.6.1/docs/appium.webdriver.extensions.search_context.rst +0 -61
  406. Appium-Python-Client-2.6.1/docs/appium.webdriver.rst +0 -110
  407. Appium-Python-Client-2.6.1/docs/generate.sh +0 -4
  408. Appium-Python-Client-2.6.1/docs/index.rst +0 -21
  409. Appium-Python-Client-2.6.1/docs/requirements.txt +0 -2
  410. Appium-Python-Client-2.6.1/docs/webdriver.common.rst +0 -37
  411. Appium-Python-Client-2.6.1/docs/webdriver.extensions.search_context.rst +0 -61
  412. Appium-Python-Client-2.6.1/setup.cfg +0 -24
  413. Appium-Python-Client-2.6.1/setup.py +0 -52
  414. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/LICENSE +0 -0
  415. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/MANIFEST.in +0 -0
  416. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/__init__.py +0 -0
  417. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/common/__init__.py +0 -0
  418. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/common/exceptions.py +0 -0
  419. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/common/logger.py +0 -0
  420. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/__init__.py +0 -0
  421. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/__init__.py +0 -0
  422. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/adb/__init__.py +0 -0
  423. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/app/__init__.py +0 -0
  424. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/avd/__init__.py +0 -0
  425. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/context/__init__.py +0 -0
  426. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/localization/__init__.py +0 -0
  427. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/locking/__init__.py +0 -0
  428. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/mjpeg/__init__.py +0 -0
  429. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/other/__init__.py +0 -0
  430. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/common/signing/__init__.py +0 -0
  431. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/espresso/__init__.py +0 -0
  432. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/android/uiautomator2/__init__.py +0 -0
  433. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/safari/__init__.py +0 -0
  434. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/__init__.py +0 -0
  435. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/app/__init__.py +0 -0
  436. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/general/__init__.py +0 -0
  437. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/other/__init__.py +0 -0
  438. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/simulator/__init__.py +0 -0
  439. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/wda/__init__.py +0 -0
  440. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/ios/xcuitest/webview/__init__.py +0 -0
  441. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/mac/mac2/__init__.py +0 -0
  442. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/options/windows/windows/__init__.py +0 -0
  443. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/protocols/__init__.py +0 -0
  444. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/protocols/webdriver/__init__.py +0 -0
  445. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/py.typed +0 -0
  446. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/applicationstate.py +0 -0
  447. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/clipboard_content_type.py +0 -0
  448. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/command_method.py +0 -0
  449. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/common/__init__.py +0 -0
  450. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/connectiontype.py +0 -0
  451. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/__init__.py +0 -0
  452. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/appium/webdriver/extensions/android/__init__.py +0 -0
  453. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/docs/make.bat +0 -0
  454. {Appium-Python-Client-2.6.1 → appium_python_client-6.0.2}/docs/webdriver.extensions.android.rst +11 -11
@@ -0,0 +1,65 @@
1
+ name: 'Start Appium Server'
2
+ description: 'Start Appium server with configurable arguments and wait for startup'
3
+
4
+ inputs:
5
+ port:
6
+ description: 'Appium server port'
7
+ required: false
8
+ default: '4723'
9
+ host:
10
+ description: 'Appium server host'
11
+ required: false
12
+ default: '127.0.0.1'
13
+ timeout:
14
+ description: 'Timeout in seconds to wait for server startup'
15
+ required: false
16
+ default: '25'
17
+ server_args:
18
+ description: 'Additional server arguments (space-separated)'
19
+ required: false
20
+ default: ''
21
+ log_file:
22
+ description: 'Log file name'
23
+ required: false
24
+ default: 'appium.log'
25
+
26
+ runs:
27
+ using: 'composite'
28
+ steps:
29
+ - name: Start Appium server
30
+ shell: bash
31
+ run: |
32
+ nohup appium server \
33
+ --port=${{ inputs.port }} \
34
+ --address=${{ inputs.host }} \
35
+ --log-no-colors \
36
+ --log-timestamp \
37
+ --keep-alive-timeout 1200 \
38
+ ${{ inputs.server_args }} \
39
+ 2>&1 > ${{ inputs.log_file }} &
40
+
41
+ - name: Wait for Appium server to start
42
+ shell: bash
43
+ run: |
44
+ TIMEOUT_SEC=${{ inputs.timeout }}
45
+ INTERVAL_SEC=1
46
+
47
+ start_time=$(date +%s)
48
+ while true; do
49
+ current_time=$(date +%s)
50
+ elapsed=$((current_time - start_time))
51
+
52
+ if nc -z ${{ inputs.host }} ${{ inputs.port }}; then
53
+ echo "Appium server is running after $elapsed seconds"
54
+ cat ${{ inputs.log_file }}
55
+ exit 0
56
+ fi
57
+
58
+ if [[ "$elapsed" -ge "$TIMEOUT_SEC" ]]; then
59
+ echo "${elapsed} seconds timeout reached: Appium server is NOT running"
60
+ exit 1
61
+ fi
62
+
63
+ echo "Waiting $elapsed seconds for Appium server to start..."
64
+ sleep "$INTERVAL_SEC"
65
+ done
@@ -0,0 +1,17 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: uv
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: "11:00"
8
+ open-pull-requests-limit: 10
9
+ - package-ecosystem: github-actions
10
+ directory: "/"
11
+ schedule:
12
+ interval: weekly
13
+ time: "11:00"
14
+ open-pull-requests-limit: 10
15
+ commit-message:
16
+ prefix: "ci"
17
+ include: "scope"
@@ -0,0 +1,23 @@
1
+ ## The problem
2
+
3
+ Briefly describe the issue you are experiencing (or the feature you want to see added to Appium). Tell us what you were trying to do and what happened instead. Remember, this is _not_ a place to ask questions. For that, go to http://discuss.appium.io!
4
+
5
+
6
+ ## Environment
7
+ - Appium version (or git revision) that exhibits the issue:
8
+ - Last Appium version that did not exhibit the issue (if applicable):
9
+ - Desktop OS/version used to run Appium:
10
+ - Node.js version (unless using Appium.app|exe):
11
+ - Mobile platform/version under test:
12
+ - Real device or emulator/simulator:
13
+ - Appium CLI or Appium.app|exe:
14
+
15
+ ## Details
16
+
17
+ If necessary, describe the problem you have been experiencing in more detail.
18
+
19
+ ## Link to Appium Logs
20
+
21
+ Create a [GIST](https://gist.github.com) which is a paste of your _full_ Appium logs, and link them here.
22
+
23
+ ## Code To reproduce issue
@@ -0,0 +1,368 @@
1
+ name: Functional Tests
2
+
3
+ on:
4
+ # Run by manual at this time
5
+ workflow_dispatch:
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ env:
14
+ APPIUM_TEST_SERVER_PORT: '4723'
15
+ APPIUM_TEST_SERVER_HOST: '127.0.0.1'
16
+ PYTHONUNBUFFERED: 1
17
+
18
+ jobs:
19
+ ios_test:
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ test_targets:
24
+ - target: test/functional/ios/safari_tests.py
25
+ name: func_test_ios1
26
+
27
+ runs-on: macos-15
28
+
29
+ # Please make sure the available Xcode versions and iOS versions
30
+ # on the runner images. https://github.com/actions/runner-images
31
+ env:
32
+ XCODE_VERSION: '16.4'
33
+ IOS_VERSION: '18.5'
34
+ IPHONE_MODEL: 'iPhone 16 Plus'
35
+ PREBUILT_WDA_PATH: ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app
36
+
37
+ steps:
38
+ - uses: actions/checkout@v7
39
+
40
+ - name: Install Node.js
41
+ uses: actions/setup-node@v7
42
+ with:
43
+ node-version: 'lts/*'
44
+
45
+ - name: Select Xcode
46
+ uses: maxim-lobanov/setup-xcode@v1
47
+ with:
48
+ xcode-version: ${{ env.XCODE_VERSION }}
49
+
50
+ - name: Install Appium and drivers
51
+ run: |
52
+ npm install -g appium
53
+ appium driver install xcuitest
54
+ appium driver run xcuitest download-wda-sim --platform=ios --outdir=$(dirname "$PREBUILT_WDA_PATH")
55
+
56
+ - name: Start Appium server
57
+ uses: ./.github/actions/setup-appium-server
58
+ with:
59
+ port: ${{ env.APPIUM_TEST_SERVER_PORT }}
60
+ host: ${{ env.APPIUM_TEST_SERVER_HOST }}
61
+ server_args: '--relaxed-security'
62
+
63
+ - name: Start iOS Simulator UI
64
+ run: |
65
+ defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
66
+ open -Fn "$(xcode-select --print-path)/Applications/Simulator.app"
67
+ - name: Prepare iOS simulator
68
+ uses: futureware-tech/simulator-action@v5
69
+ with:
70
+ model: ${{ env.IPHONE_MODEL }}
71
+ os_version: ${{ env.IOS_VERSION }}
72
+ wait_for_boot: true
73
+ shutdown_after_job: false
74
+
75
+ - name: Finalize iOS simulator boot
76
+ run: xcrun --sdk iphonesimulator --show-sdk-version
77
+
78
+ - name: Set up Python
79
+ uses: actions/setup-python@v7
80
+ with:
81
+ python-version: 3.14
82
+
83
+ - name: Cache uv modules
84
+ uses: actions/cache@v6
85
+ with:
86
+ path: |
87
+ ~/.cache/uv
88
+ .venv
89
+ key: ${{ runner.os }}-uv-shared-${{ hashFiles('**/uv.lock') }}
90
+ restore-keys: |
91
+ ${{ runner.os }}-uv-shared-
92
+
93
+ - name: Install uv
94
+ run: make install-uv
95
+
96
+ - name: Run Tests
97
+ run: |
98
+ uv run pytest -v ${{ matrix.test_targets.target}} \
99
+ --doctest-modules \
100
+ --junitxml=junit/test-results.xml \
101
+ --cov=com \
102
+ --cov-report=xml \
103
+ --cov-report=html
104
+ env:
105
+ LOCAL_PREBUILT_WDA: ${{ env.PREBUILT_WDA_PATH }}
106
+
107
+ - name: Save server output
108
+ if: ${{ always() }}
109
+ uses: actions/upload-artifact@master
110
+ with:
111
+ name: appium-ios-${{matrix.test_targets.name}}.log
112
+ path: appium.log
113
+
114
+
115
+ android_test:
116
+ strategy:
117
+ fail-fast: false
118
+ matrix:
119
+ test_targets:
120
+ - target: test/functional/android/appium_service_tests.py test/functional/android/chrome_tests.py test/functional/android/bidi_tests.py
121
+ name: func_test_android1
122
+
123
+ runs-on: ubuntu-latest
124
+
125
+ env:
126
+ API_LEVEL: 29
127
+ ARCH: x86
128
+
129
+ steps:
130
+ - uses: actions/checkout@v7
131
+
132
+ - uses: actions/setup-java@v6.0.0
133
+ with:
134
+ distribution: 'temurin'
135
+ java-version: '17'
136
+
137
+ - name: Install ffmpeg
138
+ run: |
139
+ sudo apt-get update
140
+ sudo apt-get install -y ffmpeg
141
+
142
+ - name: Install Node.js
143
+ uses: actions/setup-node@v7
144
+ with:
145
+ node-version: 'lts/*'
146
+
147
+ - name: Install Appium and drivers
148
+ run: |
149
+ npm install -g appium
150
+ appium driver install uiautomator2
151
+ appium driver install espresso
152
+ appium plugin install execute-driver
153
+
154
+ - name: Start Appium server
155
+ uses: ./.github/actions/setup-appium-server
156
+ with:
157
+ port: ${{ env.APPIUM_TEST_SERVER_PORT }}
158
+ host: ${{ env.APPIUM_TEST_SERVER_HOST }}
159
+ server_args: '--relaxed-security --use-plugins=execute-driver'
160
+
161
+ - name: Enable KVM group perms
162
+ run: |
163
+ echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
164
+ sudo udevadm control --reload-rules
165
+ sudo udevadm trigger --name-match=kvm
166
+
167
+ - name: AVD cache
168
+ uses: actions/cache@v6
169
+ id: avd-cache
170
+ with:
171
+ path: |
172
+ ~/.android/avd/*
173
+ ~/.android/adb*
174
+ key: avd-${{ env.API_LEVEL }}
175
+ - name: Create AVD and generate snapshot for caching
176
+ if: steps.avd-cache.outputs.cache-hit != 'true'
177
+ uses: reactivecircus/android-emulator-runner@v2
178
+ with:
179
+ api-level: ${{ env.API_LEVEL }}
180
+ arch: ${{ env.ARCH }}
181
+ target: google_apis
182
+ force-avd-creation: false
183
+ emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
184
+ disable-animations: false
185
+ script: echo "Generated AVD snapshot for caching."
186
+
187
+ - name: Set up Python 3.14
188
+ uses: actions/setup-python@v7
189
+ with:
190
+ python-version: 3.14
191
+
192
+ - name: Cache uv modules
193
+ uses: actions/cache@v6
194
+ with:
195
+ path: |
196
+ ~/.cache/uv
197
+ .venv
198
+ key: ${{ runner.os }}-uv-shared-${{ hashFiles('**/uv.lock') }}
199
+ restore-keys: |
200
+ ${{ runner.os }}-uv-shared-
201
+
202
+ - name: Run tests
203
+ uses: reactivecircus/android-emulator-runner@v2
204
+ with:
205
+ api-level: ${{ env.API_LEVEL }}
206
+ arch: ${{ env.ARCH }}
207
+ script: |
208
+ make install-uv
209
+ uv run pytest -v ${{ matrix.test_targets.target}} --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
210
+ target: google_apis
211
+ profile: Nexus 5X
212
+ disable-spellchecker: true
213
+ disable-animations: true
214
+
215
+ env:
216
+ ANDROID_SDK_VERSION: ${{ env.API_LEVEL }}
217
+ APPIUM_DRIVER: ${{matrix.test_targets.automation_name}}
218
+ IGNORE_VERSION_SKIP: true
219
+ CI: true
220
+
221
+ - name: Save server output
222
+ if: ${{ always() }}
223
+ uses: actions/upload-artifact@master
224
+ with:
225
+ name: appium-android-${{matrix.test_targets.name}}.log
226
+ path: appium.log
227
+
228
+ flutter_e2e_test:
229
+ # These flutter integration driver tests are maintained by: MummanaSubramanya
230
+ strategy:
231
+ fail-fast: false
232
+ matrix:
233
+ include:
234
+ - platform: macos-15
235
+ e2e-tests: flutter-ios
236
+ - platform: ubuntu-latest
237
+ e2e-tests: flutter-android
238
+
239
+ runs-on: ${{ matrix.platform }}
240
+
241
+ env:
242
+ API_LEVEL: 28
243
+ ARCH: x86
244
+ CI: true
245
+ XCODE_VERSION: 16.4
246
+ IOS_VERSION: 18.5
247
+ IPHONE_MODEL: iPhone 16
248
+ FLUTTER_ANDROID_APP: "https://github.com/AppiumTestDistribution/appium-flutter-server/releases/download/0.0.33/app-debug.apk"
249
+ FLUTTER_IOS_APP: "https://github.com/AppiumTestDistribution/appium-flutter-server/releases/download/0.0.33/ios.zip"
250
+ PREBUILT_WDA_PATH: ${{ github.workspace }}/wda/WebDriverAgentRunner-Runner.app
251
+
252
+ steps:
253
+
254
+ - uses: actions/checkout@v7
255
+
256
+ - uses: actions/setup-java@v6.0.0
257
+ if: matrix.e2e-tests == 'flutter-android'
258
+ with:
259
+ distribution: 'zulu'
260
+ java-version: '17'
261
+
262
+ - name: Enable KVM group perms
263
+ if: matrix.e2e-tests == 'flutter-android'
264
+ run: |
265
+ echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
266
+ sudo udevadm control --reload-rules
267
+ sudo udevadm trigger --name-match=kvm
268
+
269
+ - name: Set up Python 3.14
270
+ uses: actions/setup-python@v7
271
+ with:
272
+ python-version: 3.14
273
+
274
+ - name: Install Node.js
275
+ uses: actions/setup-node@v7
276
+ with:
277
+ node-version: 'lts/*'
278
+
279
+ - name: Select Xcode
280
+ if: matrix.e2e-tests == 'flutter-ios'
281
+ uses: maxim-lobanov/setup-xcode@v1
282
+ with:
283
+ xcode-version: ${{ env.XCODE_VERSION }}
284
+
285
+ - name: Install Appium and drivers
286
+ if: matrix.e2e-tests == 'flutter-android'
287
+ run: |
288
+ npm install --location=global appium
289
+ appium driver install uiautomator2
290
+ appium driver install appium-flutter-integration-driver --source npm
291
+
292
+ - name: Install Appium and drivers
293
+ if: matrix.e2e-tests == 'flutter-ios'
294
+ run: |
295
+ npm install --location=global appium
296
+ appium driver install xcuitest
297
+ appium driver run xcuitest download-wda-sim --platform=ios --outdir=$(dirname "$PREBUILT_WDA_PATH")
298
+ appium driver install appium-flutter-integration-driver --source npm
299
+
300
+ - name: Start Appium server
301
+ uses: ./.github/actions/setup-appium-server
302
+ with:
303
+ port: ${{ env.APPIUM_TEST_SERVER_PORT }}
304
+ host: ${{ env.APPIUM_TEST_SERVER_HOST }}
305
+ server_args: '--relaxed-security'
306
+ log_file: appium-${{ matrix.e2e-tests }}.log
307
+
308
+ - name: Cache uv modules
309
+ uses: actions/cache@v6
310
+ with:
311
+ path: |
312
+ ~/.cache/uv
313
+ .venv
314
+ key: ${{ runner.os }}-uv-shared-${{ hashFiles('**/uv.lock') }}
315
+ restore-keys: |
316
+ ${{ runner.os }}-uv-shared-
317
+
318
+ - name: Run Android tests
319
+ if: matrix.e2e-tests == 'flutter-android'
320
+ uses: reactivecircus/android-emulator-runner@v2
321
+ with:
322
+ api-level: ${{ env.API_LEVEL }}
323
+ script: |
324
+ make install-uv
325
+ uv run pytest -v test/functional/flutter_integration/*_test.py --doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html
326
+ target: default
327
+ disable-spellchecker: true
328
+ disable-animations: true
329
+
330
+ - name: Start iOS Simulator UI
331
+ if: matrix.e2e-tests == 'flutter-ios'
332
+ run: |
333
+ defaults write com.apple.iphonesimulator PasteboardAutomaticSync -bool false
334
+ open -Fn "$(xcode-select --print-path)/Applications/Simulator.app"
335
+
336
+ - uses: futureware-tech/simulator-action@v5
337
+ if: matrix.e2e-tests == 'flutter-ios'
338
+ with:
339
+ # https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md
340
+ model: ${{ env.IPHONE_MODEL }}
341
+ os_version: ${{ env.IOS_VERSION }}
342
+ wait_for_boot: true
343
+ shutdown_after_job: false
344
+
345
+ - name: Finalize iOS simulator boot
346
+ if: matrix.e2e-tests == 'flutter-ios'
347
+ run: xcrun --sdk iphonesimulator --show-sdk-version
348
+
349
+ - name: Run IOS tests
350
+ if: matrix.e2e-tests == 'flutter-ios'
351
+ run: |
352
+ make install-uv
353
+ export PLATFORM=ios
354
+ uv run pytest -v test/functional/flutter_integration/*_test.py \
355
+ --doctest-modules \
356
+ --junitxml=junit/test-results.xml \
357
+ --cov=com \
358
+ --cov-report=xml \
359
+ --cov-report=html
360
+ env:
361
+ LOCAL_PREBUILT_WDA: ${{ env.PREBUILT_WDA_PATH }}
362
+
363
+ - name: Save server output
364
+ if: ${{ always() }}
365
+ uses: actions/upload-artifact@master
366
+ with:
367
+ name: appium-${{ matrix.e2e-tests }}.log
368
+ path: appium-${{ matrix.e2e-tests }}.log
@@ -0,0 +1,31 @@
1
+ name: Update uv.lock
2
+
3
+ on:
4
+ pull_request:
5
+ types: [ opened, synchronize ]
6
+ paths:
7
+ - 'pyproject.toml'
8
+
9
+ permissions:
10
+ contents: write
11
+ pull-requests: write
12
+
13
+ jobs:
14
+ uv-lock-update:
15
+ if: github.actor == 'dependabot[bot]'
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v7
19
+ with:
20
+ token: ${{ secrets.GITHUB_TOKEN }}
21
+ ref: ${{ github.head_ref }}
22
+ - name: Set up Python
23
+ uses: actions/setup-python@v7
24
+ with:
25
+ python-version: '3.12'
26
+ - name: Install uv
27
+ run: make install-uv
28
+ - run: uv lock
29
+ - uses: stefanzweifel/git-auto-commit-action@v7
30
+ with:
31
+ commit_message: "chore: Refresh uv.lock"
@@ -0,0 +1,10 @@
1
+ name: Conventional Commits
2
+ on:
3
+ pull_request:
4
+ types: [opened, edited, synchronize, reopened]
5
+
6
+ jobs:
7
+ lint:
8
+ uses: appium/appium-workflows/.github/workflows/pr-title.yml@main
9
+ with:
10
+ config-preset: angular
@@ -0,0 +1,50 @@
1
+ name: Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [ master ]
7
+
8
+ permissions:
9
+ contents: write
10
+ id-token: write
11
+
12
+ jobs:
13
+ release:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v7
17
+
18
+ - name: Set up Python
19
+ uses: actions/setup-python@v7
20
+ with:
21
+ python-version: '3.12'
22
+
23
+ - name: Install uv
24
+ run: make install-uv
25
+
26
+ - name: Semantic Release Version
27
+ env:
28
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29
+ run: uv run semantic-release version
30
+
31
+ - name: Check if dist directory exists
32
+ id: check_dist
33
+ run: |
34
+ if [ -d "dist" ]; then
35
+ echo "exists=true" >> $GITHUB_OUTPUT
36
+ else
37
+ echo "exists=false" >> $GITHUB_OUTPUT
38
+ fi
39
+
40
+ - name: Publish to PyPI
41
+ if: steps.check_dist.outputs.exists == 'true'
42
+ uses: pypa/gh-action-pypi-publish@release/v1
43
+ with:
44
+ packages-dir: dist/
45
+
46
+ - name: Publish GitHub Release
47
+ if: steps.check_dist.outputs.exists == 'true'
48
+ env:
49
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50
+ run: uv run semantic-release publish
@@ -0,0 +1,36 @@
1
+ name: Unit tests
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ branches: [ master ]
7
+ pull_request:
8
+ branches: [ master ]
9
+
10
+ jobs:
11
+ test-ubuntu:
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ matrix:
15
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
16
+ steps:
17
+ - uses: actions/checkout@v7
18
+ - name: Set up Python ${{ matrix.python-version }}
19
+ uses: actions/setup-python@v7
20
+ with:
21
+ python-version: ${{ matrix.python-version }}
22
+ - name: Cache uv modules
23
+ uses: actions/cache@v6
24
+ with:
25
+ path: |
26
+ ~/.cache/uv
27
+ .venv
28
+ key: ${{ runner.os }}-uv-shared-${{ hashFiles('**/uv.lock') }}
29
+ restore-keys: |
30
+ ${{ runner.os }}-uv-shared-
31
+ - name: Install uv
32
+ run: make install-uv
33
+ - name: Run Checks
34
+ run: make check
35
+ - name: Run Unit Tests
36
+ run: make unittest
@@ -0,0 +1,30 @@
1
+ .DS_Store
2
+
3
+ *~
4
+ *#
5
+ *._*
6
+ *.log
7
+ *.log.*
8
+ _*/
9
+
10
+ *.pyc
11
+ *.egg-info
12
+
13
+ MANIFEST
14
+
15
+ build
16
+ dist
17
+
18
+ # Cache
19
+ .cache
20
+ __pycache__
21
+ .idea
22
+ .pytest_cache
23
+ .mypy_cache
24
+
25
+ # Virtual Environments
26
+ venv*
27
+ .venv
28
+ .tox
29
+
30
+ .coverage
@@ -0,0 +1,15 @@
1
+ repos:
2
+ - repo: local
3
+ hooks:
4
+ - id: ruff-check
5
+ name: ruff check
6
+ entry: uv run ruff check
7
+ language: system
8
+ types_or: [python, pyi]
9
+ args: [--fix, --show-fixes]
10
+
11
+ - id: ruff-format
12
+ name: ruff format
13
+ entry: uv run ruff format
14
+ language: system
15
+ types_or: [python, pyi]
@@ -0,0 +1,29 @@
1
+ line-length = 128
2
+ indent-width = 4
3
+
4
+ [lint]
5
+ select = [
6
+ "F", # Pyflakes
7
+ "PL", # Pylint
8
+ "I", # isort
9
+ "PERF", # perflint
10
+ "FURB", # Refurb
11
+ "SIM", # Simplify
12
+ "UP", # Upgrade
13
+ ]
14
+
15
+ [lint.per-file-ignores]
16
+ "__init__.py" = [
17
+ # import violations
18
+ "E402"
19
+ ]
20
+ "**/{test,docs}/*" = [
21
+ # https://docs.astral.sh/ruff/rules/magic-value-comparison/
22
+ "PLR2004"
23
+ ]
24
+
25
+ [lint.pylint]
26
+ max-args = 6
27
+
28
+ [format]
29
+ quote-style = "single"