Module: Appium::Core::Ios::Xcuitest::Device

Extended by:
Forwardable
Defined in:
lib/appium_lib_core/ios/xcuitest/device.rb,
lib/appium_lib_core/ios/xcuitest/device/screen.rb,
lib/appium_lib_core/ios/xcuitest/device/battery.rb,
lib/appium_lib_core/ios/xcuitest/device/performance.rb

Defined Under Namespace

Modules: Battery, Performance, Screen

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(_mod) ⇒ Object



141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/appium_lib_core/ios/xcuitest/device.rb', line 141

def extended(_mod)
  # Override
  ::Appium::Core::Device.add_endpoint_method(:hide_keyboard) do
    def hide_keyboard(close_key = nil, strategy = nil)
      option = {}

      option[:key] = close_key if close_key
      option[:strategy] = strategy if strategy

      execute :hide_keyboard, {}, option
    end
  end

  # Override
  ::Appium::Core::Device.add_endpoint_method(:background_app) do
    def background_app(duration = 0)
      # https://github.com/appium/ruby_lib/issues/500, https://github.com/appium/appium/issues/7741
      # `execute :background_app, {}, seconds: { timeout: duration_milli_sec }` works over Appium 1.6.4
      duration_milli_sec = duration.nil? ? nil : duration * 1000
      execute :background_app, {}, seconds: { timeout: duration_milli_sec }
    end
  end

  Performance.add_methods
  Screen.add_methods
  Battery.add_methods
end

Instance Method Details

#background_app(duration = 0) ⇒ Object

Backgrounds the app for a set number of seconds. This is a blocking application.

Examples:


@driver.background_app
@driver.background_app(5)
@driver.background_app(-1) #=> the app never come back. https://github.com/appium/appium/issues/7741

Parameters:

  • duration (Integer) (defaults to: 0)

    How many seconds to background the app for.



# File 'lib/appium_lib_core/ios/xcuitest/device.rb', line 27

#battery_infoHash

Get battery information.

Examples:


@driver.battery_info #=> { state: :full, level: 0.7 }

Returns:

  • (Hash)

    Return battery level and battery state from the target real device. (Simulator has no battery.) developer.apple.com/documentation/uikit/uidevice/ 's `batteryLevel` and `batteryState`. Battery level in range [0.0, 1.0], where 1.0 means 100% charge. -1 is returned if the actual value cannot be retrieved from the system. Battery state. The following symbols are possible `:unplugged, :charging, :full`

Since:

  • 1.6.0



# File 'lib/appium_lib_core/ios/xcuitest/device.rb', line 117

#get_performance_record(save_file_path: './performance', profile_name: 'Activity Monitor', remote_path: nil, user: nil, pass: nil, method: 'PUT') ⇒ Object

This is a blocking application.

Examples:


@driver.get_performance_record
@driver.get_performance_record(save_file_path: './performance', profile_name: 'Activity Monitor')

Parameters:

  • save_file_path: (String) (defaults to: './performance')

    A path to save data as zipped .trace file

  • profile_name: (String) (defaults to: 'Activity Monitor')

    The name of existing performance profile to apply. Execute `instruments -s` to show the list of available profiles. Note, that not all profiles are supported on mobile devices.

  • save_file_path: (String) (defaults to: './performance')

    The name of existing performance profile to apply. Execute `instruments -s` to show the list of available profiles. Note, that not all profiles are supported on mobile devices.

  • remote_path: (String) (defaults to: nil)

    The path to the remote location, where the resulting zipped .trace file should be uploaded. The following protocols are supported: http/https, ftp. Null or empty string value (the default setting) means the content of resulting file should be zipped, encoded as Base64 and passed as the endpount response value. An exception will be thrown if the generated file is too big to fit into the available process memory.

  • user: (String) (defaults to: nil)

    The name of the user for the remote authentication. Only works if `remotePath` is provided.

  • pass: (String) (defaults to: nil)

    The password for the remote authentication. Only works if `remotePath` is provided.

  • method: (String) (defaults to: 'PUT')

    The http multipart upload method name. Only works if `remotePath` is provided.

Since:

  • 1.3.4



# File 'lib/appium_lib_core/ios/xcuitest/device.rb', line 90

#hide_keyboard(close_key = nil, strategy = nil) ⇒ Object

Hide the onscreen keyboard

Examples:


@driver.hide_keyboard             # Close a keyboard with the 'Done' button
@driver.hide_keyboard('Finished') # Close a keyboard with the 'Finished' button

Parameters:

  • close_key (String) (defaults to: nil)

    The name of the key which closes the keyboard.

  • strategy (Symbol) (defaults to: nil)

    The symbol of the strategy which closes the keyboard. XCUITest ignore this argument. Default for iOS is `:pressKey`. Default for Android is `:tapOutside`.



# File 'lib/appium_lib_core/ios/xcuitest/device.rb', line 14

#start_performance_record(timeout: 300000, profile_name: 'Activity Monitor') ⇒ Object

This is a blocking application.

Examples:


@driver.start_performance_record # default: (timeout: 300000, profile_name: 'Activity Monitor')
@driver.start_performance_record(timeout: 300000, profile_name: 'Activity Monitor')

Parameters:

  • timeout: (Integer|String) (defaults to: 300000)

    The maximum count of milliseconds to record the profiling information.

  • profile_name: (String) (defaults to: 'Activity Monitor')

    The name of existing performance profile to apply. Execute `instruments -s` to show the list of available profiles. Note, that not all profiles are supported on mobile devices.

  • pid: (Integer|String)

    The ID of the process to measure the performance for. Set it to `current` in order to measure the performance of the process, which belongs to the currently active application. All processes running on the device are measured if pid is unset (the default setting). Setting process ID while device under test is Simulator might require `instruments` to be launched with sudo privileges, which is not supported and will throw a timeout exception.

Returns:

  • nil

Since:

  • 1.3.4



# File 'lib/appium_lib_core/ios/xcuitest/device.rb', line 67

#start_recording_screen(remote_path: nil, user: nil, pass: nil, method: nil, force_restart: nil, video_type: 'mp4', time_limit: '180', video_quality: 'medium') ⇒ Object

Examples:


@driver.start_recording_screen
@driver.start_recording_screen video_type: 'h264', time_limit: '260'

Parameters:

  • remote_path: (String) (defaults to: nil)

    The path to the remote location, where the resulting video should be uploaded. The following protocols are supported: http/https, ftp. Null or empty string value (the default setting) means the content of resulting file should be encoded as Base64 and passed as the endpount response value. An exception will be thrown if the generated media file is too big to fit into the available process memory. This option only has an effect if there is screen recording process in progreess and `forceRestart` parameter is not set to `true`.

  • user: (String) (defaults to: nil)

    The name of the user for the remote authentication.

  • pass: (String) (defaults to: nil)

    The password for the remote authentication.

  • method: (String) (defaults to: nil)

    The http multipart upload method name. The 'PUT' one is used by default.

  • force_restart: (Boolean) (defaults to: nil)

    Whether to try to catch and upload/return the currently running screen recording (`false`, the default setting on server) or ignore the result of it and start a new recording immediately (`true`).

  • video_type: (String) (defaults to: 'mp4')

    The format of the screen capture to be recorded. Available formats: “h264”, “mp4” or “fmp4”. Default is “mp4”. Only works for Simulator.

  • time_limit: (String) (defaults to: '180')

    Recording time. 180 seconds is by default.

  • video_quality: (String) (defaults to: 'medium')

    The video encoding quality (low, medium, high, photo - defaults to medium). Only works for real devices.



# File 'lib/appium_lib_core/ios/xcuitest/device.rb', line 39