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.
-
#export_session ⇒ Object
readonly
Returns the value of attribute export_session.
-
#export_session_path ⇒ Object
readonly
Returns the value of attribute export_session_path.
-
#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 ⇒ TouchAction|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.
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 204 205 206 207 |
# File 'lib/appium_lib/driver.rb', line 155 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 @export_session = @core.export_session @export_session_path = @core.export_session_path @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
81 82 83 |
# File 'lib/appium_lib/driver.rb', line 81 def appium_debug @appium_debug end |
#appium_device ⇒ Object (readonly)
Returns the value of attribute appium_device.
71 72 73 |
# File 'lib/appium_lib/driver.rb', line 71 def appium_device @appium_device end |
#appium_port ⇒ Object (readonly)
Returns the value of attribute appium_port.
70 71 72 |
# File 'lib/appium_lib/driver.rb', line 70 def appium_port @appium_port end |
#appium_server_status ⇒ Object (readonly)
Appium’s server version
79 80 81 |
# File 'lib/appium_lib/driver.rb', line 79 def appium_server_status @appium_server_status end |
#appium_wait_interval ⇒ Object (readonly)
Returns the value of attribute appium_wait_interval.
76 77 78 |
# File 'lib/appium_lib/driver.rb', line 76 def appium_wait_interval @appium_wait_interval end |
#appium_wait_timeout ⇒ Object (readonly)
Returns the value of attribute appium_wait_timeout.
75 76 77 |
# File 'lib/appium_lib/driver.rb', line 75 def appium_wait_timeout @appium_wait_timeout end |
#automation_name ⇒ Object (readonly)
Returns the value of attribute automation_name.
72 73 74 |
# File 'lib/appium_lib/driver.rb', line 72 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
86 87 88 |
# File 'lib/appium_lib/driver.rb', line 86 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.
69 70 71 |
# File 'lib/appium_lib/driver.rb', line 69 def default_wait @default_wait end |
#driver ⇒ Driver (readonly)
Returns the driver
84 85 86 |
# File 'lib/appium_lib/driver.rb', line 84 def driver @driver end |
#export_session ⇒ Object (readonly)
Returns the value of attribute export_session.
67 68 69 |
# File 'lib/appium_lib/driver.rb', line 67 def export_session @export_session end |
#export_session_path ⇒ Object (readonly)
Returns the value of attribute export_session_path.
68 69 70 |
# File 'lib/appium_lib/driver.rb', line 68 def export_session_path @export_session_path 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.
74 75 76 |
# File 'lib/appium_lib/driver.rb', line 74 def http_client @http_client end |
#listener ⇒ Object (readonly)
Returns the value of attribute listener.
73 74 75 |
# File 'lib/appium_lib/driver.rb', line 73 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.
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 |
# File 'lib/appium_lib/driver.rb', line 392 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 ⇒ TouchAction|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
337 338 339 |
# File 'lib/appium_lib/driver.rb', line 337 def action @driver.action end |
#appium_client_version ⇒ Hash
Returns the client’s version info
380 381 382 |
# File 'lib/appium_lib/driver.rb', line 380 def appium_client_version { version: ::Appium::VERSION } end |
#appium_server_version ⇒ Hash Also known as: remote_status
Returns the server’s version info
352 353 354 355 356 357 358 359 |
# File 'lib/appium_lib/driver.rb', line 352 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’
317 318 319 |
# File 'lib/appium_lib/driver.rb', line 317 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’
311 312 313 |
# File 'lib/appium_lib/driver.rb', line 311 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’
323 324 325 |
# File 'lib/appium_lib/driver.rb', line 323 def automation_name_is_xcuitest? !@core.automation_name.nil? && @core.automation_name == :xcuitest end |
#current_url ⇒ Object
683 684 685 |
# File 'lib/appium_lib/driver.rb', line 683 def current_url @driver.current_url end |
#device_is_android? ⇒ Boolean
297 298 299 |
# File 'lib/appium_lib/driver.rb', line 297 def device_is_android? @core.device == :android end |
#device_is_ios? ⇒ Boolean
301 302 303 |
# File 'lib/appium_lib/driver.rb', line 301 def device_is_ios? @core.device == :ios end |
#device_is_windows? ⇒ Boolean
305 306 307 |
# File 'lib/appium_lib/driver.rb', line 305 def device_is_windows? @core.device == :windows end |
#driver_attributes ⇒ Object
Returns a hash of the driver attributes
277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 |
# File 'lib/appium_lib/driver.rb', line 277 def driver_attributes { caps: @core.caps, automation_name: @core.automation_name, custom_url: @core.custom_url, export_session: @core.export_session, export_session_path: @core.export_session_path, 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
460 461 462 463 464 465 |
# File 'lib/appium_lib/driver.rb', line 460 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
453 454 455 456 |
# File 'lib/appium_lib/driver.rb', line 453 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
626 627 628 |
# File 'lib/appium_lib/driver.rb', line 626 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.
658 659 660 |
# File 'lib/appium_lib/driver.rb', line 658 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
618 619 620 |
# File 'lib/appium_lib/driver.rb', line 618 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’)
594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 |
# File 'lib/appium_lib/driver.rb', line 594 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.
736 737 738 |
# File 'lib/appium_lib/driver.rb', line 736 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
751 752 753 |
# File 'lib/appium_lib/driver.rb', line 751 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.
720 721 722 |
# File 'lib/appium_lib/driver.rb', line 720 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
766 767 768 |
# File 'lib/appium_lib/driver.rb', line 766 def find_elements_by_image(png_img_paths) @driver.find_elements_by_image(png_img_paths) end |
#get(url) ⇒ Object
679 680 681 |
# File 'lib/appium_lib/driver.rb', line 679 def get(url) @driver.get(url) end |
#log_event(vendor:, event:) ⇒ nil
Logs a custom event. The event is available via Core::Events#get or driver.session_capabilities['events']
with eventTimings
capabilities.
803 804 805 |
# File 'lib/appium_lib/driver.rb', line 803 def log_event(vendor:, event:) @driver.logs.event vendor: vendor, event: event end |
#log_event=(log_event) ⇒ Object
807 808 809 810 811 812 813 |
# File 'lib/appium_lib/driver.rb', line 807 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.
826 827 828 |
# File 'lib/appium_lib/driver.rb', line 826 def log_events(type = nil) @driver.logs.events(type) end |
#manage ⇒ Object
675 676 677 |
# File 'lib/appium_lib/driver.rb', line 675 def manage @driver.manage end |
#navigate ⇒ Object
671 672 673 |
# File 'lib/appium_lib/driver.rb', line 671 def navigate @driver.navigate end |
#no_wait ⇒ Object
Set implicit wait to zero.
563 564 565 |
# File 'lib/appium_lib/driver.rb', line 563 def no_wait @driver.manage.timeouts.implicit_wait = 0 end |
#platform_version ⇒ Array<Integer>
Return the platform version as an array of integers
364 365 366 367 368 369 |
# File 'lib/appium_lib/driver.rb', line 364 def platform_version return [] if @driver.nil? p_version = @driver.capabilities['platformVersion'] || @driver.session_capabilities['platformVersion'] p_version.split('.').map(&:to_i) end |
#restart ⇒ Driver
Restarts the driver
426 427 428 429 |
# File 'lib/appium_lib/driver.rb', line 426 def restart driver_quit start_driver end |
#screenshot(png_save_path) ⇒ File
Takes a png screenshot and saves to the target path.
439 440 441 |
# File 'lib/appium_lib/driver.rb', line 439 def screenshot(png_save_path) @driver.save_screenshot png_save_path end |
#server_url ⇒ String
Get the server url
417 418 419 420 421 422 |
# File 'lib/appium_lib/driver.rb', line 417 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
552 553 554 555 556 557 558 559 560 |
# File 'lib/appium_lib/driver.rb', line 552 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
779 780 781 782 783 784 |
# File 'lib/appium_lib/driver.rb', line 779 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.
577 578 579 580 |
# File 'lib/appium_lib/driver.rb', line 577 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.
525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 |
# File 'lib/appium_lib/driver.rb', line 525 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
693 694 695 |
# File 'lib/appium_lib/driver.rb', line 693 def switch_to @driver.switch_to end |
#title ⇒ Object
687 688 689 |
# File 'lib/appium_lib/driver.rb', line 687 def title @driver.title end |
#window_handle ⇒ Object
Get the current window handle
667 668 669 |
# File 'lib/appium_lib/driver.rb', line 667 def window_handle @driver.window_handle end |
#window_handles ⇒ Object
662 663 664 |
# File 'lib/appium_lib/driver.rb', line 662 def window_handles @driver.window_handles end |
#window_rect ⇒ Selenium::WebDriver::Rectangle
Get the device window’s rect.
492 493 494 |
# File 'lib/appium_lib/driver.rb', line 492 def window_rect @driver.window_rect end |
#window_size ⇒ Selenium::WebDriver::Dimension
Get the device window’s size.
477 478 479 |
# File 'lib/appium_lib/driver.rb', line 477 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.
833 834 835 836 |
# File 'lib/appium_lib/driver.rb', line 833 def x driver_quit exit # exit pry end |