Appium-Python-Client 5.2.0__py3-none-any.whl

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 (324) hide show
  1. appium/__init__.py +17 -0
  2. appium/common/__init__.py +17 -0
  3. appium/common/exceptions.py +26 -0
  4. appium/common/helper.py +42 -0
  5. appium/common/logger.py +28 -0
  6. appium/options/__init__.py +0 -0
  7. appium/options/android/__init__.py +2 -0
  8. appium/options/android/common/__init__.py +0 -0
  9. appium/options/android/common/adb/__init__.py +0 -0
  10. appium/options/android/common/adb/adb_exec_timeout_option.py +41 -0
  11. appium/options/android/common/adb/adb_port_option.py +38 -0
  12. appium/options/android/common/adb/allow_delay_adb_option.py +39 -0
  13. appium/options/android/common/adb/build_tools_version_option.py +42 -0
  14. appium/options/android/common/adb/clear_device_logs_on_start_option.py +40 -0
  15. appium/options/android/common/adb/ignore_hidden_api_policy_error_option.py +40 -0
  16. appium/options/android/common/adb/logcat_filter_specs_option.py +42 -0
  17. appium/options/android/common/adb/logcat_format_option.py +39 -0
  18. appium/options/android/common/adb/mock_location_app_option.py +42 -0
  19. appium/options/android/common/adb/remote_adb_host_option.py +39 -0
  20. appium/options/android/common/adb/skip_logcat_capture_option.py +40 -0
  21. appium/options/android/common/adb/suppress_kill_server_option.py +39 -0
  22. appium/options/android/common/app/__init__.py +0 -0
  23. appium/options/android/common/app/allow_test_packages_option.py +40 -0
  24. appium/options/android/common/app/android_install_timeout_option.py +43 -0
  25. appium/options/android/common/app/app_activity_option.py +39 -0
  26. appium/options/android/common/app/app_package_option.py +39 -0
  27. appium/options/android/common/app/app_wait_activity_option.py +40 -0
  28. appium/options/android/common/app/app_wait_duration_option.py +41 -0
  29. appium/options/android/common/app/app_wait_for_launch_option.py +41 -0
  30. appium/options/android/common/app/app_wait_package_option.py +40 -0
  31. appium/options/android/common/app/auto_grant_premissions_option.py +40 -0
  32. appium/options/android/common/app/enforce_app_install_option.py +40 -0
  33. appium/options/android/common/app/intent_action_option.py +40 -0
  34. appium/options/android/common/app/intent_category_option.py +40 -0
  35. appium/options/android/common/app/intent_flags_option.py +40 -0
  36. appium/options/android/common/app/optional_intent_arguments_option.py +40 -0
  37. appium/options/android/common/app/remote_apps_cache_limit_option.py +42 -0
  38. appium/options/android/common/app/uninstall_other_packages_option.py +39 -0
  39. appium/options/android/common/avd/__init__.py +0 -0
  40. appium/options/android/common/avd/avd_args_option.py +38 -0
  41. appium/options/android/common/avd/avd_env_option.py +38 -0
  42. appium/options/android/common/avd/avd_launch_timeout_option.py +41 -0
  43. appium/options/android/common/avd/avd_option.py +41 -0
  44. appium/options/android/common/avd/avd_ready_timeout_option.py +41 -0
  45. appium/options/android/common/avd/gps_enabled_option.py +39 -0
  46. appium/options/android/common/avd/network_speed_option.py +41 -0
  47. appium/options/android/common/context/__init__.py +0 -0
  48. appium/options/android/common/context/auto_webview_timeout_option.py +41 -0
  49. appium/options/android/common/context/chrome_logging_prefs_option.py +41 -0
  50. appium/options/android/common/context/chrome_options_option.py +40 -0
  51. appium/options/android/common/context/chromedriver_args_option.py +41 -0
  52. appium/options/android/common/context/chromedriver_chrome_mapping_file_option.py +43 -0
  53. appium/options/android/common/context/chromedriver_disable_build_check_option.py +41 -0
  54. appium/options/android/common/context/chromedriver_executable_dir_option.py +43 -0
  55. appium/options/android/common/context/chromedriver_executable_option.py +38 -0
  56. appium/options/android/common/context/chromedriver_port_option.py +39 -0
  57. appium/options/android/common/context/chromedriver_ports_option.py +39 -0
  58. appium/options/android/common/context/chromedriver_use_system_executable_option.py +40 -0
  59. appium/options/android/common/context/ensure_webviews_have_pages_option.py +40 -0
  60. appium/options/android/common/context/extract_chrome_android_package_from_context_name_option.py +40 -0
  61. appium/options/android/common/context/native_web_screenshot_option.py +40 -0
  62. appium/options/android/common/context/recreate_chrome_driver_sessions_option.py +41 -0
  63. appium/options/android/common/context/show_chromedriver_log_option.py +39 -0
  64. appium/options/android/common/context/webview_devtools_port_option.py +40 -0
  65. appium/options/android/common/localization/__init__.py +0 -0
  66. appium/options/android/common/localization/locale_script_option.py +40 -0
  67. appium/options/android/common/locking/__init__.py +0 -0
  68. appium/options/android/common/locking/skip_unlock_option.py +42 -0
  69. appium/options/android/common/locking/unlock_key_option.py +40 -0
  70. appium/options/android/common/locking/unlock_strategy_option.py +40 -0
  71. appium/options/android/common/locking/unlock_success_timeout_option.py +43 -0
  72. appium/options/android/common/locking/unlock_type_option.py +40 -0
  73. appium/options/android/common/mjpeg/__init__.py +0 -0
  74. appium/options/android/common/mjpeg/mjpeg_screenshot_url_option.py +40 -0
  75. appium/options/android/common/other/__init__.py +0 -0
  76. appium/options/android/common/other/disable_suppress_accessibility_service_option.py +40 -0
  77. appium/options/android/common/other/user_profile_option.py +42 -0
  78. appium/options/android/common/signing/__init__.py +0 -0
  79. appium/options/android/common/signing/key_alias_option.py +40 -0
  80. appium/options/android/common/signing/key_password_option.py +40 -0
  81. appium/options/android/common/signing/keystore_password_option.py +40 -0
  82. appium/options/android/common/signing/keystore_path_option.py +40 -0
  83. appium/options/android/common/signing/no_sign_option.py +42 -0
  84. appium/options/android/common/signing/use_keystore_option.py +42 -0
  85. appium/options/android/espresso/__init__.py +0 -0
  86. appium/options/android/espresso/activity_options_option.py +41 -0
  87. appium/options/android/espresso/app_locale_option.py +44 -0
  88. appium/options/android/espresso/base.py +221 -0
  89. appium/options/android/espresso/espresso_build_config_option.py +46 -0
  90. appium/options/android/espresso/espresso_server_launch_timeout_option.py +43 -0
  91. appium/options/android/espresso/force_espresso_rebuild_option.py +41 -0
  92. appium/options/android/espresso/intent_options_option.py +41 -0
  93. appium/options/android/espresso/show_gradle_log_option.py +39 -0
  94. appium/options/android/uiautomator2/__init__.py +0 -0
  95. appium/options/android/uiautomator2/base.py +221 -0
  96. appium/options/android/uiautomator2/disable_window_animation_option.py +40 -0
  97. appium/options/android/uiautomator2/mjpeg_server_port_option.py +41 -0
  98. appium/options/android/uiautomator2/skip_device_initialization_option.py +40 -0
  99. appium/options/android/uiautomator2/skip_server_installation_option.py +44 -0
  100. appium/options/android/uiautomator2/uiautomator2_server_install_timeout_option.py +44 -0
  101. appium/options/android/uiautomator2/uiautomator2_server_launch_timeout_option.py +44 -0
  102. appium/options/android/uiautomator2/uiautomator2_server_read_timeout_option.py +46 -0
  103. appium/options/common/__init__.py +1 -0
  104. appium/options/common/app_option.py +41 -0
  105. appium/options/common/auto_web_view_option.py +40 -0
  106. appium/options/common/automation_name_option.py +38 -0
  107. appium/options/common/base.py +125 -0
  108. appium/options/common/browser_name_option.py +38 -0
  109. appium/options/common/bundle_id_option.py +38 -0
  110. appium/options/common/clear_system_files_option.py +38 -0
  111. appium/options/common/device_name_option.py +38 -0
  112. appium/options/common/enable_performance_logging_option.py +38 -0
  113. appium/options/common/event_timings_option.py +40 -0
  114. appium/options/common/full_reset_option.py +38 -0
  115. appium/options/common/is_headless_option.py +39 -0
  116. appium/options/common/language_option.py +38 -0
  117. appium/options/common/locale_option.py +38 -0
  118. appium/options/common/new_command_timeout_option.py +41 -0
  119. appium/options/common/no_reset_option.py +38 -0
  120. appium/options/common/orientation_option.py +40 -0
  121. appium/options/common/other_apps_option.py +39 -0
  122. appium/options/common/platform_version_option.py +40 -0
  123. appium/options/common/postrun_option.py +39 -0
  124. appium/options/common/prerun_option.py +40 -0
  125. appium/options/common/print_page_source_on_find_failure_option.py +40 -0
  126. appium/options/common/skip_log_capture_option.py +38 -0
  127. appium/options/common/supports_capabilities.py +26 -0
  128. appium/options/common/system_host_option.py +38 -0
  129. appium/options/common/system_port_option.py +38 -0
  130. appium/options/common/udid_option.py +38 -0
  131. appium/options/flutter_integration/__init__.py +15 -0
  132. appium/options/flutter_integration/base.py +39 -0
  133. appium/options/flutter_integration/flutter_element_wait_timeout_option.py +50 -0
  134. appium/options/flutter_integration/flutter_enable_mock_camera_option.py +44 -0
  135. appium/options/flutter_integration/flutter_server_launch_timeout_option.py +51 -0
  136. appium/options/flutter_integration/flutter_system_port_option.py +45 -0
  137. appium/options/gecko/__init__.py +1 -0
  138. appium/options/gecko/android_storage_option.py +39 -0
  139. appium/options/gecko/base.py +51 -0
  140. appium/options/gecko/firefox_options_option.py +38 -0
  141. appium/options/gecko/marionette_port_option.py +43 -0
  142. appium/options/gecko/verbosity_option.py +40 -0
  143. appium/options/ios/__init__.py +2 -0
  144. appium/options/ios/safari/__init__.py +0 -0
  145. appium/options/ios/safari/automatic_inspection_option.py +41 -0
  146. appium/options/ios/safari/automatic_profiling_option.py +41 -0
  147. appium/options/ios/safari/base.py +51 -0
  148. appium/options/ios/safari/device_name_option.py +43 -0
  149. appium/options/ios/safari/device_type_option.py +41 -0
  150. appium/options/ios/safari/device_udid_option.py +43 -0
  151. appium/options/ios/safari/platform_build_version_option.py +41 -0
  152. appium/options/ios/safari/platform_version_option.py +41 -0
  153. appium/options/ios/safari/use_simulator_option.py +41 -0
  154. appium/options/ios/safari/webkit_webrtc_option.py +52 -0
  155. appium/options/ios/xcuitest/__init__.py +0 -0
  156. appium/options/ios/xcuitest/app/__init__.py +0 -0
  157. appium/options/ios/xcuitest/app/app_install_strategy_option.py +46 -0
  158. appium/options/ios/xcuitest/app/app_push_timeout_option.py +42 -0
  159. appium/options/ios/xcuitest/app/localizable_strings_dir_option.py +39 -0
  160. appium/options/ios/xcuitest/base.py +223 -0
  161. appium/options/ios/xcuitest/general/__init__.py +0 -0
  162. appium/options/ios/xcuitest/general/include_device_caps_to_session_info_option.py +41 -0
  163. appium/options/ios/xcuitest/general/reset_location_service_option.py +39 -0
  164. appium/options/ios/xcuitest/other/__init__.py +0 -0
  165. appium/options/ios/xcuitest/other/command_timeouts_option.py +57 -0
  166. appium/options/ios/xcuitest/other/launch_with_idb_option.py +42 -0
  167. appium/options/ios/xcuitest/other/show_ios_log_option.py +39 -0
  168. appium/options/ios/xcuitest/other/use_json_source_option.py +39 -0
  169. appium/options/ios/xcuitest/simulator/__init__.py +0 -0
  170. appium/options/ios/xcuitest/simulator/calendar_access_authorized_option.py +41 -0
  171. appium/options/ios/xcuitest/simulator/calendar_format_option.py +38 -0
  172. appium/options/ios/xcuitest/simulator/connect_hardware_keyboard_option.py +43 -0
  173. appium/options/ios/xcuitest/simulator/custom_ssl_cert_option.py +39 -0
  174. appium/options/ios/xcuitest/simulator/enforce_fresh_simulator_creation_option.py +39 -0
  175. appium/options/ios/xcuitest/simulator/force_simulator_software_keyboard_presence_option.py +45 -0
  176. appium/options/ios/xcuitest/simulator/ios_simulator_logs_predicate_option.py +38 -0
  177. appium/options/ios/xcuitest/simulator/keep_key_chains_option.py +39 -0
  178. appium/options/ios/xcuitest/simulator/keychains_exclude_patterns_option.py +44 -0
  179. appium/options/ios/xcuitest/simulator/permissions_option.py +50 -0
  180. appium/options/ios/xcuitest/simulator/reduce_motion_option.py +40 -0
  181. appium/options/ios/xcuitest/simulator/reset_on_session_start_only_option.py +41 -0
  182. appium/options/ios/xcuitest/simulator/scale_factor_option.py +44 -0
  183. appium/options/ios/xcuitest/simulator/shutdown_other_simulators_option.py +44 -0
  184. appium/options/ios/xcuitest/simulator/simulator_devices_set_path_option.py +41 -0
  185. appium/options/ios/xcuitest/simulator/simulator_pasteboard_automatic_sync_option.py +42 -0
  186. appium/options/ios/xcuitest/simulator/simulator_startup_timeout_option.py +46 -0
  187. appium/options/ios/xcuitest/simulator/simulator_trace_pointer_option.py +41 -0
  188. appium/options/ios/xcuitest/simulator/simulator_window_center_option.py +41 -0
  189. appium/options/ios/xcuitest/wda/__init__.py +0 -0
  190. appium/options/ios/xcuitest/wda/allow_provisioning_device_regitration_option.py +40 -0
  191. appium/options/ios/xcuitest/wda/auto_accept_alerts_option.py +39 -0
  192. appium/options/ios/xcuitest/wda/auto_disimiss_alerts_option.py +39 -0
  193. appium/options/ios/xcuitest/wda/derived_data_path_option.py +41 -0
  194. appium/options/ios/xcuitest/wda/disable_automatic_screenshots_option.py +40 -0
  195. appium/options/ios/xcuitest/wda/force_app_launch_option.py +42 -0
  196. appium/options/ios/xcuitest/wda/keychain_password_option.py +39 -0
  197. appium/options/ios/xcuitest/wda/keychain_path_option.py +39 -0
  198. appium/options/ios/xcuitest/wda/max_typing_frequency_option.py +40 -0
  199. appium/options/ios/xcuitest/wda/mjpeg_server_port_option.py +42 -0
  200. appium/options/ios/xcuitest/wda/process_arguments_option.py +42 -0
  201. appium/options/ios/xcuitest/wda/result_bundle_path_option.py +42 -0
  202. appium/options/ios/xcuitest/wda/screenshot_quality_option.py +42 -0
  203. appium/options/ios/xcuitest/wda/should_terminate_app_option.py +42 -0
  204. appium/options/ios/xcuitest/wda/should_use_singleton_test_manager_option.py +39 -0
  205. appium/options/ios/xcuitest/wda/show_xcode_log_option.py +40 -0
  206. appium/options/ios/xcuitest/wda/simple_is_visible_check_option.py +42 -0
  207. appium/options/ios/xcuitest/wda/updated_wda_bundle_id_option.py +39 -0
  208. appium/options/ios/xcuitest/wda/use_native_caching_strategy_option.py +41 -0
  209. appium/options/ios/xcuitest/wda/use_new_wda_option.py +51 -0
  210. appium/options/ios/xcuitest/wda/use_prebuilt_wda_option.py +39 -0
  211. appium/options/ios/xcuitest/wda/use_simple_build_test_option.py +40 -0
  212. appium/options/ios/xcuitest/wda/use_xctestrun_file_option.py +49 -0
  213. appium/options/ios/xcuitest/wda/wait_for_idle_timeout_option.py +45 -0
  214. appium/options/ios/xcuitest/wda/wait_for_quiescence_option.py +42 -0
  215. appium/options/ios/xcuitest/wda/wda_base_url_option.py +41 -0
  216. appium/options/ios/xcuitest/wda/wda_connection_timeout_option.py +43 -0
  217. appium/options/ios/xcuitest/wda/wda_eventloop_idle_delay_option.py +46 -0
  218. appium/options/ios/xcuitest/wda/wda_launch_timeout_option.py +41 -0
  219. appium/options/ios/xcuitest/wda/wda_local_port_option.py +41 -0
  220. appium/options/ios/xcuitest/wda/wda_startup_retries_option.py +39 -0
  221. appium/options/ios/xcuitest/wda/wda_startup_retry_interval_option.py +43 -0
  222. appium/options/ios/xcuitest/wda/web_driver_agent_url_option.py +39 -0
  223. appium/options/ios/xcuitest/wda/xcode_org_id_option.py +39 -0
  224. appium/options/ios/xcuitest/wda/xcode_signing_id_option.py +39 -0
  225. appium/options/ios/xcuitest/webview/__init__.py +0 -0
  226. appium/options/ios/xcuitest/webview/absolute_web_locations_option.py +42 -0
  227. appium/options/ios/xcuitest/webview/additional_webview_bundle_ids_option.py +40 -0
  228. appium/options/ios/xcuitest/webview/enable_async_execute_from_https_option.py +39 -0
  229. appium/options/ios/xcuitest/webview/full_context_list_option.py +42 -0
  230. appium/options/ios/xcuitest/webview/include_safari_in_webviews_option.py +41 -0
  231. appium/options/ios/xcuitest/webview/native_web_tap_option.py +40 -0
  232. appium/options/ios/xcuitest/webview/safari_garbage_collect_option.py +39 -0
  233. appium/options/ios/xcuitest/webview/safari_ignore_fraud_warning_option.py +39 -0
  234. appium/options/ios/xcuitest/webview/safari_ignore_web_hostnames_option.py +42 -0
  235. appium/options/ios/xcuitest/webview/safari_initial_url_option.py +38 -0
  236. appium/options/ios/xcuitest/webview/safari_log_all_communication_hex_dump_option.py +43 -0
  237. appium/options/ios/xcuitest/webview/safari_log_all_communication_option.py +40 -0
  238. appium/options/ios/xcuitest/webview/safari_open_links_in_background_option.py +39 -0
  239. appium/options/ios/xcuitest/webview/safari_socket_chunk_size_option.py +41 -0
  240. appium/options/ios/xcuitest/webview/safari_web_inspector_max_frame_length_option.py +41 -0
  241. appium/options/ios/xcuitest/webview/webkit_response_timeout_option.py +43 -0
  242. appium/options/ios/xcuitest/webview/webview_connect_retries_option.py +40 -0
  243. appium/options/ios/xcuitest/webview/webview_connect_timeout_option.py +43 -0
  244. appium/options/mac/__init__.py +1 -0
  245. appium/options/mac/mac2/__init__.py +0 -0
  246. appium/options/mac/mac2/app_path_option.py +39 -0
  247. appium/options/mac/mac2/arguments_option.py +39 -0
  248. appium/options/mac/mac2/base.py +113 -0
  249. appium/options/mac/mac2/bootstrap_root_option.py +41 -0
  250. appium/options/mac/mac2/environment_option.py +41 -0
  251. appium/options/mac/mac2/server_startup_timeout_option.py +44 -0
  252. appium/options/mac/mac2/show_server_logs_option.py +39 -0
  253. appium/options/mac/mac2/skip_app_kill_option.py +40 -0
  254. appium/options/mac/mac2/web_driver_agent_mac_url_option.py +39 -0
  255. appium/options/windows/__init__.py +1 -0
  256. appium/options/windows/windows/__init__.py +0 -0
  257. appium/options/windows/windows/app_arguments_option.py +40 -0
  258. appium/options/windows/windows/app_top_level_window_option.py +40 -0
  259. appium/options/windows/windows/app_working_dir_option.py +40 -0
  260. appium/options/windows/windows/base.py +97 -0
  261. appium/options/windows/windows/create_session_timeout_option.py +45 -0
  262. appium/options/windows/windows/expreimental_web_driver_option.py +39 -0
  263. appium/options/windows/windows/wait_for_app_launch_option.py +43 -0
  264. appium/protocols/__init__.py +13 -0
  265. appium/protocols/webdriver/__init__.py +13 -0
  266. appium/protocols/webdriver/can_execute_commands.py +23 -0
  267. appium/protocols/webdriver/can_execute_scripts.py +27 -0
  268. appium/protocols/webdriver/can_find_elements.py +32 -0
  269. appium/protocols/webdriver/can_remember_extension_presence.py +23 -0
  270. appium/py.typed +0 -0
  271. appium/version.py +22 -0
  272. appium/webdriver/__init__.py +20 -0
  273. appium/webdriver/appium_connection.py +65 -0
  274. appium/webdriver/appium_service.py +330 -0
  275. appium/webdriver/applicationstate.py +21 -0
  276. appium/webdriver/client_config.py +38 -0
  277. appium/webdriver/clipboard_content_type.py +19 -0
  278. appium/webdriver/command_method.py +27 -0
  279. appium/webdriver/common/__init__.py +17 -0
  280. appium/webdriver/common/appiumby.py +54 -0
  281. appium/webdriver/connectiontype.py +42 -0
  282. appium/webdriver/errorhandler.py +125 -0
  283. appium/webdriver/extensions/__init__.py +13 -0
  284. appium/webdriver/extensions/action_helpers.py +188 -0
  285. appium/webdriver/extensions/android/__init__.py +0 -0
  286. appium/webdriver/extensions/android/activities.py +65 -0
  287. appium/webdriver/extensions/android/common.py +59 -0
  288. appium/webdriver/extensions/android/display.py +48 -0
  289. appium/webdriver/extensions/android/gsm.py +147 -0
  290. appium/webdriver/extensions/android/nativekey.py +1119 -0
  291. appium/webdriver/extensions/android/network.py +175 -0
  292. appium/webdriver/extensions/android/performance.py +85 -0
  293. appium/webdriver/extensions/android/power.py +80 -0
  294. appium/webdriver/extensions/android/sms.py +50 -0
  295. appium/webdriver/extensions/android/system_bars.py +58 -0
  296. appium/webdriver/extensions/applications.py +274 -0
  297. appium/webdriver/extensions/clipboard.py +107 -0
  298. appium/webdriver/extensions/context.py +63 -0
  299. appium/webdriver/extensions/device_time.py +75 -0
  300. appium/webdriver/extensions/execute_driver.py +60 -0
  301. appium/webdriver/extensions/execute_mobile_command.py +62 -0
  302. appium/webdriver/extensions/flutter_integration/__init__.py +13 -0
  303. appium/webdriver/extensions/flutter_integration/flutter_commands.py +296 -0
  304. appium/webdriver/extensions/flutter_integration/flutter_finder.py +55 -0
  305. appium/webdriver/extensions/flutter_integration/scroll_directions.py +6 -0
  306. appium/webdriver/extensions/hw_actions.py +149 -0
  307. appium/webdriver/extensions/images_comparison.py +132 -0
  308. appium/webdriver/extensions/keyboard.py +168 -0
  309. appium/webdriver/extensions/location.py +98 -0
  310. appium/webdriver/extensions/log_event.py +68 -0
  311. appium/webdriver/extensions/logs.py +53 -0
  312. appium/webdriver/extensions/remote_fs.py +110 -0
  313. appium/webdriver/extensions/screen_record.py +207 -0
  314. appium/webdriver/extensions/session.py +41 -0
  315. appium/webdriver/extensions/settings.py +49 -0
  316. appium/webdriver/locator_converter.py +29 -0
  317. appium/webdriver/mobilecommand.py +104 -0
  318. appium/webdriver/switch_to.py +35 -0
  319. appium/webdriver/webdriver.py +495 -0
  320. appium/webdriver/webelement.py +130 -0
  321. appium_python_client-5.2.0.dist-info/METADATA +573 -0
  322. appium_python_client-5.2.0.dist-info/RECORD +324 -0
  323. appium_python_client-5.2.0.dist-info/WHEEL +4 -0
  324. appium_python_client-5.2.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,42 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ USER_PROFILE = 'userProfile'
23
+
24
+
25
+ class UserProfileOption(SupportsCapabilities):
26
+ @property
27
+ def user_profile(self) -> Optional[int]:
28
+ """
29
+ Integer identifier of a user profile.
30
+ """
31
+ return self.get_capability(USER_PROFILE)
32
+
33
+ @user_profile.setter
34
+ def user_profile(self, value: int) -> None:
35
+ """
36
+ Integer identifier of a user profile. By default, the app under test is
37
+ installed for the currently active user, but in case it is necessary to
38
+ test how the app performs while being installed for a user profile,
39
+ which is different from the current one, this capability might
40
+ come in handy.
41
+ """
42
+ self.set_capability(USER_PROFILE, value)
File without changes
@@ -0,0 +1,40 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ KEY_ALIAS = 'keyAlias'
23
+
24
+
25
+ class KeyAliasOption(SupportsCapabilities):
26
+ @property
27
+ def key_alias(self) -> Optional[str]:
28
+ """
29
+ Keystore key alias.
30
+ """
31
+ return self.get_capability(KEY_ALIAS)
32
+
33
+ @key_alias.setter
34
+ def key_alias(self, value: str) -> None:
35
+ """
36
+ The alias of the key in the keystore file provided in keystorePath capability.
37
+ This option is used in combination with useKeystore, keystorePath,
38
+ keystorePassword, keyAlias and keyPassword options. Unset by default
39
+ """
40
+ self.set_capability(KEY_ALIAS, value)
@@ -0,0 +1,40 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ KEY_PASSWORD = 'keyPassword'
23
+
24
+
25
+ class KeyPasswordOption(SupportsCapabilities):
26
+ @property
27
+ def key_password(self) -> Optional[str]:
28
+ """
29
+ Keystore key password.
30
+ """
31
+ return self.get_capability(KEY_PASSWORD)
32
+
33
+ @key_password.setter
34
+ def key_password(self, value: str) -> None:
35
+ """
36
+ The password of the key in the keystore file provided in keystorePath capability.
37
+ This option is used in combination with useKeystore, keystorePath,
38
+ keystorePassword, keyAlias and keyPassword options. Unset by default
39
+ """
40
+ self.set_capability(KEY_PASSWORD, value)
@@ -0,0 +1,40 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ KEYSTORE_PASSWORD = 'keystorePassword'
23
+
24
+
25
+ class KeystorePasswordOption(SupportsCapabilities):
26
+ @property
27
+ def keystore_password(self) -> Optional[str]:
28
+ """
29
+ Keystore password.
30
+ """
31
+ return self.get_capability(KEYSTORE_PASSWORD)
32
+
33
+ @keystore_password.setter
34
+ def keystore_password(self, value: str) -> None:
35
+ """
36
+ The password to the keystore file provided in keystorePath capability.
37
+ This option is used in combination with useKeystore, keystorePath,
38
+ keystorePassword, keyAlias and keyPassword options. Unset by default
39
+ """
40
+ self.set_capability(KEYSTORE_PASSWORD, value)
@@ -0,0 +1,40 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ KEYSTORE_PATH = 'keystorePath'
23
+
24
+
25
+ class KeystorePathOption(SupportsCapabilities):
26
+ @property
27
+ def keystore_path(self) -> Optional[str]:
28
+ """
29
+ The path to keystore.
30
+ """
31
+ return self.get_capability(KEYSTORE_PATH)
32
+
33
+ @keystore_path.setter
34
+ def keystore_path(self, value: str) -> None:
35
+ """
36
+ The full path to the keystore file on the server filesystem.
37
+ This option is used in combination with useKeystore, keystorePath,
38
+ keystorePassword, keyAlias and keyPassword options. Unset by default
39
+ """
40
+ self.set_capability(KEYSTORE_PATH, value)
@@ -0,0 +1,42 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ NO_SIGN = 'noSign'
23
+
24
+
25
+ class NoSignOption(SupportsCapabilities):
26
+ @property
27
+ def no_sign(self) -> Optional[bool]:
28
+ """
29
+ Whether to skip application signing.
30
+ """
31
+ return self.get_capability(NO_SIGN)
32
+
33
+ @no_sign.setter
34
+ def no_sign(self, value: bool) -> None:
35
+ """
36
+ Set it to true in order to skip application signing. By default
37
+ all apps are always signed with the default Appium debug signature
38
+ if they don't have any. This capability cancels all the signing checks
39
+ and makes the driver to use the application package as is. This option
40
+ does not affect .apks packages as these are expected to be already signed.
41
+ """
42
+ self.set_capability(NO_SIGN, value)
@@ -0,0 +1,42 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ USE_KEYSTORE = 'useKeystore'
23
+
24
+
25
+ class UseKeystoreOption(SupportsCapabilities):
26
+ @property
27
+ def use_keystore(self) -> Optional[bool]:
28
+ """
29
+ Whether to use custom keystore.
30
+ """
31
+ return self.get_capability(USE_KEYSTORE)
32
+
33
+ @use_keystore.setter
34
+ def use_keystore(self, value: bool) -> None:
35
+ """
36
+ Whether to use a custom keystore to sign the app under test.
37
+ false by default, which means apps are always signed with the default A
38
+ ppium debug certificate (unless canceled by noSign capability).
39
+ This option is used in combination with keystorePath, keystorePassword,
40
+ keyAlias and keyPassword options.
41
+ """
42
+ self.set_capability(USE_KEYSTORE, value)
File without changes
@@ -0,0 +1,41 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Dict, Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ ACTIVITY_OPTIONS = 'activityOptions'
23
+
24
+
25
+ class ActivityOptionsOption(SupportsCapabilities):
26
+ @property
27
+ def activity_options(self) -> Optional[Dict]:
28
+ """
29
+ Activity options.
30
+ """
31
+ return self.get_capability(ACTIVITY_OPTIONS)
32
+
33
+ @activity_options.setter
34
+ def activity_options(self, value: Dict) -> None:
35
+ """
36
+ The mapping of custom options for the main app activity that is going to
37
+ be started. Check
38
+ https://github.com/appium/appium-espresso-driver#activity-options
39
+ for more details.
40
+ """
41
+ self.set_capability(ACTIVITY_OPTIONS, value)
@@ -0,0 +1,44 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Dict, Optional
19
+
20
+ from appium.options.common.supports_capabilities import SupportsCapabilities
21
+
22
+ APP_LOCALE = 'appLocale'
23
+
24
+
25
+ class AppLocaleOption(SupportsCapabilities):
26
+ @property
27
+ def app_locale(self) -> Optional[Dict[str, str]]:
28
+ """
29
+ Locale for the app under test.
30
+ """
31
+ return self.get_capability(APP_LOCALE)
32
+
33
+ @app_locale.setter
34
+ def app_locale(self, value: Dict[str, str]) -> None:
35
+ """
36
+ Sets the locale for the app under test. The main difference between this option
37
+ and the above ones is that this option only changes the locale for the application
38
+ under test and does not affect other parts of the system. Also, it only uses
39
+ public APIs for its purpose. See
40
+ https://github.com/libyal/libfwnt/wiki/Language-Code-identifiers to get the
41
+ list of available language abbreviations.
42
+ Example: {"language": "zh", "country": "CN", "variant": "Hans"}.
43
+ """
44
+ self.set_capability(APP_LOCALE, value)
@@ -0,0 +1,221 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from typing import Dict
19
+
20
+ from appium.options.android.common.adb.adb_exec_timeout_option import AdbExecTimeoutOption
21
+ from appium.options.android.common.adb.adb_port_option import AdbPortOption
22
+ from appium.options.android.common.adb.allow_delay_adb_option import AllowDelayAdbOption
23
+ from appium.options.android.common.adb.build_tools_version_option import BuildToolsVersionOption
24
+ from appium.options.android.common.adb.clear_device_logs_on_start_option import ClearDeviceLogsOnStartOption
25
+ from appium.options.android.common.adb.ignore_hidden_api_policy_error_option import IgnoreHiddenApiPolicyErrorOption
26
+ from appium.options.android.common.adb.logcat_filter_specs_option import LogcatFilterSpecsOption
27
+ from appium.options.android.common.adb.logcat_format_option import LogcatFormatOption
28
+ from appium.options.android.common.adb.mock_location_app_option import MockLocationAppOption
29
+ from appium.options.android.common.adb.remote_adb_host_option import RemoteAdbHostOption
30
+ from appium.options.android.common.adb.skip_logcat_capture_option import SkipLogcatCaptureOption
31
+ from appium.options.android.common.adb.suppress_kill_server_option import SuppressKillServerOption
32
+ from appium.options.android.common.app.allow_test_packages_option import AllowTestPackagesOption
33
+ from appium.options.android.common.app.android_install_timeout_option import AndroidInstallTimeoutOption
34
+ from appium.options.android.common.app.app_activity_option import AppActivityOption
35
+ from appium.options.android.common.app.app_package_option import AppPackageOption
36
+ from appium.options.android.common.app.app_wait_activity_option import AppWaitActivityOption
37
+ from appium.options.android.common.app.app_wait_duration_option import AppWaitDurationOption
38
+ from appium.options.android.common.app.app_wait_for_launch_option import AppWaitForLaunchOption
39
+ from appium.options.android.common.app.app_wait_package_option import AppWaitPackageOption
40
+ from appium.options.android.common.app.auto_grant_premissions_option import AutoGrantPermissionsOption
41
+ from appium.options.android.common.app.enforce_app_install_option import EnforceAppInstallOption
42
+ from appium.options.android.common.app.intent_action_option import IntentActionOption
43
+ from appium.options.android.common.app.intent_category_option import IntentCategoryOption
44
+ from appium.options.android.common.app.intent_flags_option import IntentFlagsOption
45
+ from appium.options.android.common.app.optional_intent_arguments_option import OptionalIntentArgumentsOption
46
+ from appium.options.android.common.app.remote_apps_cache_limit_option import RemoteAppsCacheLimitOption
47
+ from appium.options.android.common.app.uninstall_other_packages_option import UninstallOtherPackagesOption
48
+ from appium.options.android.common.avd.avd_args_option import AvdArgsOption
49
+ from appium.options.android.common.avd.avd_env_option import AvdEnvOption
50
+ from appium.options.android.common.avd.avd_launch_timeout_option import AvdLaunchTimeoutOption
51
+ from appium.options.android.common.avd.avd_option import AvdOption
52
+ from appium.options.android.common.avd.avd_ready_timeout_option import AvdReadyTimeoutOption
53
+ from appium.options.android.common.avd.gps_enabled_option import GpsEnabledOption
54
+ from appium.options.android.common.avd.network_speed_option import NetworkSpeedOption
55
+ from appium.options.android.common.context.auto_webview_timeout_option import AutoWebviewTimeoutOption
56
+ from appium.options.android.common.context.chrome_logging_prefs_option import ChromeLoggingPrefsOption
57
+ from appium.options.android.common.context.chrome_options_option import ChromeOptionsOption
58
+ from appium.options.android.common.context.chromedriver_args_option import ChromedriverArgsOption
59
+ from appium.options.android.common.context.chromedriver_chrome_mapping_file_option import (
60
+ ChromedriverChromeMappingFileOption,
61
+ )
62
+ from appium.options.android.common.context.chromedriver_disable_build_check_option import (
63
+ ChromedriverDisableBuildCheckOption,
64
+ )
65
+ from appium.options.android.common.context.chromedriver_executable_dir_option import ChromedriverExecutableDirOption
66
+ from appium.options.android.common.context.chromedriver_executable_option import ChromedriverExecutableOption
67
+ from appium.options.android.common.context.chromedriver_port_option import ChromedriverPortOption
68
+ from appium.options.android.common.context.chromedriver_ports_option import ChromedriverPortsOption
69
+ from appium.options.android.common.context.chromedriver_use_system_executable_option import (
70
+ ChromedriverUseSystemExecutableOption,
71
+ )
72
+ from appium.options.android.common.context.ensure_webviews_have_pages_option import EnsureWebviewsHavePagesOption
73
+ from appium.options.android.common.context.extract_chrome_android_package_from_context_name_option import (
74
+ ExtractChromeAndroidPackageFromContextNameOption,
75
+ )
76
+ from appium.options.android.common.context.native_web_screenshot_option import NativeWebScreenshotOption
77
+ from appium.options.android.common.context.recreate_chrome_driver_sessions_option import (
78
+ RecreateChromeDriverSessionsOption,
79
+ )
80
+ from appium.options.android.common.context.show_chromedriver_log_option import ShowChromedriverLogOption
81
+ from appium.options.android.common.context.webview_devtools_port_option import WebviewDevtoolsPortOption
82
+ from appium.options.android.common.localization.locale_script_option import LocaleScriptOption
83
+ from appium.options.android.common.locking.skip_unlock_option import SkipUnlockOption
84
+ from appium.options.android.common.locking.unlock_key_option import UnlockKeyOption
85
+ from appium.options.android.common.locking.unlock_strategy_option import UnlockStrategyOption
86
+ from appium.options.android.common.locking.unlock_success_timeout_option import UnlockSuccessTimeoutOption
87
+ from appium.options.android.common.locking.unlock_type_option import UnlockTypeOption
88
+ from appium.options.android.common.mjpeg.mjpeg_screenshot_url_option import MjpegScreenshotUrlOption
89
+ from appium.options.android.common.other.disable_suppress_accessibility_service_option import (
90
+ DisableSuppressAccessibilityServiceOption,
91
+ )
92
+ from appium.options.android.common.other.user_profile_option import UserProfileOption
93
+ from appium.options.android.common.signing.key_alias_option import KeyAliasOption
94
+ from appium.options.android.common.signing.key_password_option import KeyPasswordOption
95
+ from appium.options.android.common.signing.keystore_password_option import KeystorePasswordOption
96
+ from appium.options.android.common.signing.keystore_path_option import KeystorePathOption
97
+ from appium.options.android.common.signing.no_sign_option import NoSignOption
98
+ from appium.options.android.common.signing.use_keystore_option import UseKeystoreOption
99
+ from appium.options.common.app_option import AppOption
100
+ from appium.options.common.auto_web_view_option import AutoWebViewOption
101
+ from appium.options.common.automation_name_option import AUTOMATION_NAME
102
+ from appium.options.common.base import PLATFORM_NAME, AppiumOptions
103
+ from appium.options.common.clear_system_files_option import ClearSystemFilesOption
104
+ from appium.options.common.device_name_option import DeviceNameOption
105
+ from appium.options.common.enable_performance_logging_option import EnablePerformanceLoggingOption
106
+ from appium.options.common.is_headless_option import IsHeadlessOption
107
+ from appium.options.common.language_option import LanguageOption
108
+ from appium.options.common.locale_option import LocaleOption
109
+ from appium.options.common.orientation_option import OrientationOption
110
+ from appium.options.common.other_apps_option import OtherAppsOption
111
+ from appium.options.common.platform_version_option import PlatformVersionOption
112
+ from appium.options.common.skip_log_capture_option import SkipLogCaptureOption
113
+ from appium.options.common.system_port_option import SystemPortOption
114
+ from appium.options.common.udid_option import UdidOption
115
+
116
+ from .activity_options_option import ActivityOptionsOption
117
+ from .app_locale_option import AppLocaleOption
118
+ from .espresso_build_config_option import EspressoBuildConfigOption
119
+ from .espresso_server_launch_timeout_option import EspressoServerLaunchTimeoutOption
120
+ from .force_espresso_rebuild_option import ForceEspressoRebuildOption
121
+ from .intent_options_option import IntentOptionsOption
122
+ from .show_gradle_log_option import ShowGradleLogOption
123
+
124
+
125
+ class EspressoOptions(
126
+ AppiumOptions,
127
+ AppOption,
128
+ OrientationOption,
129
+ UdidOption,
130
+ LanguageOption,
131
+ LocaleOption,
132
+ IsHeadlessOption,
133
+ SkipLogCaptureOption,
134
+ AutoWebViewOption,
135
+ DeviceNameOption,
136
+ ClearSystemFilesOption,
137
+ EnablePerformanceLoggingOption,
138
+ OtherAppsOption,
139
+ SystemPortOption,
140
+ AppPackageOption,
141
+ AppActivityOption,
142
+ AppWaitActivityOption,
143
+ AppWaitPackageOption,
144
+ AppWaitDurationOption,
145
+ AndroidInstallTimeoutOption,
146
+ AppWaitForLaunchOption,
147
+ IntentCategoryOption,
148
+ IntentActionOption,
149
+ IntentFlagsOption,
150
+ OptionalIntentArgumentsOption,
151
+ AutoGrantPermissionsOption,
152
+ UninstallOtherPackagesOption,
153
+ AllowTestPackagesOption,
154
+ RemoteAppsCacheLimitOption,
155
+ EnforceAppInstallOption,
156
+ LocaleScriptOption,
157
+ AdbPortOption,
158
+ PlatformVersionOption,
159
+ RemoteAdbHostOption,
160
+ AdbExecTimeoutOption,
161
+ ClearDeviceLogsOnStartOption,
162
+ BuildToolsVersionOption,
163
+ SkipLogcatCaptureOption,
164
+ SuppressKillServerOption,
165
+ IgnoreHiddenApiPolicyErrorOption,
166
+ MockLocationAppOption,
167
+ LogcatFormatOption,
168
+ LogcatFilterSpecsOption,
169
+ AllowDelayAdbOption,
170
+ AvdOption,
171
+ AvdLaunchTimeoutOption,
172
+ AvdReadyTimeoutOption,
173
+ AvdArgsOption,
174
+ AvdEnvOption,
175
+ NetworkSpeedOption,
176
+ GpsEnabledOption,
177
+ UseKeystoreOption,
178
+ KeystorePathOption,
179
+ KeystorePasswordOption,
180
+ KeyAliasOption,
181
+ KeyPasswordOption,
182
+ NoSignOption,
183
+ SkipUnlockOption,
184
+ UnlockKeyOption,
185
+ UnlockStrategyOption,
186
+ UnlockSuccessTimeoutOption,
187
+ UnlockTypeOption,
188
+ MjpegScreenshotUrlOption,
189
+ AutoWebviewTimeoutOption,
190
+ ChromeLoggingPrefsOption,
191
+ ChromeOptionsOption,
192
+ ChromedriverArgsOption,
193
+ ChromedriverChromeMappingFileOption,
194
+ ChromedriverDisableBuildCheckOption,
195
+ ChromedriverExecutableDirOption,
196
+ ChromedriverExecutableOption,
197
+ ChromedriverPortOption,
198
+ ChromedriverPortsOption,
199
+ ChromedriverUseSystemExecutableOption,
200
+ EnsureWebviewsHavePagesOption,
201
+ ExtractChromeAndroidPackageFromContextNameOption,
202
+ NativeWebScreenshotOption,
203
+ RecreateChromeDriverSessionsOption,
204
+ ShowChromedriverLogOption,
205
+ WebviewDevtoolsPortOption,
206
+ DisableSuppressAccessibilityServiceOption,
207
+ UserProfileOption,
208
+ EspressoBuildConfigOption,
209
+ EspressoServerLaunchTimeoutOption,
210
+ ForceEspressoRebuildOption,
211
+ ShowGradleLogOption,
212
+ IntentOptionsOption,
213
+ ActivityOptionsOption,
214
+ AppLocaleOption,
215
+ ):
216
+ @property
217
+ def default_capabilities(self) -> Dict:
218
+ return {
219
+ AUTOMATION_NAME: 'Espresso',
220
+ PLATFORM_NAME: 'Android',
221
+ }
@@ -0,0 +1,46 @@
1
+ # Licensed to the Software Freedom Conservancy (SFC) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The SFC licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ import json
19
+ from typing import Any, Dict, Optional, Union
20
+
21
+ from appium.options.common.supports_capabilities import SupportsCapabilities
22
+
23
+ ESPRESSO_BUILD_CONFIG = 'espressoBuildConfig'
24
+
25
+
26
+ class EspressoBuildConfigOption(SupportsCapabilities):
27
+ @property
28
+ def espresso_build_config(self) -> Optional[Union[Dict[str, Any], str]]:
29
+ """
30
+ Espresso build config.
31
+ """
32
+ value = self.get_capability(ESPRESSO_BUILD_CONFIG)
33
+ try:
34
+ return json.loads(value)
35
+ except Exception:
36
+ return value
37
+
38
+ @espresso_build_config.setter
39
+ def espresso_build_config(self, value: Union[Dict[str, Any], str]) -> None:
40
+ """
41
+ This config allows to customize several important properties of
42
+ Espresso server. Refer to
43
+ https://github.com/appium/appium-espresso-driver#espresso-build-config
44
+ for more information on how to properly construct such config.
45
+ """
46
+ self.set_capability(ESPRESSO_BUILD_CONFIG, value if isinstance(value, str) else json.dumps(value, ensure_ascii=False))