##### [load_settings](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/appium.rb#L60) common > def load_settings(opts = {}) Load arbitrary text ([toml format](https://github.com/toml-lang/toml)) The toml is parsed by https://github.com/fbernier/tomlrb . ``` [caps] app = "path/to/app" [appium_lib] port = 8080 ``` :app is expanded :require is expanded all keys are converted to symbols __Parameters:__      [Hash] opts - file: '/path/to/appium.txt', verbose: true __Returns:__      [hash] the symbolized hash with updated :app and :require keys -- ##### [load_appium_txt](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/appium.rb#L95) common > def load_settings(opts = {}) Load arbitrary text ([toml format](https://github.com/toml-lang/toml)) The toml is parsed by https://github.com/fbernier/tomlrb . ``` [caps] app = "path/to/app" [appium_lib] port = 8080 ``` :app is expanded :require is expanded all keys are converted to symbols __Parameters:__      [Hash] opts - file: '/path/to/appium.txt', verbose: true __Returns:__      [hash] the symbolized hash with updated :app and :require keys -- ##### [expand_required_files](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/appium.rb#L100) common > def expand_required_files(base_dir, file_paths) __Parameters:__      [String] base_dir - parent directory of loaded appium.txt (toml)      [String] file_paths - __Returns:__      [Array] list of require files as an array, nil if require doesn't exist -- ##### [promote_singleton_appium_methods](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/appium.rb#L142) common > def promote_singleton_appium_methods(modules, driver = $driver) This method is intended to work with page objects that share a common module. For example, Page::HomePage, Page::SignIn those could be promoted on with Appium.promote_singleton_appium_methods Page If you are promoting on an individual class then you should use Appium.promote_appium_methods instead. The singleton method is intended only for the shared module use case. if modules is a module instead of an array, then the constants of that module are promoted on. otherwise, the array of modules will be used as the promotion target. __Parameters:__      [Array] modules - An array of modules      [Driver] driver - A driver to extend for -- ##### [promote_appium_methods](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/appium.rb#L196) common > def promote_appium_methods(class_array, driver = $driver) Promote appium methods to class instance methods To promote methods to all classes: It's better to promote on specific classes instead of Object __Parameters:__      [Array] class_array - An array of classes      [Driver] driver - A driver to extend for -- ##### [global_webdriver_http_sleep](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L49) common > def global_webdriver_http_sleep The amount to sleep in seconds before every webdriver http call. -- ##### [global_webdriver_http_sleep=](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L49) common > def global_webdriver_http_sleep=(value) The amount to sleep in seconds before every webdriver http call. -- ##### [sauce](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L52) common > def sauce SauceLab's settings -- ##### [sauce_username](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L55) common > def sauce_username Username for use on Sauce Labs. Set `false` to disable Sauce, even when SAUCE_USERNAME is in ENV. same as @sauce.username -- ##### [sauce_access_key](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L58) common > def sauce_access_key Access Key for use on Sauce Labs. Set `false` to disable Sauce, even when SAUCE_ACCESS_KEY is in ENV. same as @sauce.access_key -- ##### [sauce_endpoint](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L61) common > def sauce_endpoint Override the Sauce Appium endpoint to allow e.g. TestObject tests same as @sauce.endpoint -- ##### [caps](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L65) common > def caps from Core read http://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Driver -- ##### [custom_url](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L66) common > def custom_url Returns the value of attribute custom_url. -- ##### [export_session](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L67) common > def export_session Returns the value of attribute export_session. -- ##### [export_session_path](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L68) common > def export_session_path Returns the value of attribute export_session_path. -- ##### [default_wait](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L69) common > def default_wait Returns the value of attribute default_wait. -- ##### [appium_port](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L70) common > def appium_port Returns the value of attribute appium_port. -- ##### [appium_device](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L71) common > def appium_device Returns the value of attribute appium_device. -- ##### [automation_name](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L72) common > def automation_name Returns the value of attribute automation_name. -- ##### [listener](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L73) common > def listener Returns the value of attribute listener. -- ##### [http_client](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L74) common > def http_client Returns the value of attribute http_client. -- ##### [appium_wait_timeout](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L75) common > def appium_wait_timeout Returns the value of attribute appium_wait_timeout. -- ##### [appium_wait_interval](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L76) common > def appium_wait_interval Returns the value of attribute appium_wait_interval. -- ##### [appium_server_status](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L79) common > def appium_server_status Appium's server version -- ##### [appium_debug](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L81) common > def appium_debug Boolean debug mode for the Appium Ruby bindings -- ##### [driver](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L84) common > def driver Returns the driver __Returns:__      [Driver] the driver -- ##### [core](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L86) common > def core Instance of Appium::Core::Driver -- ##### [initialize](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L154) common > def initialize(opts = {}, global_driver = false) Creates a new driver. The driver is defined as global scope by default. We can avoid defining global driver. __Parameters:__      [Object] opts - A hash containing various options.      [Bool] global_driver - A bool require global driver before initialize. __Returns:__      [Driver] -- ##### [driver_attributes](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L270) common > def driver_attributes Returns a hash of the driver attributes -- ##### [device_is_android?](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L290) common > def device_is_android? __Returns:__      [Boolean] -- ##### [device_is_ios?](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L294) common > def device_is_ios? __Returns:__      [Boolean] -- ##### [device_is_windows?](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L298) common > def device_is_windows? __Returns:__      [Boolean] -- ##### [automation_name_is_uiautomator2?](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L304) common > def automation_name_is_uiautomator2? Return true if automationName is 'uiautomator2' __Returns:__      [Boolean] -- ##### [automation_name_is_espresso?](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L310) common > def automation_name_is_espresso? Return true if automationName is 'Espresso' __Returns:__      [Boolean] -- ##### [automation_name_is_xcuitest?](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L316) common > def automation_name_is_xcuitest? Return true if automationName is 'XCUITest' __Returns:__      [Boolean] -- ##### [action](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L330) common > def action An entry point to chain W3C actions Read https://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Bridge/W3C#action-instance_method __Returns:__      [TouchAction|Selenium::WebDriver::PointerActions] -- ##### [appium_server_version](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L345) common > def appium_server_version Returns the server's version info __Returns:__      [Hash] -- ##### [remote_status](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L353) common > def appium_server_version Returns the server's version info __Returns:__      [Hash] -- ##### [platform_version](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L357) common > def platform_version Return the platform version as an array of integers __Returns:__      [Array] -- ##### [appium_client_version](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L370) common > def appium_client_version Returns the client's version info __Returns:__      [Hash] -- ##### [absolute_app_path](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L382) common > def absolute_app_path(opts) Converts app_path to an absolute path. opts is the full options hash (caps and appium_lib). If server_url is set then the app path is used as is. if app isn't set then an error is raised. __Returns:__      [String] APP_PATH as an absolute path -- ##### [server_url](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L403) common > def server_url Get the server url __Returns:__      [String] the server url -- ##### [restart](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L412) common > def restart Restarts the driver __Returns:__      [Driver] the driver -- ##### [screenshot](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L425) common > def screenshot(png_save_path) Takes a png screenshot and saves to the target path. __Parameters:__      [String] png_save_path - the full path to save the png __Returns:__      [File] -- ##### [element_screenshot](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L439) common > def element_screenshot(element, png_save_path) Takes a png screenshot of particular element's area __Parameters:__      [String] element - Element take a screenshot      [String] png_save_path - the full path to save the png __Returns:__      [File] -- ##### [driver_quit](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L446) common > def driver_quit Quits the driver __Returns:__      [void] -- ##### [quit_driver](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L449) common > def driver_quit Quits the driver __Returns:__      [void] -- ##### [window_size](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L460) common > def window_size Get the device window's size. __Returns:__      [Selenium::WebDriver::Dimension] -- ##### [window_rect](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L475) common > def window_rect Get the device window's rect. __Returns:__      [Selenium::WebDriver::Rectangle] -- ##### [start_driver](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L508) common > def start_driver(http_client_ops = { http_client: ::Appium::Http::Default.new, open_timeout: 999_999, read_timeout: 999_999 }) Creates a new global driver and quits the old one if it exists. You can customise http_client as the following Read http://www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device to understand more what the driver can call instance methods. __Parameters:__      [Hash] http_client_ops - a customizable set of options __Returns:__      [Selenium::WebDriver] the new global driver -- ##### [set_implicit_wait](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L529) common > def set_implicit_wait(wait) To ignore error for Espresso Driver -- ##### [no_wait](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L540) common > def no_wait Set implicit wait to zero. -- ##### [set_wait](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L554) common > def set_wait(timeout = nil) Set implicit wait. Default to @core.default_wait. __Parameters:__      [Integer] timeout - the timeout in seconds __Returns:__      [void] -- ##### [exists](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L571) common > def exists(pre_check = 0, post_check = @core.default_wait) Returns existence of element. Example: exists { button('sign in') } ? puts('true') : puts('false') __Parameters:__      [Integer] pre_check - The amount in seconds to set the wait to before checking existence      [Integer] post_check - The amount in seconds to set the wait to after checking existence __Returns:__      [Boolean] -- ##### [execute_script](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L595) common > def execute_script(script, *args) The same as @driver.execute_script __Parameters:__      [String] script - The script to execute      [*args] args - The args to pass to the script __Returns:__      [Object] -- ##### [execute_async_script](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L603) common > def execute_async_script(script, *args) Wrap calling selenium webdrier APIs via ruby_core Get the window handles of open browser windows -- ##### [execute_driver](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L635) common > def execute_driver(script: '', type: 'webdriverio', timeout_ms: nil) Run a set of script against the current session, allowing execution of many commands in one Appium request. Supports {https://webdriver.io/docs/api.html WebdriverIO} API so far. Please read {http://appium.io/docs/en/commands/session/execute-driver command API} for more details about acceptable scripts and the output. __Parameters:__      [String] script - The string consisting of the script itself      [String] type - The name of the script type. Defaults to 'webdriverio'. Depends on server implementation which type is supported.      [Integer] timeout_ms - The number of `ms` Appium should wait for the script to finish before killing it due to timeout. __Returns:__      [Appium::Core::Base::Device::ExecuteDriver::Result] The script result parsed by Appium::Core::Base::Device::ExecuteDriver::Result. -- ##### [window_handles](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L639) common > def window_handles -- ##### [window_handle](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L644) common > def window_handle Get the current window handle -- ##### [navigate](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L648) common > def navigate -- ##### [manage](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L652) common > def manage -- ##### [get](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L656) common > def get(url) -- ##### [current_url](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L660) common > def current_url -- ##### [title](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L664) common > def title -- ##### [switch_to](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L670) common > def switch_to __Returns:__      [TargetLocator] -- ##### [find_elements](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L697) common > def find_elements(*args) Calls @driver.find_elements_with_appium If you call `Appium.promote_appium_methods`, you can call `find_elements` directly. If you call `Appium.promote_appium_methods`, you can call `find_elements` directly. __Parameters:__      [*args] args - The args to use __Returns:__      [Array] Array is empty when no elements are found. -- ##### [find_element](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L713) common > def find_element(*args) Calls @driver.find_element If you call `Appium.promote_appium_methods`, you can call `find_element` directly. __Parameters:__      [*args] args - The args to use __Returns:__      [Element] -- ##### [find_element_by_image](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L728) common > def find_element_by_image(png_img_path) Return ImageElement if current view has a partial image __Parameters:__      [String] png_img_path - A path to a partial image you'd like to find __Returns:__      [::Appium::Core::ImageElement] -- ##### [find_elements_by_image](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L743) common > def find_elements_by_image(png_img_paths) Return ImageElement if current view has partial images __Parameters:__      [[String]] png_img_paths - Paths to a partial image you'd like to find __Returns:__      [[::Appium::Core::ImageElement]] -- ##### [set_location](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L756) common > def set_location(opts = {}) Calls @driver.set_location __Parameters:__      [Hash] opts - consisting of: __Returns:__      [Selenium::WebDriver::Location] the location constructed by the selenium webdriver -- ##### [log_event](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L780) common > def log_event(vendor:, event:) Logs a custom event. The event is available via {::Appium::Core::Events#get} or driver.session_capabilities['events'] with eventTimings capabilities. __Parameters:__      [String] vendor - The vendor prefix for the event      [String] event - The name of event __Returns:__      [nil] -- ##### [log_event=](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L784) common > def log_event=(log_event) -- ##### [log_events](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L803) common > def log_events(type = nil) Returns events with filtering with 'type'. Defaults to all available events. __Parameters:__      [String] type - The type of events to get __Returns:__      [Hash] -- ##### [x](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/driver.rb#L810) common > def x Quit the driver and Pry. quit and exit are reserved by Pry. __Returns:__      [void] -- ##### [username](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/sauce_labs.rb#L18) common > def username Username for use on Sauce Labs. Set `false` to disable Sauce, even when SAUCE_USERNAME is in ENV. -- ##### [access_key](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/sauce_labs.rb#L20) common > def access_key Access Key for use on Sauce Labs. Set `false` to disable Sauce, even when SAUCE_ACCESS_KEY is in ENV. -- ##### [endpoint](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/sauce_labs.rb#L22) common > def endpoint Override the Sauce Appium endpoint to allow e.g. TestObject tests. Default is 'ondemand.saucelabs.com:443/wd/hub'. -- ##### [initialize](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/sauce_labs.rb#L47) common > def initialize(appium_lib_opts) Create a SauceLabs instance to manage sauce labs related attributes. __Parameters:__      [Hash] appium_lib_opts - Appium library parameter __Returns:__      [Appium::SauceLabs] -- ##### [sauce_server_url?](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/sauce_labs.rb#L67) common > def sauce_server_url? Return true if an instance of Appium::SauceLabs has sauce_username and sauce_access_key. __Returns:__      [Boolean] -- ##### [server_url](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/sauce_labs.rb#L80) common > def server_url Return a particular server url to access to. Default is the local address. __Returns:__      [String] -- ##### [get_log](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/log.rb#L25) common > def get_log(type) __Parameters:__      [String|Hash] type - You can get particular type's logs. __Returns:__      [[Selenium::WebDriver::LogEntry]] A list of logs data. -- ##### [get_available_log_types](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/log.rb#L37) common > def get_available_log_types Get a list of available log types __Returns:__      [[String]] A list of available log types. -- ##### [wait_true](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/wait.rb#L44) common > def wait_true(opts = {}) Check every interval seconds to see if yield returns a truthy value. Note this isn't a strict boolean true, any truthy value is accepted. false and nil are considered failures. Give up after timeout seconds. Wait code from the selenium Ruby gem https://github.com/SeleniumHQ/selenium/blob/cf501dda3f0ed12233de51ce8170c0e8090f0c20/rb/lib/selenium/webdriver/common/wait.rb If only a number is provided then it's treated as the timeout value. __Parameters:__      [Hash|Numeric] opts - Options. If the value is _Numeric_, the value is set as `{ timeout: value }` -- ##### [wait](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/wait.rb#L73) common > def wait(opts = {}) Check every interval seconds to see if yield doesn't raise an exception. Give up after timeout seconds. Wait code from the selenium Ruby gem https://github.com/SeleniumHQ/selenium/blob/cf501dda3f0ed12233de51ce8170c0e8090f0c20/rb/lib/selenium/webdriver/common/wait.rb If only a number is provided then it's treated as the timeout value. __Parameters:__      [Hash|Numeric] opts - Options. If the value is _Numeric_, the value is set as `{ timeout: value }` -- ##### [add_touch_actions](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/device.rb#L26) common > def add_touch_actions -- ##### [delegate_from_appium_driver](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/device.rb#L38) common > def delegate_from_appium_driver(method, delegation_target) -- ##### [ignore](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L30) common > def ignore Return yield and ignore any exceptions. -- ##### [back](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L38) common > def back Navigate back. __Returns:__      [void] -- ##### [session_id](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L49) common > def session_id For Sauce Labs reporting. Returns the current session id. __Returns:__      [String] -- ##### [xpath](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L57) common > def xpath(xpath_str) Returns the first element that matches the provided xpath. __Parameters:__      [String] xpath_str - the XPath string __Returns:__      [Element] -- ##### [xpaths](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L65) common > def xpaths(xpath_str) Returns all elements that match the provided xpath. __Parameters:__      [String] xpath_str - the XPath string __Returns:__      [Array] -- ##### [result](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L75) common > def result Returns the value of attribute result. -- ##### [initialize](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L77) common > def initialize(platform) rubocop:disable Lint/MissingSuper __Returns:__      [CountElements] a new instance of CountElements -- ##### [reset](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L82) common > def reset -- ##### [start_element](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L87) common > def start_element(name, attrs = []) http://nokogiri.org/Nokogiri/XML/SAX/Document.html -- ##### [formatted_result](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L98) common > def formatted_result -- ##### [get_page_class](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L116) common > def get_page_class Returns a string of class counts of visible elements. __Returns:__      [String] -- ##### [page_class](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L141) common > def page_class Count all classes on screen and print to stdout. Useful for appium_console. __Returns:__      [nil] -- ##### [source](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L148) common > def source Prints xml of the current page __Returns:__      [void] -- ##### [get_source](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L155) common > def get_source Returns XML string for the current page Same as driver.page_source __Returns:__      [String] -- ##### [px_to_window_rel](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L165) common > def px_to_window_rel(opts = {}, driver = $driver) Converts pixel values to window relative values -- ##### [xml_keys](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L184) common > def xml_keys(target) Search strings.xml's values for target. __Parameters:__      [String] target - the target to search for in strings.xml values __Returns:__      [Array] -- ##### [xml_values](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L192) common > def xml_values(target) Search strings.xml's keys for target. __Parameters:__      [String] target - the target to search for in strings.xml keys __Returns:__      [Array] -- ##### [resolve_id](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L200) common > def resolve_id(id) Resolve id in strings.xml and return the value. __Parameters:__      [String] id - the id to resolve __Returns:__      [String] -- ##### [filter](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L207) common > def filter Returns the value of attribute filter. -- ##### [filter=](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L210) common > def filter=(value) convert to string to support symbols -- ##### [initialize](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L217) common > def initialize rubocop:disable Lint/MissingSuper __Returns:__      [HTMLElements] a new instance of HTMLElements -- ##### [reset](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L222) common > def reset -- ##### [result](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L228) common > def result -- ##### [start_element](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L242) common > def start_element(name, attrs = []) -- ##### [end_element](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L252) common > def end_element(name) -- ##### [characters](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/helper.rb#L259) common > def characters(chars) -- ##### [pinch](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/multi_touch.rb#L65) common > def pinch(percentage = 25, auto_perform = true, driver = $driver) Convenience method for pinching the screen. Places two fingers at the edges of the screen and brings them together. Without auto_perform With driver __Parameters:__      [int] percentage - The percent size by which to shrink the screen when pinched.      [boolean] auto_perform - Whether to perform the action immediately (default true)      [Driver] driver - Set a driver to conduct the action. DEfault is global driver($driver) -- ##### [zoom](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/multi_touch.rb#L108) common > def zoom(percentage = 200, auto_perform = true, driver = $driver) Convenience method for zooming the screen. Places two fingers at the edges of the screen and brings them together. Without auto_perform With driver __Parameters:__      [int] percentage - The percent size by which to shrink the screen when pinched.      [boolean] auto_perform - Whether to perform the action immediately (default true)      [Driver] driver - Set a driver to conduct the action. DEfault is global driver($driver) -- ##### [initialize](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/multi_touch.rb#L194) common > def initialize(driver = $driver) self __Returns:__      [MultiTouch] a new instance of MultiTouch -- ##### [initialize](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/touch_actions.rb#L62) common > def initialize(driver = $driver) __Returns:__      [TouchAction] a new instance of TouchAction -- ##### [swipe](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/touch_actions.rb#L66) common > def swipe(opts) -- ##### [initialize](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/command/ws_logcat.rb#L19) common > def initialize(url:, output_file: 'logcat.log') __Returns:__      [WsLogcat] a new instance of WsLogcat -- ##### [handle_message_data](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/common/command/ws_logcat.rb#L24) common > def handle_message_data(data) -- ##### [for](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/android.rb#L33) android > def for(target) -- ##### [text](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/text.rb#L25) android > def text(value) Find the first TextView that contains value or by index. If int then the TextView at that index is returned. __Parameters:__      [String, Integer] value - the value to find. __Returns:__      [TextView] -- ##### [texts](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/text.rb#L35) android > def texts(value = false) Find all TextViews containing value. If value is omitted, all texts are returned. __Parameters:__      [String] value - the value to search for __Returns:__      [Array] -- ##### [first_text](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/text.rb#L43) android > def first_text Find the first TextView. __Returns:__      [TEXT_VIEW] -- ##### [last_text](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/text.rb#L49) android > def last_text Find the last TextView. __Returns:__      [TEXT_VIEW] -- ##### [text_exact](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/text.rb#L56) android > def text_exact(value) Find the first TextView that exactly matches value. __Parameters:__      [String] value - the value to match exactly __Returns:__      [TEXT_VIEW] -- ##### [texts_exact](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/text.rb#L63) android > def texts_exact(value) Find all TextViews that exactly match value. __Parameters:__      [String] value - the value to match exactly __Returns:__      [Array] -- ##### [result](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L20) android > def result Returns the value of attribute result. -- ##### [keys](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L20) android > def keys Returns the value of attribute keys. -- ##### [filter](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L20) android > def filter Returns the value of attribute filter. -- ##### [filter=](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L23) android > def filter=(value) convert to string to support symbols -- ##### [initialize](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L30) android > def initialize rubocop:disable Lint/MissingSuper __Returns:__      [AndroidElements] a new instance of AndroidElements -- ##### [reset](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L35) android > def reset -- ##### [start_element](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L41) android > def start_element(name, attrs = [], driver = $driver) http://nokogiri.org/Nokogiri/XML/SAX/Document.html -- ##### [get_android_inspect](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L95) android > def get_android_inspect(class_name = false) Android only. Returns a string containing interesting elements. The text, content description, and id are returned. if false (default) then all classes will be inspected __Parameters:__      [String] class_name - the class name to filter on. __Returns:__      [String] -- ##### [page](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L121) android > def page(opts = {}) Intended for use with console. Inspects and prints the current page. Will return XHTML for Web contexts because of a quirk with Nokogiri. if nil (default) then all classes will be inspected __Parameters:__      [Hash] class - a customizable set of options __Returns:__      [void] -- ##### [id](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L130) android > def id(id) Find the first matching element by id __Parameters:__      [String] id - the id to search for __Returns:__      [Element] -- ##### [ids](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L138) android > def ids(id) Find all matching elements by id __Parameters:__      [String] id - the id to search for __Returns:__      [Element] -- ##### [ele_index](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L147) android > def ele_index(class_name, index) Find the element of type class_name at matching index. __Parameters:__      [String] class_name - the class name to find      [Integer] index - the index __Returns:__      [Element] the found element of type class_name -- ##### [first_ele](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L166) android > def first_ele(class_name) Find the first element that matches class_name __Parameters:__      [String] class_name - the tag to match __Returns:__      [Element] -- ##### [last_ele](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L173) android > def last_ele(class_name) Find the last element that matches class_name __Parameters:__      [String] class_name - the tag to match __Returns:__      [Element] -- ##### [tag](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L181) android > def tag(class_name) Find the first element of type class_name __Parameters:__      [String] class_name - the class_name to search for __Returns:__      [Element] -- ##### [tags](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L189) android > def tags(class_name) Find all elements of type class_name __Parameters:__      [String] class_name - the class_name to search for __Returns:__      [Element] -- ##### [string_visible_contains_xpath](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L232) android > def string_visible_contains_xpath(class_name, value) Returns a string that matches the first element that contains value For automationName is uiautomator2 example: string_visible_contains_xpath 'UIATextField', 'sign in' note for XPath: https://github.com/appium/ruby_lib/pull/561 __Parameters:__      [String] class_name - the class name for the element      [String] value - the value to search for __Returns:__      [String] -- ##### [string_visible_contains](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L252) android > def string_visible_contains(class_name, value) Returns a string that matches the first element that contains value For automationName is Appium example: string_visible_contains 'UIATextField', 'sign in' note for XPath: https://github.com/appium/ruby_lib/pull/561 __Parameters:__      [String] class_name - the class name for the element      [String] value - the value to search for __Returns:__      [String] -- ##### [complex_find_contains](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L270) android > def complex_find_contains(class_name, value) Find the first element that contains value __Parameters:__      [String] class_name - the class name for the element      [String] value - the value to search for __Returns:__      [Element] -- ##### [complex_finds_contains](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L278) android > def complex_finds_contains(class_name, value) Find all elements containing value __Parameters:__      [String] class_name - the class name for the element      [String] value - the value to search for __Returns:__      [Array] -- ##### [complex_find_exact](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L320) android > def complex_find_exact(class_name, value) Find the first element exactly matching value __Parameters:__      [String] class_name - the class name for the element      [String] value - the value to search for __Returns:__      [Element] -- ##### [complex_finds_exact](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/common/helper.rb#L328) android > def complex_finds_exact(class_name, value) Find all elements exactly matching value __Parameters:__      [String] class_name - the class name for the element      [String] value - the value to search for __Returns:__      [Element] -- ##### [alert_click](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/alert.rb#L20) android > def alert_click(value) Click the first alert button that contains value or by index. __Parameters:__      [Integer, String] value - either an integer index of the button or the button's name __Returns:__      [void] -- ##### [alert_accept](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/alert.rb#L27) android > def alert_accept Accept the alert. The last button is considered "accept." __Returns:__      [void] -- ##### [alert_accept_text](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/alert.rb#L34) android > def alert_accept_text Get the text of the alert's accept button. The last button is considered "accept." __Returns:__      [String] -- ##### [alert_dismiss](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/alert.rb#L41) android > def alert_dismiss Dismiss the alert. The first button is considered "dismiss." __Returns:__      [void] -- ##### [alert_dismiss_text](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/alert.rb#L48) android > def alert_dismiss_text Get the text of the alert's dismiss button. The first button is considered "dismiss." __Returns:__      [String] -- ##### [button](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/button.rb#L27) android > def button(value) Find the first button that contains value or by index. If int then the button at that index is returned. __Parameters:__      [String, Integer] value - the value to exactly match. __Returns:__      [BUTTON] -- ##### [buttons](https://github.com/appium/ruby_lib/blob/3060ef3bf06c19a79731a49985efa75c3337dd27/lib/appium_lib/android/element/button.rb#L45) android > def buttons(value = false) Find all buttons containing value. If value is omitted, all buttons are returned. __Parameters:__      [String] value - the value to search for __Returns:__      [Array