Class: Appium::Driver
- Inherits:
-
Object
- Object
- Appium::Driver
- Defined in:
- lib/appium_lib/driver.rb
Instance Attribute Summary collapse
-
#appium_debug ⇒ Object
readonly
Boolean debug mode for the Appium Ruby bindings.
-
#appium_device ⇒ Object
readonly
Returns the value of attribute appium_device.
-
#appium_port ⇒ Object
readonly
Returns the value of attribute appium_port.
-
#appium_server_status ⇒ Object
readonly
Appium’s server version.
-
#appium_wait_interval ⇒ Object
readonly
Returns the value of attribute appium_wait_interval.
-
#appium_wait_timeout ⇒ Object
readonly
Returns the value of attribute appium_wait_timeout.
-
#automation_name ⇒ Object
readonly
Returns the value of attribute automation_name.
-
#caps ⇒ Object
readonly
from Core read www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Driver.
-
#core ⇒ Object
readonly
Instance of Appium::Core::Driver.
-
#custom_url ⇒ Object
readonly
Returns the value of attribute custom_url.
-
#default_wait ⇒ Object
readonly
Returns the value of attribute default_wait.
-
#driver ⇒ Driver
readonly
Returns the driver.
-
#global_webdriver_http_sleep ⇒ Object
The amount to sleep in seconds before every webdriver http call.
-
#http_client ⇒ Object
readonly
Returns the value of attribute http_client.
-
#listener ⇒ Object
readonly
Returns the value of attribute listener.
-
#sauce ⇒ Object
readonly
SauceLab’s settings.
-
#sauce_access_key ⇒ Object
readonly
Access Key for use on Sauce Labs.
-
#sauce_endpoint ⇒ Object
readonly
Override the Sauce Appium endpoint to allow e.g.
-
#sauce_username ⇒ Object
readonly
Username for use on Sauce Labs.
Class Method Summary collapse
-
.absolute_app_path(opts) ⇒ String
- Deprecated
-
Converts app_path to an absolute path.
Instance Method Summary collapse
-
#action ⇒ Selenium::WebDriver::PointerActions
An entry point to chain W3C actions Read www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Bridge/W3C#action-instance_method.
-
#appium_client_version ⇒ Hash
Returns the client’s version info.
-
#appium_server_version ⇒ Hash
(also: #remote_status)
Returns the server’s version info.
-
#automation_name_is_espresso? ⇒ Boolean
Return true if automationName is ‘Espresso’.
-
#automation_name_is_uiautomator2? ⇒ Boolean
Return true if automationName is ‘uiautomator2’.
-
#automation_name_is_xcuitest? ⇒ Boolean
Return true if automationName is ‘XCUITest’.
- #current_url ⇒ Object
- #device_is_android? ⇒ Boolean
- #device_is_ios? ⇒ Boolean
- #device_is_windows? ⇒ Boolean
-
#driver_attributes ⇒ Object
Returns a hash of the driver attributes.
-
#driver_quit ⇒ void
(also: #quit_driver)
Quits the driver.
-
#element_screenshot(element, png_save_path) ⇒ File
Takes a png screenshot of particular element’s area.
-
#execute_async_script(script, *args) ⇒ Object
Wrap calling selenium webdrier APIs via ruby_core.
-
#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.
-
#execute_script(script, *args) ⇒ Object
The same as @driver.execute_script.
-
#exists(pre_check = 0, post_check = @default_wait) { ... } ⇒ Boolean
Returns existence of element.
-
#find_element(*args) ⇒ Element
Calls @driver.find_element.
-
#find_element_by_image(png_img_path) ⇒ ::Appium::Core::ImageElement
Return ImageElement if current view has a partial image.
-
#find_elements(*args) ⇒ Array<Element>
Calls @driver.find_elements_with_appium.
-
#find_elements_by_image(png_img_paths) ⇒ [::Appium::Core::ImageElement], ::Appium::Core::Error::CoreError
Return ImageElement if current view has partial images.
- #get(url) ⇒ Object
-
#initialize(opts = {}, global_driver = false) ⇒ Driver
constructor
Creates a new driver.
-
#log_event(vendor:, event:) ⇒ nil
Logs a custom event.
- #log_event=(log_event) ⇒ Object
-
#log_events(type = nil) ⇒ Hash
Returns events with filtering with ‘type’.
- #manage ⇒ Object
- #navigate ⇒ Object
-
#no_wait ⇒ Object
Set implicit wait to zero.
-
#platform_version ⇒ Array<Integer>
Return the platform version as an array of integers.
-
#restart ⇒ Driver
Restarts the driver.
-
#screenshot(png_save_path) ⇒ File
Takes a png screenshot and saves to the target path.
-
#server_url ⇒ String
Get the server url.
-
#set_implicit_wait(wait) ⇒ Object
To ignore error for Espresso Driver.
-
#set_location(opts = {}) ⇒ Selenium::WebDriver::Location
Calls @driver.set_location.
-
#set_wait(timeout = nil) ⇒ void
Set implicit wait.
-
#start_driver(http_client_ops = { http_client: ::Appium::Http::Default.new, open_timeout: 999_999, read_timeout: 999_999 }) ⇒ Selenium::WebDriver
Creates a new global driver and quits the old one if it exists.
- #switch_to ⇒ TargetLocator
- #title ⇒ Object
-
#window_handle ⇒ Object
Get the current window handle.
- #window_handles ⇒ Object
-
#window_rect ⇒ Selenium::WebDriver::Rectangle
Get the device window’s rect.
-
#window_size ⇒ Selenium::WebDriver::Dimension
Get the device window’s size.
-
#x ⇒ void
Quit the driver and Pry.
Constructor Details
#initialize(opts = {}, global_driver = false) ⇒ Driver
Creates a new driver. The driver is defined as global scope by default. We can avoid defining global driver.
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
# File 'lib/appium_lib/driver.rb', line 153 def initialize(opts = {}, global_driver = false) # Capybara can't put `global_driver` as the 2nd argument. global_driver = opts.delete :global_driver if global_driver.nil? $driver&.driver_quit if global_driver raise 'opts must be a hash' unless opts.is_a? Hash @core = ::Appium::Core.for(opts) extend ::Appium::Core::Device opts = Appium.symbolize_keys opts appium_lib_opts = opts[:appium_lib] || {} @caps = @core.caps @custom_url = @core.custom_url @default_wait = @core.default_wait || 0 @appium_port = @core.port @appium_wait_timeout = @core.wait_timeout @appium_wait_interval = @core.wait_interval @listener = @core.listener @appium_device = @core.device @automation_name = @core.automation_name # Arrange the app capability. This must be after @core = ::Appium::Core.for(opts) set_app_path(opts) # enable debug patch @appium_debug = appium_lib_opts.fetch :debug, !!defined?(Pry) # rubocop:disable Style/DoubleNegation (appium_lib_opts) # Extend Common methods extend Appium::Common extend Appium::Device # Extend each driver's methods extend_for(device: @core.device, automation_name: @core.automation_name) # for command if @appium_debug Appium::Logger.debug opts unless opts.empty? Appium::Logger.debug "Debug is: #{@appium_debug}" Appium::Logger.debug "Device is: #{@core.device}" end # Save global reference to last created Appium driver for top level methods. $driver = self if global_driver self # rubocop:disable Lint/Void # return newly created driver end |
Instance Attribute Details
#appium_debug ⇒ Object (readonly)
Boolean debug mode for the Appium Ruby bindings
79 80 81 |
# File 'lib/appium_lib/driver.rb', line 79 def appium_debug @appium_debug end |
#appium_device ⇒ Object (readonly)
Returns the value of attribute appium_device.
69 70 71 |
# File 'lib/appium_lib/driver.rb', line 69 def appium_device @appium_device end |
#appium_port ⇒ Object (readonly)
Returns the value of attribute appium_port.
68 69 70 |
# File 'lib/appium_lib/driver.rb', line 68 def appium_port @appium_port end |
#appium_server_status ⇒ Object (readonly)
Appium’s server version
77 78 79 |
# File 'lib/appium_lib/driver.rb', line 77 def appium_server_status @appium_server_status end |
#appium_wait_interval ⇒ Object (readonly)
Returns the value of attribute appium_wait_interval.
74 75 76 |
# File 'lib/appium_lib/driver.rb', line 74 def appium_wait_interval @appium_wait_interval end |
#appium_wait_timeout ⇒ Object (readonly)
Returns the value of attribute appium_wait_timeout.
73 74 75 |
# File 'lib/appium_lib/driver.rb', line 73 def appium_wait_timeout @appium_wait_timeout end |
#automation_name ⇒ Object (readonly)
Returns the value of attribute automation_name.
70 71 72 |
# File 'lib/appium_lib/driver.rb', line 70 def automation_name @automation_name end |
#caps ⇒ Object (readonly)
65 66 67 |
# File 'lib/appium_lib/driver.rb', line 65 def caps @caps end |
#core ⇒ Object (readonly)
Instance of Appium::Core::Driver
84 85 86 |
# File 'lib/appium_lib/driver.rb', line 84 def core @core end |
#custom_url ⇒ Object (readonly)
Returns the value of attribute custom_url.
66 67 68 |
# File 'lib/appium_lib/driver.rb', line 66 def custom_url @custom_url end |
#default_wait ⇒ Object (readonly)
Returns the value of attribute default_wait.
67 68 69 |
# File 'lib/appium_lib/driver.rb', line 67 def default_wait @default_wait end |
#driver ⇒ Driver (readonly)
Returns the driver
82 83 84 |
# File 'lib/appium_lib/driver.rb', line 82 def driver @driver end |
#global_webdriver_http_sleep ⇒ Object
The amount to sleep in seconds before every webdriver http call.
49 50 51 |
# File 'lib/appium_lib/driver.rb', line 49 def global_webdriver_http_sleep @global_webdriver_http_sleep end |
#http_client ⇒ Object (readonly)
Returns the value of attribute http_client.
72 73 74 |
# File 'lib/appium_lib/driver.rb', line 72 def http_client @http_client end |
#listener ⇒ Object (readonly)
Returns the value of attribute listener.
71 72 73 |
# File 'lib/appium_lib/driver.rb', line 71 def listener @listener end |
#sauce ⇒ Object (readonly)
SauceLab’s settings
52 53 54 |
# File 'lib/appium_lib/driver.rb', line 52 def sauce @sauce end |
#sauce_access_key ⇒ Object (readonly)
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
58 59 60 |
# File 'lib/appium_lib/driver.rb', line 58 def sauce_access_key @sauce_access_key end |
#sauce_endpoint ⇒ Object (readonly)
Override the Sauce Appium endpoint to allow e.g. TestObject tests same as @sauce.endpoint
61 62 63 |
# File 'lib/appium_lib/driver.rb', line 61 def sauce_endpoint @sauce_endpoint end |
#sauce_username ⇒ Object (readonly)
Username for use on Sauce Labs. Set ‘false` to disable Sauce, even when SAUCE_USERNAME is in ENV. same as @sauce.username
55 56 57 |
# File 'lib/appium_lib/driver.rb', line 55 def sauce_username @sauce_username end |
Class Method Details
.absolute_app_path(opts) ⇒ String
- Deprecated
-
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.
386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 |
# File 'lib/appium_lib/driver.rb', line 386 def self.absolute_app_path(opts) raise 'opts must be a hash' unless opts.is_a? Hash # FIXME: 'caps' and 'app' will be correct caps = opts[:caps] || opts['caps'] || {} app_path = caps[:app] || caps['app'] raise 'absolute_app_path invoked and app is not set!' if app_path.nil? || app_path.empty? # Sauce storage API. http://saucelabs.com/docs/rest#storage return app_path if app_path.start_with? 'sauce-storage:' return app_path if app_path =~ URI::DEFAULT_PARSER.make_regexp # public URL for Sauce ::Appium::Logger.warn('[Deprecation] Converting the path to absolute path will be removed. ' \ 'Please specify the full path which can be accessible from the appium server') absolute_app_path = File. app_path if File.exist? absolute_app_path absolute_app_path else ::Appium::Logger.info("Use #{app_path}") app_path end end |
Instance Method Details
#action ⇒ Selenium::WebDriver::PointerActions
An entry point to chain W3C actions Read www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Base/Bridge/W3C#action-instance_method
331 332 333 |
# File 'lib/appium_lib/driver.rb', line 331 def action @driver.action end |
#appium_client_version ⇒ Hash
Returns the client’s version info
374 375 376 |
# File 'lib/appium_lib/driver.rb', line 374 def appium_client_version { version: ::Appium::VERSION } end |
#appium_server_version ⇒ Hash Also known as: remote_status
Returns the server’s version info
346 347 348 349 350 351 352 353 |
# File 'lib/appium_lib/driver.rb', line 346 def appium_server_version @core.appium_server_version rescue Selenium::WebDriver::Error::WebDriverError => ex raise ::Appium::Core::Error::ServerError unless ex..include?('content-type=""') # server (TestObject for instance) does not respond to status call {} end |
#automation_name_is_espresso? ⇒ Boolean
Return true if automationName is ‘Espresso’
311 312 313 |
# File 'lib/appium_lib/driver.rb', line 311 def automation_name_is_espresso? !@core.automation_name.nil? && @core.automation_name == :espresso end |
#automation_name_is_uiautomator2? ⇒ Boolean
Return true if automationName is ‘uiautomator2’
305 306 307 |
# File 'lib/appium_lib/driver.rb', line 305 def automation_name_is_uiautomator2? !@core.automation_name.nil? && @core.automation_name == :uiautomator2 end |
#automation_name_is_xcuitest? ⇒ Boolean
Return true if automationName is ‘XCUITest’
317 318 319 |
# File 'lib/appium_lib/driver.rb', line 317 def automation_name_is_xcuitest? !@core.automation_name.nil? && @core.automation_name == :xcuitest end |
#current_url ⇒ Object
677 678 679 |
# File 'lib/appium_lib/driver.rb', line 677 def current_url @driver.current_url end |
#device_is_android? ⇒ Boolean
291 292 293 |
# File 'lib/appium_lib/driver.rb', line 291 def device_is_android? @core.device == :android end |
#device_is_ios? ⇒ Boolean
295 296 297 |
# File 'lib/appium_lib/driver.rb', line 295 def device_is_ios? @core.device == :ios end |
#device_is_windows? ⇒ Boolean
299 300 301 |
# File 'lib/appium_lib/driver.rb', line 299 def device_is_windows? @core.device == :windows end |
#driver_attributes ⇒ Object
Returns a hash of the driver attributes
273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 |
# File 'lib/appium_lib/driver.rb', line 273 def driver_attributes { caps: @core.caps, automation_name: @core.automation_name, custom_url: @core.custom_url, default_wait: @default_wait, sauce_username: @sauce.username, sauce_access_key: @sauce.access_key, sauce_endpoint: @sauce.endpoint, port: @core.port, device: @core.device, debug: @appium_debug, listener: @listener, wait_timeout: @core.wait_timeout, wait_interval: @core.wait_interval } end |
#driver_quit ⇒ void Also known as: quit_driver
This method returns an undefined value.
Quits the driver
454 455 456 457 458 459 |
# File 'lib/appium_lib/driver.rb', line 454 def driver_quit @driver&.quit @driver = nil rescue Selenium::WebDriver::Error::WebDriverError nil end |
#element_screenshot(element, png_save_path) ⇒ File
Takes a png screenshot of particular element’s area
447 448 449 450 |
# File 'lib/appium_lib/driver.rb', line 447 def element_screenshot(element, png_save_path) @driver.take_element_screenshot element, png_save_path nil end |
#execute_async_script(script, *args) ⇒ Object
Wrap calling selenium webdrier APIs via ruby_core
Get the window handles of open browser windows
620 621 622 |
# File 'lib/appium_lib/driver.rb', line 620 def execute_async_script(script, *args) @driver.execute_async_script script, *args 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.
652 653 654 |
# File 'lib/appium_lib/driver.rb', line 652 def execute_driver(script: '', type: 'webdriverio', timeout_ms: nil) @driver.execute_driver(script: script, type: type, timeout_ms: timeout_ms) end |
#execute_script(script, *args) ⇒ Object
The same as @driver.execute_script
612 613 614 |
# File 'lib/appium_lib/driver.rb', line 612 def execute_script(script, *args) @driver.execute_script script, *args end |
#exists(pre_check = 0, post_check = @default_wait) { ... } ⇒ Boolean
Returns existence of element.
Example:
exists { button(‘sign in’) } ? puts(‘true’) : puts(‘false’)
588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 |
# File 'lib/appium_lib/driver.rb', line 588 def exists(pre_check = 0, post_check = @default_wait) # do not uset set_wait here. # it will cause problems with other methods reading the default_wait of 0 # which then gets converted to a 1 second wait. @driver.manage.timeouts.implicit_wait = pre_check # the element exists unless an error is raised. exists = true begin yield # search for element rescue StandardError exists = false # error means it's not there end # restore wait @driver.manage.timeouts.implicit_wait = post_check if post_check != pre_check exists end |
#find_element(*args) ⇒ Element
Calls @driver.find_element
If you call ‘Appium.promote_appium_methods`, you can call `find_element` directly.
730 731 732 |
# File 'lib/appium_lib/driver.rb', line 730 def find_element(*args) @driver.find_element(*args) end |
#find_element_by_image(png_img_path) ⇒ ::Appium::Core::ImageElement
Return ImageElement if current view has a partial image
745 746 747 |
# File 'lib/appium_lib/driver.rb', line 745 def find_element_by_image(png_img_path) @driver.find_element_by_image(png_img_path) end |
#find_elements(*args) ⇒ Array<Element>
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.
714 715 716 |
# File 'lib/appium_lib/driver.rb', line 714 def find_elements(*args) @driver.find_elements(*args) end |
#find_elements_by_image(png_img_paths) ⇒ [::Appium::Core::ImageElement], ::Appium::Core::Error::CoreError
Return ImageElement if current view has partial images
760 761 762 |
# File 'lib/appium_lib/driver.rb', line 760 def find_elements_by_image(png_img_paths) @driver.find_elements_by_image(png_img_paths) end |
#get(url) ⇒ Object
673 674 675 |
# File 'lib/appium_lib/driver.rb', line 673 def get(url) @driver.get(url) end |
#log_event(vendor:, event:) ⇒ nil
Logs a custom event. The event is available via Core::Events#get.
796 797 798 |
# File 'lib/appium_lib/driver.rb', line 796 def log_event(vendor:, event:) @driver.logs.event vendor: vendor, event: event end |
#log_event=(log_event) ⇒ Object
800 801 802 803 804 805 806 |
# File 'lib/appium_lib/driver.rb', line 800 def log_event=(log_event) unless log_event.is_a?(Hash) raise ::Appium::Core::Error::ArgumentError('log_event should be Hash like { vendor: "appium", event: "funEvent"}') end @driver.logs.event vendor: log_event[:vendor], event: log_event[:event] end |
#log_events(type = nil) ⇒ Hash
Returns events with filtering with ‘type’. Defaults to all available events.
819 820 821 |
# File 'lib/appium_lib/driver.rb', line 819 def log_events(type = nil) @driver.logs.events(type) end |
#manage ⇒ Object
669 670 671 |
# File 'lib/appium_lib/driver.rb', line 669 def manage @driver.manage end |
#navigate ⇒ Object
665 666 667 |
# File 'lib/appium_lib/driver.rb', line 665 def navigate @driver.navigate end |
#no_wait ⇒ Object
Set implicit wait to zero.
557 558 559 |
# File 'lib/appium_lib/driver.rb', line 557 def no_wait @driver.manage.timeouts.implicit_wait = 0 end |
#platform_version ⇒ Array<Integer>
Return the platform version as an array of integers
358 359 360 361 362 363 |
# File 'lib/appium_lib/driver.rb', line 358 def platform_version return [] if @driver.nil? p_version = @driver.capabilities['platformVersion'] p_version.split('.').map(&:to_i) end |
#restart ⇒ Driver
Restarts the driver
420 421 422 423 |
# File 'lib/appium_lib/driver.rb', line 420 def restart driver_quit start_driver end |
#screenshot(png_save_path) ⇒ File
Takes a png screenshot and saves to the target path.
433 434 435 |
# File 'lib/appium_lib/driver.rb', line 433 def screenshot(png_save_path) @driver.save_screenshot png_save_path end |
#server_url ⇒ String
Get the server url
411 412 413 414 415 416 |
# File 'lib/appium_lib/driver.rb', line 411 def server_url return @core.custom_url if @core.custom_url return @sauce.server_url if @sauce.sauce_server_url? "http://127.0.0.1:#{@core.port}/wd/hub" end |
#set_implicit_wait(wait) ⇒ Object
To ignore error for Espresso Driver
546 547 548 549 550 551 552 553 554 |
# File 'lib/appium_lib/driver.rb', line 546 def set_implicit_wait(wait) @driver.manage.timeouts.implicit_wait = wait rescue Selenium::WebDriver::Error::UnknownError => e unless e..include?('The operation requested is not yet implemented by Espresso driver') raise ::Appium::Core::Error::ServerError end {} end |
#set_location(opts = {}) ⇒ Selenium::WebDriver::Location
This method does not work on real devices.
Calls @driver.set_location
773 774 775 776 777 778 |
# File 'lib/appium_lib/driver.rb', line 773 def set_location(opts = {}) latitude = opts.fetch(:latitude) longitude = opts.fetch(:longitude) altitude = opts.fetch(:altitude, 75) @driver.set_location(latitude, longitude, altitude) end |
#set_wait(timeout = nil) ⇒ void
This method returns an undefined value.
Set implicit wait. Default to @default_wait.
571 572 573 574 |
# File 'lib/appium_lib/driver.rb', line 571 def set_wait(timeout = nil) timeout = @default_wait if timeout.nil? @driver.manage.timeouts.implicit_wait = timeout end |
#start_driver(http_client_ops = { http_client: ::Appium::Http::Default.new, open_timeout: 999_999, read_timeout: 999_999 }) ⇒ Selenium::WebDriver
Creates a new global driver and quits the old one if it exists. You can customise http_client as the following
Read www.rubydoc.info/github/appium/ruby_lib_core/Appium/Core/Device to understand more what the driver can call instance methods.
519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 |
# File 'lib/appium_lib/driver.rb', line 519 def start_driver(http_client_ops = { http_client: ::Appium::Http::Default.new, open_timeout: 999_999, read_timeout: 999_999 }) # TODO: do not kill the previous session in the future version. if $driver.nil? driver_quit else $driver.driver_quit end # If automationName is set only in server side, then the following automation_name should be nil before # starting driver. automation_name = @core.automation_name @driver = @core.start_driver(server_url: server_url, http_client_ops: http_client_ops) @http_client = @core.http_client # if automation_name was nil before start_driver, then re-extend driver specific methods # to be able to extend correctly. extend_for(device: @core.device, automation_name: @core.automation_name) if automation_name.nil? @appium_server_status = appium_server_version @driver end |
#switch_to ⇒ TargetLocator
687 688 689 |
# File 'lib/appium_lib/driver.rb', line 687 def switch_to @driver.switch_to end |
#title ⇒ Object
681 682 683 |
# File 'lib/appium_lib/driver.rb', line 681 def title @driver.title end |
#window_handle ⇒ Object
Get the current window handle
661 662 663 |
# File 'lib/appium_lib/driver.rb', line 661 def window_handle @driver.window_handle end |
#window_handles ⇒ Object
656 657 658 |
# File 'lib/appium_lib/driver.rb', line 656 def window_handles @driver.window_handles end |
#window_rect ⇒ Selenium::WebDriver::Rectangle
Get the device window’s rect.
486 487 488 |
# File 'lib/appium_lib/driver.rb', line 486 def window_rect @driver.window_rect end |
#window_size ⇒ Selenium::WebDriver::Dimension
Get the device window’s size.
471 472 473 |
# File 'lib/appium_lib/driver.rb', line 471 def window_size @driver.window_size end |
#x ⇒ void
This method returns an undefined value.
Quit the driver and Pry. quit and exit are reserved by Pry.
826 827 828 829 |
# File 'lib/appium_lib/driver.rb', line 826 def x driver_quit exit # exit pry end |