Class: Appium::Core::Base::Driver
- Inherits:
-
Selenium::WebDriver::Driver
- Object
- Selenium::WebDriver::Driver
- Appium::Core::Base::Driver
- Includes:
- HasLocation, HasRemoteStatus, Rotatable, SearchContext, TakesScreenshot, Selenium::WebDriver::DriverExtensions::HasNetworkConnection, Selenium::WebDriver::DriverExtensions::HasRemoteStatus, Selenium::WebDriver::DriverExtensions::HasSessionId, Selenium::WebDriver::DriverExtensions::HasTouchScreen, Selenium::WebDriver::DriverExtensions::HasWebStorage, Selenium::WebDriver::DriverExtensions::UploadsFiles
- Defined in:
- lib/appium_lib_core/common/base/driver.rb
Constant Summary collapse
- AVAILABLE_METHODS =
[ :get, :head, :post, :put, :delete, :connect, :options, :trace, :patch ].freeze
Constants included from SearchContext
Constants included from Rotatable
Instance Attribute Summary collapse
-
#bridge ⇒ Object
readonly
Private API.
Instance Method Summary collapse
-
#activate_app(app_id) ⇒ Hash
Activate(Launch) the specified app.
-
#add_command(method:, url:, name:, &block) ⇒ Object
Define a new custom method to the driver so that you can define your own method for drivers/plugins in Appium 2.0.
-
#app_installed?(app_id) ⇒ Boolean
Check whether the specified app is installed on the device.
-
#app_state(app_id) ⇒ AppState::STATUS
(also: #query_app_state)
Get the status of an existing application on the device.
-
#app_strings(language = nil) ⇒ Hash
Return the hash of all localization strings.
-
#available_contexts ⇒ Array<String>
All usable contexts, as an array of strings.
-
#back ⇒ String
Get the device window’s size.
-
#background_app(duration = 0) ⇒ String
Backgrounds the app for a set number of seconds.
-
#close_app ⇒ Object
Close an app on device.
- #compare_images(mode: :matchFeatures, first_image:, second_image:, options: nil) ⇒ Object
-
#context=(context = null) ⇒ Object
(also: #set_context)
Change the context to the given context.
-
#convert_to_element(id) ⇒ ::Selenium::WebDriver::Element
Convert vanilla element response to ::Selenium::WebDriver::Element.
-
#current_context ⇒ String
The context currently being used.
-
#device_time(format = nil) ⇒ String
Get the time on the device.
-
#dialect ⇒ :oss|:w3c
Get the dialect value.
-
#execute_driver(script: '', type: 'webdriverio', timeout_ms: nil) ⇒ Appium::Core::Base::Device::ExecuteDriver::Result
Run a set of script against the current session, allowing execution of many commands in one Appium request.
-
#find_element_by_image(img_path) ⇒ ::Selenium::WebDriver::Element
Return an element if current view has a partial image.
-
#find_elements_by_image(img_path) ⇒ Array<Selenium::WebDriver::Element>
Return elements if current view has a partial image.
- #find_image_occurrence(full_image:, partial_image:, visualize: false, threshold: nil, multiple: nil, match_neighbour_threshold: nil) ⇒ Object
- #get_images_similarity(first_image:, second_image:, visualize: false) ⇒ Object
-
#get_settings ⇒ Object
Get appium Settings for current test session.
-
#get_timeouts ⇒ Hash
For W3C.
-
#hide_keyboard(close_key = nil, strategy = nil) ⇒ Object
Hide the onscreen keyboard.
-
#ime ⇒ Appium::Core::Base::Driver::DeviceIME
Returns an instance of DeviceIME.
-
#ime_activate(ime_name) ⇒ Object
Android only.
- #ime_activated ⇒ Boolean
-
#ime_active_engine ⇒ Object
Android only.
-
#ime_available_engines ⇒ Object
Android only.
-
#ime_deactivate ⇒ Object
Android only.
-
#initialize(opts = {}) ⇒ Driver
constructor
A new instance of Driver.
-
#install_app(path, replace: nil, timeout: nil, allow_test_packages: nil, use_sdcard: nil, grant_permissions: nil) ⇒ Object
Install the given app onto the device.
-
#keyboard_shown? ⇒ Boolean
(also: #is_keyboard_shown)
Get whether keyboard is displayed or not.
-
#keyevent(key, metastate = nil) ⇒ Object
Send keyevent on the device.(Only for Selendroid) developer.android.com/reference/android/view/KeyEvent.html.
-
#launch_app ⇒ Object
Start the simulator and application configured with desired capabilities.
-
#lock(duration = nil) ⇒ String
Lock the device.
-
#locked? ⇒ Boolean
(also: #device_locked?)
Check current device status is weather locked or not.
-
#logs ⇒ Appium::Core::Logs
Get the device window’s logs.
-
#long_press_keycode(key, metastate: [], flags: []) ⇒ Object
Long press keycode on the device.
-
#match_images_features(first_image:, second_image:, detector_name: 'ORB', match_func: 'BruteForce', good_matches_factor: nil, visualize: false) ⇒ Object
Image Comparison.
- #multi_touch(actions) ⇒ Object
-
#perform_actions(data) ⇒ Object
Send multiple W3C action chains to server.
-
#press_keycode(key, metastate: [], flags: []) ⇒ Object
Press keycode on the device.
-
#pull_file(path) ⇒ Base64-decoded
Pull a file from the simulator/device.
-
#pull_folder(path) ⇒ Base64-decoded
Pull a folder content from the simulator/device.
-
#push_file(path, filedata) ⇒ Object
Place a file in a specific location on the device.
- #remove_app(app_id, keep_data: nil, timeout: nil) ⇒ Object
-
#replace_value(element, *value) ⇒ Object
Replace the value to element directly.
-
#reset ⇒ Object
Reset the device, relaunching the application.
-
#send_keys(*key) ⇒ Object
(also: #type)
- DEPRECATION
-
Send keys for a current active element.
-
#session_capabilities ⇒ Selenium::WebDriver::Remote::Capabilities, Selenium::WebDriver::Remote::W3C::Capabilities
Retrieve the capabilities of the specified session.
-
#sessions ⇒ [Hash]
Returns available sessions on the Appium server.
-
#set_immediate_value(element, *value) ⇒ Object
Set the value to element directly.
-
#settings ⇒ Object
Returns an instance of DriverSettings to call get/update.
-
#settings=(value) ⇒ Object
(also: #update_settings)
Update Appium Settings for current test session Alias of @driver.settings#update.
-
#shake ⇒ Object
Cause the device to shake.
- #stop_and_save_recording_screen(file_path) ⇒ Object
- #stop_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT') ⇒ Object
-
#switch_to_default_context ⇒ Object
Change to the default context.
-
#terminate_app(app_id, timeout: nil) ⇒ Boolean
Terminate the specified app.
-
#touch_actions(actions) ⇒ Object
touch actions.
-
#unlock ⇒ Object
Unlock the device.
-
#update_sending_request_to(protocol:, host:, port:, path:) ⇒ Object
Update
server_urland HTTP clients following this arguments, protocol, host, port and path. -
#window_rect ⇒ Selenium::WebDriver::Rectangle
Get the device window’s rect.
-
#window_size ⇒ Selenium::WebDriver::Dimension
Get the device window’s size.
-
#within_context(context, &block) ⇒ Object
Perform a block within the given context, then switch back to the starting context.
Methods included from HasLocation
#location, #location=, #set_location
Methods included from HasRemoteStatus
Methods included from TakesScreenshot
#element_screenshot_as, #save_element_screenshot, #save_screenshot, #save_viewport_screenshot, #screenshot_as
Methods included from SearchContext
Methods included from Rotatable
Constructor Details
Instance Attribute Details
#bridge ⇒ Object (readonly)
Private API. Do not use this for general use. Used by flutter driver to get bridge for creating a new element
41 42 43 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 41 def bridge @bridge end |
Instance Method Details
#activate_app(app_id) ⇒ Hash
Activate(Launch) the specified app.
772 773 774 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 772 def activate_app(app_id) @bridge.activate_app(app_id) end |
#add_command(method:, url:, name:, &block) ⇒ Object
Define a new custom method to the driver so that you can define your own method for drivers/plugins in Appium 2.0. Appium 2.0 and its custom drivers/plugins allow you to define custom commands that are not part of W3C spec.
147 148 149 150 151 152 153 154 155 156 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 147 def add_command(method:, url:, name:, &block) unless AVAILABLE_METHODS.include? method raise ::Appium::Core::Error::ArgumentError, "Available method is either #{AVAILABLE_METHODS}" end # TODO: Remove this logger ::Appium::Logger.info '[Experimental] this method is experimental for Appium 2.0. This interface may change.' @bridge.add_command method: method, url: url, name: name, &block end |
#app_installed?(app_id) ⇒ Boolean
Check whether the specified app is installed on the device
761 762 763 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 761 def app_installed?(app_id) @bridge.app_installed?(app_id) end |
#app_state(app_id) ⇒ AppState::STATUS Also known as: query_app_state
Get the status of an existing application on the device. State:
:not_installed : The current application state cannot be determined/is unknown
:not_running : The application is not running
:running_in_background_suspended : The application is running in the background and is suspended
:running_in_background : The application is running in the background and is not suspended
:running_in_foreground : The application is running in the foreground
For more details: developer.apple.com/documentation/xctest/xcuiapplicationstate
811 812 813 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 811 def app_state(app_id) @bridge.app_state(app_id) end |
#app_strings(language = nil) ⇒ Hash
Return the hash of all localization strings.
687 688 689 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 687 def app_strings(language = nil) @bridge.app_strings(language) end |
#available_contexts ⇒ Array<String>
Returns All usable contexts, as an array of strings.
453 454 455 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 453 def available_contexts @bridge.available_contexts end |
#back ⇒ String
Get the device window’s size.
952 953 954 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 952 def back navigate.back end |
#background_app(duration = 0) ⇒ String
Backgrounds the app for a set number of seconds. This is a blocking application
702 703 704 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 702 def background_app(duration = 0) @bridge.background_app(duration) end |
#close_app ⇒ Object
Close an app on device
666 667 668 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 666 def close_app @bridge.close_app end |
#compare_images(mode: :matchFeatures, first_image:, second_image:, options: nil) ⇒ Object
1110 1111 1112 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1110 def compare_images(mode: :matchFeatures, first_image:, second_image:, options: nil) @bridge.compare_images(mode: mode, first_image: first_image, second_image: second_image, options: ) end |
#context=(context = null) ⇒ Object Also known as: set_context
Change the context to the given context.
465 466 467 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 465 def context=(context = null) @bridge.set_context(context) end |
#convert_to_element(id) ⇒ ::Selenium::WebDriver::Element
Convert vanilla element response to ::Selenium::WebDriver::Element
1203 1204 1205 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1203 def convert_to_element(id) @bridge.convert_to_element id end |
#current_context ⇒ String
Returns The context currently being used.
443 444 445 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 443 def current_context @bridge.current_context end |
#device_time(format = nil) ⇒ String
Get the time on the device
873 874 875 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 873 def device_time(format = nil) @bridge.device_time(format) end |
#dialect ⇒ :oss|:w3c
Get the dialect value
51 52 53 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 51 def dialect @bridge.dialect end |
#execute_driver(script: '', type: 'webdriverio', timeout_ms: nil) ⇒ Appium::Core::Base::Device::ExecuteDriver::Result
Run a set of script against the current session, allowing execution of many commands in one Appium request. Supports WebdriverIO API so far. Please read command API for more details about acceptable scripts and the output.
1189 1190 1191 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1189 def execute_driver(script: '', type: 'webdriverio', timeout_ms: nil) @bridge.execute_driver(script: script, type: type, timeout_ms: timeout_ms) end |
#find_element_by_image(img_path) ⇒ ::Selenium::WebDriver::Element
Return an element if current view has a partial image. The logic depends on template matching by OpenCV. image-comparison
You can handle settings for the comparision following below. device-settings
1131 1132 1133 1134 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1131 def find_element_by_image(img_path) template = Base64.strict_encode64 File.read img_path find_element :image, template end |
#find_elements_by_image(img_path) ⇒ Array<Selenium::WebDriver::Element>
Return elements if current view has a partial image. The logic depends on template matching by OpenCV. image-comparison
You can handle settings for the comparision following below. device-settings
1154 1155 1156 1157 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1154 def find_elements_by_image(img_path) template = Base64.strict_encode64 File.read img_path find_elements :image, template end |
#find_image_occurrence(full_image:, partial_image:, visualize: false, threshold: nil, multiple: nil, match_neighbour_threshold: nil) ⇒ Object
1096 1097 1098 1099 1100 1101 1102 1103 1104 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1096 def find_image_occurrence(full_image:, partial_image:, visualize: false, threshold: nil, multiple: nil, match_neighbour_threshold: nil) @bridge.find_image_occurrence(full_image: full_image, partial_image: partial_image, visualize: visualize, threshold: threshold, multiple: multiple, match_neighbour_threshold: match_neighbour_threshold) end |
#get_images_similarity(first_image:, second_image:, visualize: false) ⇒ Object
1106 1107 1108 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1106 def get_images_similarity(first_image:, second_image:, visualize: false) @bridge.get_images_similarity(first_image: first_image, second_image: second_image, visualize: visualize) end |
#get_settings ⇒ Object
Get appium Settings for current test session. Alias of @driver.settings.get
289 290 291 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 289 def get_settings settings.get end |
#get_timeouts ⇒ Hash
For W3C. Get the timeout related settings on the server side.
976 977 978 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 976 def get_timeouts @bridge.get_timeouts end |
#hide_keyboard(close_key = nil, strategy = nil) ⇒ Object
Hide the onscreen keyboard
208 209 210 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 208 def hide_keyboard(close_key = nil, strategy = nil) @bridge.hide_keyboard close_key, strategy end |
#ime ⇒ Appium::Core::Base::Driver::DeviceIME
Returns an instance of DeviceIME
349 350 351 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 349 def ime @device_ime ||= DeviceIME.new(@bridge) # rubocop:disable Naming/MemoizedInstanceVariableName end |
#ime_activate(ime_name) ⇒ Object
Android only. Make an engine that is available active.
362 363 364 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 362 def ime_activate(ime_name) ime.activate(ime_name) end |
#ime_activated ⇒ Boolean
398 399 400 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 398 def ime_activated ime.activated? end |
#ime_active_engine ⇒ Object
Android only. Get the name of the active IME engine.
384 385 386 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 384 def ime_active_engine ime.active_engine end |
#ime_available_engines ⇒ Object
Android only. List all available input engines on the machine.
373 374 375 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 373 def ime_available_engines ime.available_engines end |
#ime_deactivate ⇒ Object
Android only. De-activates the currently-active IME engine.
409 410 411 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 409 def ime_deactivate ime.deactivate end |
#install_app(path, replace: nil, timeout: nil, allow_test_packages: nil, use_sdcard: nil, grant_permissions: nil) ⇒ Object
Install the given app onto the device
726 727 728 729 730 731 732 733 734 735 736 737 738 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 726 def install_app(path, replace: nil, timeout: nil, allow_test_packages: nil, use_sdcard: nil, grant_permissions: nil) @bridge.install_app(path, replace: replace, timeout: timeout, allow_test_packages: allow_test_packages, use_sdcard: use_sdcard, grant_permissions: ) end |
#keyboard_shown? ⇒ Boolean Also known as: is_keyboard_shown
Get whether keyboard is displayed or not.
219 220 221 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 219 def keyboard_shown? @bridge.is_keyboard_shown end |
#keyevent(key, metastate = nil) ⇒ Object
Send keyevent on the device.(Only for Selendroid) developer.android.com/reference/android/view/KeyEvent.html
602 603 604 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 602 def keyevent(key, = nil) @bridge.keyevent(key, ) end |
#launch_app ⇒ Object
Start the simulator and application configured with desired capabilities
656 657 658 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 656 def launch_app @bridge.launch_app end |
#lock(duration = nil) ⇒ String
Lock the device
169 170 171 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 169 def lock(duration = nil) @bridge.lock(duration) end |
#locked? ⇒ Boolean Also known as: device_locked?
Check current device status is weather locked or not
180 181 182 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 180 def locked? @bridge.device_locked? end |
#logs ⇒ Appium::Core::Logs
Get the device window’s logs.
964 965 966 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 964 def logs @logs ||= Logs.new(@bridge) end |
#long_press_keycode(key, metastate: [], flags: []) ⇒ Object
Long press keycode on the device. developer.android.com/reference/android/view/KeyEvent.html
646 647 648 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 646 def long_press_keycode(key, metastate: [], flags: []) @bridge.long_press_keycode(key, metastate: , flags: flags) end |
#match_images_features(first_image:, second_image:, detector_name: 'ORB', match_func: 'BruteForce', good_matches_factor: nil, visualize: false) ⇒ Object
Image Comparison
1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1082 def match_images_features(first_image:, second_image:, detector_name: 'ORB', match_func: 'BruteForce', good_matches_factor: nil, visualize: false) @bridge.match_images_features(first_image: first_image, second_image: second_image, detector_name: detector_name, match_func: match_func, good_matches_factor: good_matches_factor, visualize: visualize) end |
#multi_touch(actions) ⇒ Object
882 883 884 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 882 def multi_touch(actions) @bridge.multi_touch(actions) end |
#perform_actions(data) ⇒ Object
Send multiple W3C action chains to server. Use @driver.action for single action chain.
@example: Zoom
f1 = @driver.action.add_pointer_input(:touch, 'finger1')
f1.create_pointer_move(duration: 1, x: 200, y: 500,
origin: ::Selenium::WebDriver::Interactions::PointerMove::VIEWPORT)
f1.create_pointer_down(:left)
f1.create_pointer_move(duration: 1, x: 200, y: 200,
origin: ::Selenium::WebDriver::Interactions::PointerMove::VIEWPORT)
f1.create_pointer_up(:left)
f2 = @driver.action.add_pointer_input(:touch, 'finger2')
f2.create_pointer_move(duration: 1, x: 200, y: 500,
origin: ::Selenium::WebDriver::Interactions::PointerMove::VIEWPORT)
f2.create_pointer_down(:left)
f2.create_pointer_move(duration: 1, x: 200, y: 800,
origin: ::Selenium::WebDriver::Interactions::PointerMove::VIEWPORT)
f2.create_pointer_up(:left)
@driver.perform_actions [f1, f2] #=> 'nil' if the action succeed
912 913 914 915 916 917 918 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 912 def perform_actions(data) raise ArgumentError, "'#{data}' must be Array" unless data.is_a? Array @bridge.send_actions data.map(&:encode).compact data.each(&:clear_actions) nil end |
#press_keycode(key, metastate: [], flags: []) ⇒ Object
Press keycode on the device. developer.android.com/reference/android/view/KeyEvent.html
624 625 626 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 624 def press_keycode(key, metastate: [], flags: []) @bridge.press_keycode(key, metastate: , flags: flags) end |
#pull_file(path) ⇒ Base64-decoded
Pull a file from the simulator/device. On iOS the server should have ifuse libraries installed and configured properly for this feature to work on real devices. On Android the application under test should be built with debuggable flag enabled in order to get access to its container on the internal file system.
555 556 557 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 555 def pull_file(path) @bridge.pull_file(path) end |
#pull_folder(path) ⇒ Base64-decoded
Pull a folder content from the simulator/device. On iOS the server should have ifuse libraries installed and configured properly for this feature to work on real devices. On Android the application under test should be built with debuggable flag enabled in order to get access to its container on the internal file system.
589 590 591 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 589 def pull_folder(path) @bridge.pull_folder(path) end |
#push_file(path, filedata) ⇒ Object
Place a file in a specific location on the device. On iOS, the server should have ifuse libraries installed and configured properly for this feature to work on real devices. On Android, the application under test should be built with debuggable flag enabled in order to get access to its container on the internal file system.
518 519 520 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 518 def push_file(path, filedata) @bridge.push_file(path, filedata) end |
#remove_app(app_id, keep_data: nil, timeout: nil) ⇒ Object
750 751 752 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 750 def remove_app(app_id, keep_data: nil, timeout: nil) @bridge.remove_app(app_id, keep_data: keep_data, timeout: timeout) end |
#replace_value(element, *value) ⇒ Object
Replace the value to element directly
488 489 490 491 492 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 488 def replace_value(element, *value) ::Appium::Logger.warn '[DEPRECATION] driver#replace_value(element, *value) is deprecated. ' \ 'Use Element#replace_value(*value) instead' @bridge.replace_value(element, *value) end |
#reset ⇒ Object
Reset the device, relaunching the application.
676 677 678 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 676 def reset @bridge.reset end |
#send_keys(*key) ⇒ Object Also known as: type
- DEPRECATION
-
Send keys for a current active element
232 233 234 235 236 237 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 232 def send_keys(*key) ::Appium::Logger.warn( '[DEPRECATION] Driver#send_keys is deprecated in W3C spec. Use driver.action.<command>.perform instead' ) @bridge.send_keys_to_active_element(key) end |
#session_capabilities ⇒ Selenium::WebDriver::Remote::Capabilities, Selenium::WebDriver::Remote::W3C::Capabilities
Retrieve the capabilities of the specified session. It’s almost same as @driver.capabilities but you can get more details.
1065 1066 1067 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1065 def session_capabilities @bridge.session_capabilities end |
#sessions ⇒ [Hash]
Returns available sessions on the Appium server
1077 1078 1079 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1077 def sessions @bridge.sessions end |
#set_immediate_value(element, *value) ⇒ Object
Set the value to element directly
476 477 478 479 480 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 476 def set_immediate_value(element, *value) ::Appium::Logger.warn '[DEPRECATION] driver#set_immediate_value(element, *value) is deprecated. ' \ 'Use Element#immediate_value(*value) instead' @bridge.set_immediate_value(element, *value) end |
#settings ⇒ Object
Returns an instance of DriverSettings to call get/update.
277 278 279 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 277 def settings @driver_settings ||= DriverSettings.new(@bridge) # rubocop:disable Naming/MemoizedInstanceVariableName end |
#settings=(value) ⇒ Object Also known as: update_settings
Update Appium Settings for current test session Alias of @driver.settings#update
304 305 306 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 304 def settings=(value) settings.update(value) end |
#shake ⇒ Object
Cause the device to shake
857 858 859 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 857 def shake @bridge.shake end |
#stop_and_save_recording_screen(file_path) ⇒ Object
847 848 849 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 847 def stop_and_save_recording_screen(file_path) @bridge.stop_and_save_recording_screen(file_path) end |
#stop_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT') ⇒ Object
831 832 833 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 831 def stop_recording_screen(remote_path: nil, user: nil, pass: nil, method: 'PUT') @bridge.stop_recording_screen(remote_path: remote_path, user: user, pass: pass, method: method) end |
#switch_to_default_context ⇒ Object
Change to the default context. This is equivalent to set_context nil.
433 434 435 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 433 def switch_to_default_context @bridge.switch_to_default_context end |
#terminate_app(app_id, timeout: nil) ⇒ Boolean
Terminate the specified app.
788 789 790 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 788 def terminate_app(app_id, timeout: nil) @bridge.terminate_app(app_id, timeout: timeout) end |
#touch_actions(actions) ⇒ Object
touch actions
878 879 880 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 878 def touch_actions(actions) @bridge.touch_actions(actions) end |
#unlock ⇒ Object
Unlock the device
191 192 193 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 191 def unlock @bridge.unlock end |
#update_sending_request_to(protocol:, host:, port:, path:) ⇒ Object
Update server_url and HTTP clients following this arguments, protocol, host, port and path. After this method, @bridge.http will be a new instance following them instead of server_url which is set before creating session. If @bridge.http did not have update_sending_request_to method, this method returns immediately.
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 66 def update_sending_request_to(protocol:, host:, port:, path:) unless @bridge.http&.class&.method_defined? :update_sending_request_to ::Appium::Logger.warn "#{@bridge.http&.class} has no 'update_sending_request_to'. " \ 'It keeps current connection target.' return end @bridge.http&.update_sending_request_to(scheme: protocol, host: host, port: port, path: path) end |
#window_rect ⇒ Selenium::WebDriver::Rectangle
Get the device window’s rect.
942 943 944 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 942 def window_rect manage.window.rect end |
#window_size ⇒ Selenium::WebDriver::Dimension
Get the device window’s size.
928 929 930 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 928 def window_size manage.window.size end |
#within_context(context, &block) ⇒ Object
Perform a block within the given context, then switch back to the starting context.
423 424 425 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 423 def within_context(context, &block) block_given? ? @bridge.within_context(context, &block) : @bridge.within_context(context) end |