Class: Appium::Core::Base::Driver
- Inherits:
-
Selenium::WebDriver::Driver
- Object
- Selenium::WebDriver::Driver
- Appium::Core::Base::Driver
- Includes:
- HasLocation, HasNetworkConnection, HasRemoteStatus, Rotatable, SearchContext, TakesScreenshot, Waitable, 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 collapse
- AVAILABLE_METHODS =
[ :get, :head, :post, :put, :delete, :connect, :options, :trace, :patch ].freeze
Constants included from SearchContext
Constants included from Rotatable
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
deprecated
Deprecated.
Except for Windows
- #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) ⇒ ::Appium::Core::Element
Convert vanilla element response to ::Appium::Core::Element.
-
#current_context ⇒ String
The context currently being used.
-
#device_time(format = nil) ⇒ String
Get the time on the device.
-
#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) ⇒ ::Appium::Core::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.
-
#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.
-
#launch_app ⇒ Object
deprecated
Deprecated.
Except for Windows
-
#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 remote device.
-
#pull_folder(path) ⇒ Base64-decoded
Pull a folder content from the remote 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
- #reset ⇒ Object deprecated Deprecated.
-
#session_capabilities ⇒ Selenium::WebDriver::Remote::Capabilities
Retrieve the capabilities of the specified session.
-
#sessions ⇒ [Hash]
Returns available sessions on the Appium server.
-
#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 Waitable
Methods included from HasNetworkConnection
#network_connection_type, #network_connection_type=
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
Instance Method Details
#activate_app(app_id) ⇒ Hash
Activate(Launch) the specified app.
678 679 680 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 678 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.
171 172 173 174 175 176 177 178 179 180 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 171 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 before Appium 2.0 release ::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
667 668 669 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 667 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
717 718 719 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 717 def app_state(app_id) @bridge.app_state(app_id) end |
#app_strings(language = nil) ⇒ Hash
Return the hash of all localization strings.
593 594 595 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 593 def app_strings(language = nil) @bridge.app_strings(language) end |
#available_contexts ⇒ Array<String>
Returns All usable contexts, as an array of strings.
403 404 405 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 403 def available_contexts @bridge.available_contexts end |
#back ⇒ String
Get the device window’s size.
862 863 864 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 862 def back navigate.back end |
#background_app(duration = 0) ⇒ String
Backgrounds the app for a set number of seconds. This is a blocking application
608 609 610 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 608 def background_app(duration = 0) @bridge.background_app(duration) end |
#close_app ⇒ Object
Except for Windows
Close an app on device
561 562 563 564 565 566 567 568 569 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 561 def close_app # TODO: Define only in Windows module when ruby_lib_core removes this method if @automation_name != :windows ::Appium::Logger.warn( '[DEPRECATION] close_app is deprecated. Please use terminate_app instead.' ) end @bridge.close_app end |
#compare_images(mode: :matchFeatures, first_image:, second_image:, options: nil) ⇒ Object
1018 1019 1020 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1018 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.
415 416 417 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 415 def context=(context = null) @bridge.set_context(context) end |
#convert_to_element(id) ⇒ ::Appium::Core::Element
Convert vanilla element response to ::Appium::Core::Element
1111 1112 1113 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1111 def convert_to_element(id) @bridge.convert_to_element id end |
#current_context ⇒ String
Returns The context currently being used.
393 394 395 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 393 def current_context @bridge.current_context end |
#device_time(format = nil) ⇒ String
Get the time on the device
779 780 781 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 779 def device_time(format = nil) @bridge.device_time(format) 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.
1097 1098 1099 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1097 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) ⇒ ::Appium::Core::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
1039 1040 1041 1042 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1039 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
1062 1063 1064 1065 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1062 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
1004 1005 1006 1007 1008 1009 1010 1011 1012 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1004 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
1014 1015 1016 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 1014 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
267 268 269 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 267 def get_settings settings.get end |
#get_timeouts ⇒ Hash
For W3C. Get the timeout related settings on the server side.
886 887 888 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 886 def get_timeouts @bridge.get_timeouts end |
#hide_keyboard(close_key = nil, strategy = nil) ⇒ Object
Hide the onscreen keyboard
232 233 234 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 232 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
299 300 301 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 299 def ime @ime ||= DeviceIME.new(@bridge) end |
#ime_activate(ime_name) ⇒ Object
Android only. Make an engine that is available active.
312 313 314 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 312 def ime_activate(ime_name) ime.activate(ime_name) end |
#ime_activated ⇒ Boolean
348 349 350 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 348 def ime_activated ime.activated? end |
#ime_active_engine ⇒ Object
Android only. Get the name of the active IME engine.
334 335 336 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 334 def ime_active_engine ime.active_engine end |
#ime_available_engines ⇒ Object
Android only. List all available input engines on the machine.
323 324 325 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 323 def ime_available_engines ime.available_engines end |
#ime_deactivate ⇒ Object
Android only. De-activates the currently-active IME engine.
359 360 361 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 359 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
632 633 634 635 636 637 638 639 640 641 642 643 644 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 632 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.
243 244 245 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 243 def keyboard_shown? @bridge.is_keyboard_shown end |
#launch_app ⇒ Object
Except for Windows
Start the simulator and application configured with desired capabilities
544 545 546 547 548 549 550 551 552 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 544 def launch_app # TODO: Define only in Windows module when ruby_lib_core removes this method if @automation_name != :windows ::Appium::Logger.warn( '[DEPRECATION] launch_app is deprecated. Please use activate_app instead.' ) end @bridge.launch_app end |
#lock(duration = nil) ⇒ String
Lock the device
193 194 195 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 193 def lock(duration = nil) @bridge.lock(duration) end |
#locked? ⇒ Boolean Also known as: device_locked?
Check current device status is weather locked or not
204 205 206 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 204 def locked? @bridge.device_locked? end |
#logs ⇒ Appium::Core::Logs
Get the device window’s logs.
874 875 876 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 874 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
533 534 535 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 533 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
990 991 992 993 994 995 996 997 998 999 1000 1001 1002 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 990 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
788 789 790 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 788 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 = ::Selenium::WebDriver::Interactions.pointer(:touch, name: '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 = ::Selenium::WebDriver::Interactions.pointer(:touch, name: '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
818 819 820 821 822 823 824 825 826 827 828 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 818 def perform_actions(data) raise ::Appium::Core::Error::ArgumentError, "'#{data}' must be Array" unless data.is_a? Array # NOTE: 'add_input' in Selenium Ruby implementation has additional 'pause'. # This implementation is to avoid the additional pause. # https://github.com/SeleniumHQ/selenium/blob/64447d4b03f6986337d1ca8d8b6476653570bcc1/rb/lib/selenium/webdriver/common/action_builder.rb#L207 @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
511 512 513 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 511 def press_keycode(key, metastate: [], flags: []) @bridge.press_keycode(key, metastate: , flags: flags) end |
#pull_file(path) ⇒ Base64-decoded
Pull a file from the remote device. 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.
464 465 466 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 464 def pull_file(path) @bridge.pull_file(path) end |
#pull_folder(path) ⇒ Base64-decoded
Pull a folder content from the remote device. 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 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.
436 437 438 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 436 def push_file(path, filedata) @bridge.push_file(path, filedata) end |
#remove_app(app_id, keep_data: nil, timeout: nil) ⇒ Object
656 657 658 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 656 def remove_app(app_id, keep_data: nil, timeout: nil) @bridge.remove_app(app_id, keep_data: keep_data, timeout: timeout) end |
#reset ⇒ Object
Reset the device, relaunching the application.
578 579 580 581 582 583 584 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 578 def reset ::Appium::Logger.warn( '[DEPRECATION] reset is deprecated. Please use terminate_app and activate_app, ' \ 'or quit and create a new session instead.' ) @bridge.reset 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.
973 974 975 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 973 def session_capabilities @bridge.session_capabilities end |
#sessions ⇒ [Hash]
Returns available sessions on the Appium server
985 986 987 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 985 def sessions @bridge.sessions end |
#settings ⇒ Object
Returns an instance of DriverSettings to call get/update.
255 256 257 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 255 def settings @settings ||= DriverSettings.new(@bridge) end |
#settings=(value) ⇒ Object Also known as: update_settings
Update Appium Settings for current test session Alias of @driver.settings#update
282 283 284 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 282 def settings=(value) settings.update(value) end |
#shake ⇒ Object
Cause the device to shake
763 764 765 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 763 def shake @bridge.shake end |
#stop_and_save_recording_screen(file_path) ⇒ Object
753 754 755 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 753 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
737 738 739 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 737 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.
383 384 385 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 383 def switch_to_default_context @bridge.switch_to_default_context end |
#terminate_app(app_id, timeout: nil) ⇒ Boolean
Terminate the specified app.
694 695 696 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 694 def terminate_app(app_id, timeout: nil) @bridge.terminate_app(app_id, timeout: timeout) end |
#touch_actions(actions) ⇒ Object
touch actions
784 785 786 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 784 def touch_actions(actions) @bridge.touch_actions(actions) end |
#unlock ⇒ Object
Unlock the device
215 216 217 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 215 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.
90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 90 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.
852 853 854 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 852 def window_rect manage.window.rect end |
#window_size ⇒ Selenium::WebDriver::Dimension
Get the device window’s size.
838 839 840 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 838 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.
373 374 375 |
# File 'lib/appium_lib_core/common/base/driver.rb', line 373 def within_context(context, &block) block_given? ? @bridge.within_context(context, &block) : @bridge.within_context(context) end |