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