lib/appium_lib/driver.rb in appium_lib-9.6.0 vs lib/appium_lib/driver.rb in appium_lib-9.6.1

- old
+ new

@@ -1,10 +1,13 @@ require 'rubygems' require 'ap' require 'selenium-webdriver' require 'nokogiri' +# base +require_relative 'capabilities' + # common require_relative 'common/helper' require_relative 'common/wait' require_relative 'common/patch' require_relative 'common/version' @@ -23,20 +26,11 @@ require_relative 'ios/element/generic' require_relative 'ios/element/textfield' require_relative 'ios/element/text' require_relative 'ios/mobile_methods' -# ios - xcuitest -require_relative 'ios/xcuitest/element' -require_relative 'ios/xcuitest/gestures' -require_relative 'ios/xcuitest/mobile_methods' -require_relative 'ios/xcuitest/device' -require_relative 'ios/xcuitest/helper' -require_relative 'ios/xcuitest/element/text' -require_relative 'ios/xcuitest/element/textfield' -require_relative 'ios/xcuitest/element/generic' -require_relative 'ios/xcuitest/element/button' +require_relative 'ios/xcuitest' # android require_relative 'android/helper' require_relative 'android/patch' require_relative 'android/client_xpath' @@ -48,11 +42,11 @@ require_relative 'android/mobile_methods' require_relative 'android/device' # android - uiautomator2 -require_relative 'android/uiautomator2/helper.rb' +require_relative 'android/uiautomator2' # device methods require_relative 'device/device' require_relative 'device/touch_actions' require_relative 'device/multi_touch' @@ -267,22 +261,10 @@ require 'rubygems' Gem.loaded_specs['selenium-webdriver'].version >= Gem::Version.new(version) end class Driver - module Capabilities - # @param [Hash] opts_caps Capabilities for Appium server. All capability keys are converted to lowerCamelCase when - # this client sends capabilities to Appium server as JSON format. - # @return [::Selenium::WebDriver::Remote::W3C::Capabilities] Return instance of Appium::Driver::Capabilities - # inherited ::Selenium::WebDriver::Remote::W3C::Capabilities - def self.init_caps_for_appium(opts_caps = {}) - ::Selenium::WebDriver::Remote::W3C::Capabilities.new(opts_caps) - end - end - end - - class Driver # attr readers are promoted to global scope. To avoid clobbering, they're # made available via the driver_attributes method # # attr_accessor is repeated for each one so YARD documents them properly. @@ -385,15 +367,19 @@ # ``` # # @param opts [Object] A hash containing various options. # @param global_driver [Bool] A bool require global driver before initialize. # @return [Driver] - def initialize(opts = {}, global_driver = true) - if global_driver + def initialize(opts = {}, global_driver = nil) + if global_driver.nil? warn '[DEPRECATION] Appium::Driver.new(opts) will not generate global driver by default.' \ 'If you would like to generate the global driver dy default, ' \ 'please initialise driver with Appium::Driver.new(opts, true)' + global_driver = true # if global_driver is nil, then global_driver must be default value. + end + + if global_driver $driver.driver_quit if $driver end raise 'opts must be a hash' unless opts.is_a? Hash opts = Appium.symbolize_keys opts @@ -424,16 +410,19 @@ if device_is_android? extend Appium::Android extend Appium::Android::Device if automation_name_is_uiautomator2? + extend Appium::Android::Uiautomator2 extend Appium::Android::Uiautomator2::Helper + extend Appium::Android::Uiautomator2::Element end else extend Appium::Ios if automation_name_is_xcuitest? - # Override touch actions and patch_webdriver_element extend Appium::Ios::Xcuitest + extend Appium::Ios::Xcuitest::SearchContext + extend Appium::Ios::Xcuitest::Command extend Appium::Ios::Xcuitest::Helper extend Appium::Ios::Xcuitest::Gesture extend Appium::Ios::Xcuitest::Device extend Appium::Ios::Xcuitest::Element end