Class: Appium::Core::Base::Driver
- Inherits:
-
Selenium::WebDriver::Driver
- Object
- Selenium::WebDriver::Driver
- Appium::Core::Base::Driver
- Includes:
- Rotatable, SearchContext, TakesScreenshot, Selenium::WebDriver::DriverExtensions::HasRemoteStatus, Selenium::WebDriver::DriverExtensions::HasSessionId, Selenium::WebDriver::DriverExtensions::HasWebStorage, Selenium::WebDriver::DriverExtensions::UploadsFiles
- Defined in:
- lib/appium_lib_core/common/base/driver.rb
Constant Summary
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.
-
#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) ⇒ ::Selenium::WebDriver::Element
Return elements if current view has a partial image.
- #find_image_occurrence(full_image:, partial_image:, visualize: false, 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 ⇒ Object
Returns an instance of DeviceIME.
-
#ime_activate(ime_name) ⇒ Object
Android only.
- #ime_activated ⇒ Object
-
#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 ⇒ String
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
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 TakesScreenshot
#element_screenshot_as, #save_element_screenshot, #save_screenshot, #save_viewport_screenshot, #screenshot_as
Methods included from SearchContext
Methods included from Rotatable
Constructor Details
#initialize(opts = {}) ⇒ Driver
Returns a new instance of Driver.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 37 def initialize(opts = {}) listener = opts.delete(:listener) @bridge = ::Appium::Core::Base::Bridge.handshake(**opts) if @bridge.dialect == :oss # MJSONWP extend ::Selenium::WebDriver::DriverExtensions::HasTouchScreen extend ::Selenium::WebDriver::DriverExtensions::HasLocation extend ::Selenium::WebDriver::DriverExtensions::HasNetworkConnection elsif @bridge.dialect == :w3c # TODO: Only for Appium. Ideally, we'd like to remove the below like selenium-webdriver extend ::Selenium::WebDriver::DriverExtensions::HasTouchScreen extend ::Selenium::WebDriver::DriverExtensions::HasLocation extend ::Selenium::WebDriver::DriverExtensions::HasNetworkConnection end super(@bridge, listener: listener) end |
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
35 36 37 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 35 def bridge @bridge end |
Instance Method Details
#activate_app(app_id) ⇒ Hash
Activate(Launch) the specified app.
672 673 674 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 672 def activate_app(app_id) @bridge.activate_app(app_id) end |
#app_installed?(app_id) ⇒ Boolean
Check whether the specified app is installed on the device
661 662 663 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 661 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
711 712 713 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 711 def app_state(app_id) @bridge.app_state(app_id) end |
#app_strings(language = nil) ⇒ Hash
Return the hash of all localization strings.
587 588 589 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 587 def app_strings(language = nil) @bridge.app_strings(language) end |
#available_contexts ⇒ Array<String>
Returns All usable contexts, as an array of strings.
353 354 355 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 353 def available_contexts @bridge.available_contexts end |
#back ⇒ String
Get the device window’s size.
852 853 854 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 852 def back navigate.back end |
#background_app(duration = 0) ⇒ String
Backgrounds the app for a set number of seconds. This is a blocking application
602 603 604 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 602 def background_app(duration = 0) @bridge.background_app(duration) end |
#close_app ⇒ Object
Close an app on device
566 567 568 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 566 def close_app @bridge.close_app end |
#compare_images(mode: :matchFeatures, first_image:, second_image:, options: nil) ⇒ Object
1007 1008 1009 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1007 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.
365 366 367 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 365 def context=(context = null) @bridge.set_context(context) end |
#convert_to_element(id) ⇒ ::Selenium::WebDriver::Element
Convert vanilla element response to ::Selenium::WebDriver::Element
1100 1101 1102 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1100 def convert_to_element(id) @bridge.convert_to_element id end |
#current_context ⇒ String
Returns The context currently being used.
343 344 345 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 343 def current_context @bridge.current_context end |
#device_time(format = nil) ⇒ String
Get the time on the device
773 774 775 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 773 def device_time(format = nil) @bridge.device_time(format) end |
#dialect ⇒ :oss|:w3c
Get the dialect value
55 56 57 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 55 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.
1086 1087 1088 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1086 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
1028 1029 1030 1031 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1028 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) ⇒ ::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
1051 1052 1053 1054 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1051 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) ⇒ Object
996 997 998 999 1000 1001 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 996 def find_image_occurrence(full_image:, partial_image:, visualize: false, threshold: nil) @bridge.find_image_occurrence(full_image: full_image, partial_image: partial_image, visualize: visualize, threshold: threshold) end |
#get_images_similarity(first_image:, second_image:, visualize: false) ⇒ Object
1003 1004 1005 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1003 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
193 194 195 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 193 def get_settings settings.get end |
#get_timeouts ⇒ Hash
For W3C. Get the timeout related settings on the server side.
876 877 878 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 876 def get_timeouts @bridge.get_timeouts end |
#hide_keyboard(close_key = nil, strategy = nil) ⇒ Object
Hide the onscreen keyboard
126 127 128 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 126 def hide_keyboard(close_key = nil, strategy = nil) @bridge.hide_keyboard close_key, strategy end |
#ime ⇒ Object
Returns an instance of DeviceIME
251 252 253 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 251 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.
264 265 266 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 264 def ime_activate(ime_name) ime.activate(ime_name) end |
#ime_activated ⇒ Object
298 299 300 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 298 def ime_activated ime.activated? end |
#ime_active_engine ⇒ Object
Android only. Get the name of the active IME engine.
286 287 288 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 286 def ime_active_engine ime.active_engine end |
#ime_available_engines ⇒ Object
Android only. List all available input engines on the machine.
275 276 277 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 275 def ime_available_engines ime.available_engines end |
#ime_deactivate ⇒ Object
Android only. De-activates the currently-active IME engine.
309 310 311 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 309 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
626 627 628 629 630 631 632 633 634 635 636 637 638 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 626 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.
137 138 139 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 137 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
502 503 504 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 502 def keyevent(key, = nil) @bridge.keyevent(key, ) end |
#launch_app ⇒ Object
Start the simulator and application configured with desired capabilities
556 557 558 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 556 def launch_app @bridge.launch_app end |
#lock(duration = nil) ⇒ String
Lock the device
87 88 89 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 87 def lock(duration = nil) @bridge.lock(duration) end |
#locked? ⇒ Boolean Also known as: device_locked?
Check current device status is weather locked or not
98 99 100 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 98 def locked? @bridge.device_locked? end |
#logs ⇒ String
Get the device window’s logs.
864 865 866 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 864 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
546 547 548 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 546 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
982 983 984 985 986 987 988 989 990 991 992 993 994 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 982 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
782 783 784 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 782 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
812 813 814 815 816 817 818 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 812 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
524 525 526 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 524 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.
455 456 457 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 455 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.
489 490 491 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 489 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.
418 419 420 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 418 def push_file(path, filedata) @bridge.push_file(path, filedata) end |
#remove_app(app_id, keep_data: nil, timeout: nil) ⇒ Object
650 651 652 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 650 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
388 389 390 391 392 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 388 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.
576 577 578 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 576 def reset @bridge.reset end |
#send_keys(*key) ⇒ Object Also known as: type
- DEPRECATION
-
Send keys for a current active element
150 151 152 153 154 155 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 150 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
Retrieve the capabilities of the specified session. It’s almost same as @driver.capabilities but you can get more details.
965 966 967 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 965 def session_capabilities @bridge.session_capabilities end |
#sessions ⇒ [Hash]
Returns available sessions on the Appium server
977 978 979 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 977 def sessions @bridge.sessions end |
#set_immediate_value(element, *value) ⇒ Object
Set the value to element directly
376 377 378 379 380 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 376 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.
181 182 183 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 181 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
208 209 210 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 208 def settings=(value) settings.update(value) end |
#shake ⇒ Object
Cause the device to shake
757 758 759 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 757 def shake @bridge.shake end |
#stop_and_save_recording_screen(file_path) ⇒ Object
747 748 749 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 747 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
731 732 733 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 731 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.
333 334 335 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 333 def switch_to_default_context @bridge.switch_to_default_context end |
#terminate_app(app_id, timeout: nil) ⇒ Boolean
Terminate the specified app.
688 689 690 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 688 def terminate_app(app_id, timeout: nil) @bridge.terminate_app(app_id, timeout: timeout) end |
#touch_actions(actions) ⇒ Object
touch actions
778 779 780 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 778 def touch_actions(actions) @bridge.touch_actions(actions) end |
#unlock ⇒ Object
Unlock the device
109 110 111 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 109 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.
69 70 71 72 73 74 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 69 def update_sending_request_to(protocol:, host:, port:, path:) @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.
842 843 844 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 842 def window_rect manage.window.rect end |
#window_size ⇒ Selenium::WebDriver::Dimension
Get the device window’s size.
828 829 830 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 828 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.
323 324 325 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 323 def within_context(context, &block) block_given? ? @bridge.within_context(context, &block) : @bridge.within_context(context) end |