appium_lib 9.6.1 → 9.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -2
- data/CHANGELOG.md +43 -0
- data/Rakefile +1 -1
- data/appium_lib.gemspec +1 -1
- data/docs/android_docs.md +440 -1295
- data/docs/docs.md +10 -103
- data/docs/index_paths.md +2 -0
- data/docs/ios_docs.md +725 -1674
- data/docs/migration.md +17 -0
- data/lib/appium_lib.rb +1 -2
- data/lib/appium_lib/android/android.rb +20 -0
- data/lib/appium_lib/android/{helper.rb → common/helper.rb} +1 -1
- data/lib/appium_lib/android/uiautomator2.rb +5 -4
- data/lib/appium_lib/android/uiautomator2/bridge.rb +16 -0
- data/lib/appium_lib/appium.rb +201 -0
- data/lib/appium_lib/common/helper.rb +18 -20
- data/lib/appium_lib/common/log.rb +24 -0
- data/lib/appium_lib/common/multi_touch.rb +89 -0
- data/lib/appium_lib/common/touch_actions.rb +48 -0
- data/lib/appium_lib/common/wait.rb +10 -49
- data/lib/appium_lib/core/android.rb +4 -0
- data/lib/appium_lib/core/android/device.rb +142 -0
- data/lib/appium_lib/core/android/search_context.rb +17 -0
- data/lib/appium_lib/core/android/uiautomator1/bridge.rb +16 -0
- data/lib/appium_lib/core/android/uiautomator2/bridge.rb +16 -0
- data/lib/appium_lib/core/android_uiautomator2.rb +4 -0
- data/lib/appium_lib/core/common.rb +6 -0
- data/lib/appium_lib/core/common/base.rb +8 -0
- data/lib/appium_lib/core/common/base/bridge.rb +47 -0
- data/lib/appium_lib/core/common/base/capabilities.rb +16 -0
- data/lib/appium_lib/core/common/base/command.rb +10 -0
- data/lib/appium_lib/core/common/base/driver.rb +40 -0
- data/lib/appium_lib/core/common/base/http_default.rb +12 -0
- data/lib/appium_lib/core/common/base/search_context.rb +89 -0
- data/lib/appium_lib/core/common/base/wait.rb +56 -0
- data/lib/appium_lib/{common → core/common}/command.rb +20 -16
- data/lib/appium_lib/core/common/device.rb +470 -0
- data/lib/appium_lib/core/common/error.rb +13 -0
- data/lib/appium_lib/core/common/log.rb +30 -0
- data/lib/appium_lib/{logger.rb → core/common/logger.rb} +2 -0
- data/lib/appium_lib/core/core.rb +38 -0
- data/lib/appium_lib/core/device/multi_touch.rb +213 -0
- data/lib/appium_lib/core/device/touch_actions.rb +206 -0
- data/lib/appium_lib/core/driver.rb +274 -0
- data/lib/appium_lib/core/ios.rb +6 -0
- data/lib/appium_lib/core/ios/device.rb +44 -0
- data/lib/appium_lib/core/ios/search_context.rb +27 -0
- data/lib/appium_lib/core/ios/uiautomation/bridge.rb +17 -0
- data/lib/appium_lib/core/ios/uiautomation/patch.rb +20 -0
- data/lib/appium_lib/core/ios/xcuitest/bridge.rb +18 -0
- data/lib/appium_lib/{ios → core/ios}/xcuitest/device.rb +5 -5
- data/lib/appium_lib/{ios → core/ios}/xcuitest/search_context.rb +13 -9
- data/lib/appium_lib/core/ios_xcuitest.rb +7 -0
- data/lib/appium_lib/core/patch.rb +56 -0
- data/lib/appium_lib/driver.rb +174 -446
- data/lib/appium_lib/ios/{errors.rb → common/errors.rb} +0 -0
- data/lib/appium_lib/ios/{helper.rb → common/helper.rb} +9 -110
- data/lib/appium_lib/ios/ios.rb +20 -0
- data/lib/appium_lib/ios/xcuitest.rb +1 -3
- data/lib/appium_lib/ios/xcuitest/bridge.rb +19 -0
- data/lib/appium_lib/ios/xcuitest/command.rb +4 -1
- data/lib/appium_lib/ios/xcuitest/{gestures.rb → command/gestures.rb} +1 -1
- data/lib/appium_lib/ios/xcuitest/element.rb +1 -18
- data/lib/appium_lib/ios/xcuitest/helper.rb +0 -6
- data/lib/appium_lib/sauce_labs.rb +29 -0
- data/lib/appium_lib/version.rb +5 -0
- data/release_notes.md +8 -0
- metadata +50 -25
- data/lib/appium_lib/android/client_xpath.rb +0 -51
- data/lib/appium_lib/android/device.rb +0 -39
- data/lib/appium_lib/android/mobile_methods.rb +0 -15
- data/lib/appium_lib/android/patch.rb +0 -16
- data/lib/appium_lib/capabilities.rb +0 -13
- data/lib/appium_lib/common/element/window.rb +0 -10
- data/lib/appium_lib/common/error.rb +0 -8
- data/lib/appium_lib/common/patch.rb +0 -190
- data/lib/appium_lib/common/search_context.rb +0 -10
- data/lib/appium_lib/common/version.rb +0 -5
- data/lib/appium_lib/device/device.rb +0 -611
- data/lib/appium_lib/device/multi_touch.rb +0 -225
- data/lib/appium_lib/device/touch_actions.rb +0 -230
- data/lib/appium_lib/ios/mobile_methods.rb +0 -25
- data/lib/appium_lib/ios/patch.rb +0 -22
|
File without changes
|
|
@@ -12,6 +12,7 @@ module Appium
|
|
|
12
12
|
_print_attr(type, page['name'], page['label'], page['value'], page['hint'], page['visible'])
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
+
# @private
|
|
15
16
|
def _print_attr(type, name, label, value, hint, visible) # rubocop:disable Metrics/ParameterLists
|
|
16
17
|
if name == label && name == value
|
|
17
18
|
puts type.to_s if name || label || value || hint || visible
|
|
@@ -43,97 +44,13 @@ module Appium
|
|
|
43
44
|
8226.chr('UTF-8') * length
|
|
44
45
|
end
|
|
45
46
|
|
|
46
|
-
# Returns a string of interesting elements. iOS only.
|
|
47
|
-
#
|
|
48
|
-
# Defaults to inspecting the 1st windows source only.
|
|
49
|
-
# use get_page(get_source) for all window sources
|
|
50
|
-
#
|
|
51
|
-
# @option element [Object] the element to search. omit to search everything
|
|
52
|
-
# @option class_name [String,Symbol] the class name to filter on. case insensitive include match.
|
|
53
|
-
# @return [String]
|
|
54
|
-
# @deprecated
|
|
55
|
-
def get_page(element = source_window(0), class_name = nil)
|
|
56
|
-
warn '[DEPRECATION] get_page will be removed. Please use page or source instead.'
|
|
57
|
-
|
|
58
|
-
lazy_load_strings # populate @strings_xml
|
|
59
|
-
class_name = class_name.to_s.downcase
|
|
60
|
-
|
|
61
|
-
# @private
|
|
62
|
-
def empty(ele)
|
|
63
|
-
(ele['name'] || ele['label'] || ele['value']).nil?
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
# @private
|
|
67
|
-
def fix_space(s)
|
|
68
|
-
# if s is an int, we can't call .empty
|
|
69
|
-
return nil if s.nil? || (s.respond_to?(:empty) && s.empty?)
|
|
70
|
-
# ints don't respond to force encoding
|
|
71
|
-
# ensure we're converting to a string
|
|
72
|
-
unless s.respond_to? :force_encoding
|
|
73
|
-
s_s = s.to_s
|
|
74
|
-
return s_s.empty? ? nil : s_s
|
|
75
|
-
end
|
|
76
|
-
# char code 160 (name, label) vs 32 (value) will break comparison.
|
|
77
|
-
# convert string to binary and remove 160.
|
|
78
|
-
# \xC2\xA0
|
|
79
|
-
s = s.force_encoding('binary').gsub("\xC2\xA0".force_encoding('binary'), ' ') if s
|
|
80
|
-
s.empty? ? nil : s.force_encoding('UTF-8')
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
unless empty(element) || element['visible'] == false
|
|
84
|
-
name = fix_space element['name']
|
|
85
|
-
label = fix_space element['label']
|
|
86
|
-
value = fix_space element['value']
|
|
87
|
-
hint = fix_space element['hint']
|
|
88
|
-
visible = fix_space element['visible']
|
|
89
|
-
type = fix_space element['type']
|
|
90
|
-
|
|
91
|
-
# if class_name is set, mark non-matches as invisible
|
|
92
|
-
visible = (type.downcase.include? class_name).to_s if class_name
|
|
93
|
-
if visible && visible == 'true'
|
|
94
|
-
|
|
95
|
-
UITestElementsPrinter.new._print_attr(type, name, label, value, hint, visible)
|
|
96
|
-
|
|
97
|
-
# there may be many ids with the same value.
|
|
98
|
-
# output all exact matches.
|
|
99
|
-
attributes = [name, label, value, hint].select { |attr| !attr.nil? }
|
|
100
|
-
partial = {}
|
|
101
|
-
id_matches = @strings_xml.select do |key, val|
|
|
102
|
-
next if val.nil? || val.empty?
|
|
103
|
-
partial[key] = val if attributes.detect { |attr| attr.include?(val) }
|
|
104
|
-
attributes.detect { |attr| val == attr }
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
# If there are no exact matches, display partial matches.
|
|
108
|
-
id_matches = partial if id_matches.empty?
|
|
109
|
-
|
|
110
|
-
unless id_matches.empty?
|
|
111
|
-
match_str = ''
|
|
112
|
-
max_len = id_matches.keys.max_by(&:length).length
|
|
113
|
-
|
|
114
|
-
# [0] = key, [1] = val
|
|
115
|
-
id_matches.each do |key, val|
|
|
116
|
-
arrow_space = ' ' * (max_len - key.length).to_i
|
|
117
|
-
match_str += ' ' * 7 + "#{key} #{arrow_space}=> #{val}\n"
|
|
118
|
-
end
|
|
119
|
-
puts " id: #{match_str.strip}\n"
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
children = element['children']
|
|
125
|
-
children.each { |c| get_page c, class_name } if children
|
|
126
|
-
nil
|
|
127
|
-
end
|
|
128
|
-
|
|
129
47
|
# Prints a string of interesting elements to the console.
|
|
130
48
|
#
|
|
131
|
-
#
|
|
132
|
-
#
|
|
133
|
-
#
|
|
134
|
-
#
|
|
135
|
-
#
|
|
136
|
-
# ```
|
|
49
|
+
# @example
|
|
50
|
+
# ```ruby
|
|
51
|
+
# page class: :UIAButton # filter on buttons
|
|
52
|
+
# page class: :UIAButton, window: 1
|
|
53
|
+
# ```
|
|
137
54
|
#
|
|
138
55
|
# @option visible [Symbol] visible value to filter on
|
|
139
56
|
# @option class [Symbol] class name to filter on
|
|
@@ -145,7 +62,7 @@ module Appium
|
|
|
145
62
|
# current_context may be nil which breaks start_with
|
|
146
63
|
if current_context && current_context.start_with?('WEBVIEW')
|
|
147
64
|
s = get_source
|
|
148
|
-
parser = @android_html_parser ||= Nokogiri::HTML::SAX::Parser.new(Common::HTMLElements.new)
|
|
65
|
+
parser = @android_html_parser ||= Nokogiri::HTML::SAX::Parser.new(Appium::Common::HTMLElements.new)
|
|
149
66
|
parser.document.reset
|
|
150
67
|
parser.document.filter = class_name
|
|
151
68
|
parser.parse s
|
|
@@ -163,22 +80,11 @@ module Appium
|
|
|
163
80
|
|
|
164
81
|
# Gets the JSON source of window number
|
|
165
82
|
# @return [JSON]
|
|
166
|
-
def source_window(
|
|
167
|
-
warn '[DEPRECATION]
|
|
83
|
+
def source_window(_window_number = nil)
|
|
84
|
+
warn '[DEPRECATION] source_window will be removed. Please use source instead.'
|
|
168
85
|
get_source
|
|
169
86
|
end
|
|
170
87
|
|
|
171
|
-
# Prints parsed page source to console.
|
|
172
|
-
#
|
|
173
|
-
# example: page_window 0
|
|
174
|
-
#
|
|
175
|
-
# @param window_number [Integer] the int index of the target window
|
|
176
|
-
# @return [void]
|
|
177
|
-
def page_window(window_number = 0)
|
|
178
|
-
get_page source_window window_number
|
|
179
|
-
nil
|
|
180
|
-
end
|
|
181
|
-
|
|
182
88
|
# Find by id
|
|
183
89
|
# @param id [String] the id to search for
|
|
184
90
|
# @return [Element]
|
|
@@ -186,13 +92,6 @@ module Appium
|
|
|
186
92
|
find_element(:id, id)
|
|
187
93
|
end
|
|
188
94
|
|
|
189
|
-
# Return the iOS version as an array of integers
|
|
190
|
-
# @return [Array<Integer>]
|
|
191
|
-
def ios_version
|
|
192
|
-
ios_version = execute_script 'UIATarget.localTarget().systemVersion()'
|
|
193
|
-
ios_version.split('.').map(&:to_i)
|
|
194
|
-
end
|
|
195
|
-
|
|
196
95
|
# Get the element of type class_name at matching index.
|
|
197
96
|
# @param class_name [String] the class name to find
|
|
198
97
|
# @param index [Integer] the index
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require_relative 'common/helper'
|
|
2
|
+
require_relative 'common/errors'
|
|
3
|
+
|
|
4
|
+
require_relative 'element/alert'
|
|
5
|
+
require_relative 'element/button'
|
|
6
|
+
require_relative 'element/generic'
|
|
7
|
+
require_relative 'element/textfield'
|
|
8
|
+
require_relative 'element/text'
|
|
9
|
+
|
|
10
|
+
require_relative 'xcuitest'
|
|
11
|
+
|
|
12
|
+
module Appium
|
|
13
|
+
module Ios
|
|
14
|
+
class Bridge
|
|
15
|
+
def self.for(target)
|
|
16
|
+
target.extend Appium::Ios
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
require_relative 'xcuitest/search_context'
|
|
2
1
|
require_relative 'xcuitest/element'
|
|
3
|
-
require_relative 'xcuitest/gestures'
|
|
4
2
|
require_relative 'xcuitest/command'
|
|
5
|
-
require_relative 'xcuitest/device'
|
|
6
3
|
require_relative 'xcuitest/helper'
|
|
7
4
|
require_relative 'xcuitest/element'
|
|
5
|
+
require_relative 'xcuitest/bridge'
|
|
8
6
|
|
|
9
7
|
module Appium
|
|
10
8
|
module Ios
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require_relative '../ios'
|
|
2
|
+
|
|
3
|
+
module Appium
|
|
4
|
+
module Ios
|
|
5
|
+
module Xcuitest
|
|
6
|
+
class Bridge
|
|
7
|
+
def self.for(target)
|
|
8
|
+
target.extend Appium::Ios
|
|
9
|
+
target.extend Appium::Ios::Device
|
|
10
|
+
target.extend Appium::Ios::Xcuitest
|
|
11
|
+
target.extend Appium::Ios::Xcuitest::Command
|
|
12
|
+
target.extend Appium::Ios::Xcuitest::Helper
|
|
13
|
+
target.extend Appium::Ios::Xcuitest::Gesture
|
|
14
|
+
target.extend Appium::Ios::Xcuitest::Element
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -85,7 +85,7 @@ module Appium
|
|
|
85
85
|
@driver.execute_script 'mobile: touchAndHold', args
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
-
# @param [Element]
|
|
88
|
+
# @param [Element] element Element to long tap on.
|
|
89
89
|
#
|
|
90
90
|
# ```ruby
|
|
91
91
|
# two_finger_tap element: find_element(:accessibility_id, "some item")
|
|
@@ -7,24 +7,7 @@ module Appium
|
|
|
7
7
|
module Ios
|
|
8
8
|
module Xcuitest
|
|
9
9
|
module Element
|
|
10
|
-
#
|
|
11
|
-
# class_eval inside a method because class Selenium::WebDriver::Element
|
|
12
|
-
# will trigger as soon as the file is required. in contrast a method
|
|
13
|
-
# will trigger only when invoked.
|
|
14
|
-
def patch_webdriver_element
|
|
15
|
-
Selenium::WebDriver::Element.class_eval do
|
|
16
|
-
# Enable access to iOS accessibility label
|
|
17
|
-
# accessibility identifier is supported as 'name'
|
|
18
|
-
def label
|
|
19
|
-
attribute('label')
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Cross platform way of entering text into a textfield
|
|
23
|
-
def type(text)
|
|
24
|
-
send_keys text
|
|
25
|
-
end # def type
|
|
26
|
-
end # Selenium::WebDriver::Element.class_eval
|
|
27
|
-
end # def patch_webdriver_element
|
|
10
|
+
# no
|
|
28
11
|
end # module Element
|
|
29
12
|
end # module Xcuitest
|
|
30
13
|
end # module Ios
|
|
@@ -2,12 +2,6 @@ module Appium
|
|
|
2
2
|
module Ios
|
|
3
3
|
module Xcuitest
|
|
4
4
|
module Helper
|
|
5
|
-
# Return the iOS version as an array of integers
|
|
6
|
-
# @return [Array<Integer>]
|
|
7
|
-
def ios_version
|
|
8
|
-
@driver.capabilities['platformVersion']
|
|
9
|
-
end
|
|
10
|
-
|
|
11
5
|
# @private
|
|
12
6
|
def string_attr_exact(class_name, attr, value)
|
|
13
7
|
if attr == '*'
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Appium
|
|
2
|
+
class SauceLabs
|
|
3
|
+
# Username for use on Sauce Labs. Set `false` to disable Sauce, even when SAUCE_USERNAME is in ENV.
|
|
4
|
+
attr_reader :username
|
|
5
|
+
# Access Key for use on Sauce Labs. Set `false` to disable Sauce, even when SAUCE_ACCESS_KEY is in ENV.
|
|
6
|
+
attr_reader :access_key
|
|
7
|
+
# Override the Sauce Appium endpoint to allow e.g. TestObject tests
|
|
8
|
+
attr_reader :endpoint
|
|
9
|
+
|
|
10
|
+
def initialize(appium_lib_opts)
|
|
11
|
+
@username = appium_lib_opts.fetch :sauce_username, ENV['SAUCE_USERNAME']
|
|
12
|
+
@username = nil if !@username || (@username.is_a?(String) && @username.empty?)
|
|
13
|
+
|
|
14
|
+
@access_key = appium_lib_opts.fetch :sauce_access_key, ENV['SAUCE_ACCESS_KEY']
|
|
15
|
+
@access_key = nil if !@access_key || (@access_key.is_a?(String) && @access_key.empty?)
|
|
16
|
+
|
|
17
|
+
@endpoint = appium_lib_opts.fetch :sauce_endpoint, ENV['SAUCE_ENDPOINT']
|
|
18
|
+
@endpoint = 'ondemand.saucelabs.com:443/wd/hub' if !@endpoint || (@endpoint.is_a?(String) && @endpoint.empty?)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def sauce_server_url?
|
|
22
|
+
!username.nil? && !access_key.nil?
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def server_url
|
|
26
|
+
sauce_server_url? ? "https://#{username}:#{access_key}@#{endpoint}" : 'http://127.0.0.1:4723/wd/hub'
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
data/release_notes.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
#### v9.6.1 2017-08-27
|
|
2
|
+
|
|
3
|
+
- [a542287](https://github.com/appium/ruby_lib/commit/a5422874b4ab60430ab9d58289aac001ecd90ecf) [Release 9 6 1 (#650)](https://github.com/appium/ruby_lib/issues/650)
|
|
4
|
+
- [cb9450d](https://github.com/appium/ruby_lib/commit/cb9450d207fb2e23b4dfef4318f47ea3d04c7689) [refactor: divide dependencies (#649)](https://github.com/appium/ruby_lib/issues/649)
|
|
5
|
+
- [0673ad7](https://github.com/appium/ruby_lib/commit/0673ad71a0c13e72c96fa7928ce1077c3684d4c2) [feature: add commands for get_pasteboard and set_pasteboard (#648)](https://github.com/appium/ruby_lib/issues/648)
|
|
6
|
+
- [420c855](https://github.com/appium/ruby_lib/commit/420c855efb27e2dd84fce8b0dbeb0e86d41f72ee) [use 1.8.0 to reduce constant ::Fixnum error (#647)](https://github.com/appium/ruby_lib/issues/647)
|
|
7
|
+
|
|
8
|
+
|
|
1
9
|
#### v9.6.0 2017-08-20
|
|
2
10
|
|
|
3
11
|
- [e1a2cd4](https://github.com/appium/ruby_lib/commit/e1a2cd493a370655b390a1d3803a85fbdb5f7f9d) [Release 9 6 0 (#643)](https://github.com/appium/ruby_lib/issues/643)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: appium_lib
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 9.
|
|
4
|
+
version: 9.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- code@bootstraponline.com
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-10-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: selenium-webdriver
|
|
@@ -253,55 +253,80 @@ files:
|
|
|
253
253
|
- docs_gen/docs_from_js.md
|
|
254
254
|
- docs_gen/make_docs.rb
|
|
255
255
|
- lib/appium_lib.rb
|
|
256
|
-
- lib/appium_lib/android/
|
|
257
|
-
- lib/appium_lib/android/
|
|
256
|
+
- lib/appium_lib/android/android.rb
|
|
257
|
+
- lib/appium_lib/android/common/helper.rb
|
|
258
258
|
- lib/appium_lib/android/element/alert.rb
|
|
259
259
|
- lib/appium_lib/android/element/button.rb
|
|
260
260
|
- lib/appium_lib/android/element/generic.rb
|
|
261
261
|
- lib/appium_lib/android/element/text.rb
|
|
262
262
|
- lib/appium_lib/android/element/textfield.rb
|
|
263
|
-
- lib/appium_lib/android/helper.rb
|
|
264
|
-
- lib/appium_lib/android/mobile_methods.rb
|
|
265
|
-
- lib/appium_lib/android/patch.rb
|
|
266
263
|
- lib/appium_lib/android/uiautomator2.rb
|
|
264
|
+
- lib/appium_lib/android/uiautomator2/bridge.rb
|
|
267
265
|
- lib/appium_lib/android/uiautomator2/element.rb
|
|
268
266
|
- lib/appium_lib/android/uiautomator2/element/button.rb
|
|
269
267
|
- lib/appium_lib/android/uiautomator2/helper.rb
|
|
270
|
-
- lib/appium_lib/
|
|
271
|
-
- lib/appium_lib/common/command.rb
|
|
272
|
-
- lib/appium_lib/common/element/window.rb
|
|
273
|
-
- lib/appium_lib/common/error.rb
|
|
268
|
+
- lib/appium_lib/appium.rb
|
|
274
269
|
- lib/appium_lib/common/helper.rb
|
|
275
|
-
- lib/appium_lib/common/
|
|
276
|
-
- lib/appium_lib/common/
|
|
277
|
-
- lib/appium_lib/common/
|
|
270
|
+
- lib/appium_lib/common/log.rb
|
|
271
|
+
- lib/appium_lib/common/multi_touch.rb
|
|
272
|
+
- lib/appium_lib/common/touch_actions.rb
|
|
278
273
|
- lib/appium_lib/common/wait.rb
|
|
279
|
-
- lib/appium_lib/
|
|
280
|
-
- lib/appium_lib/device
|
|
281
|
-
- lib/appium_lib/
|
|
274
|
+
- lib/appium_lib/core/android.rb
|
|
275
|
+
- lib/appium_lib/core/android/device.rb
|
|
276
|
+
- lib/appium_lib/core/android/search_context.rb
|
|
277
|
+
- lib/appium_lib/core/android/uiautomator1/bridge.rb
|
|
278
|
+
- lib/appium_lib/core/android/uiautomator2/bridge.rb
|
|
279
|
+
- lib/appium_lib/core/android_uiautomator2.rb
|
|
280
|
+
- lib/appium_lib/core/common.rb
|
|
281
|
+
- lib/appium_lib/core/common/base.rb
|
|
282
|
+
- lib/appium_lib/core/common/base/bridge.rb
|
|
283
|
+
- lib/appium_lib/core/common/base/capabilities.rb
|
|
284
|
+
- lib/appium_lib/core/common/base/command.rb
|
|
285
|
+
- lib/appium_lib/core/common/base/driver.rb
|
|
286
|
+
- lib/appium_lib/core/common/base/http_default.rb
|
|
287
|
+
- lib/appium_lib/core/common/base/search_context.rb
|
|
288
|
+
- lib/appium_lib/core/common/base/wait.rb
|
|
289
|
+
- lib/appium_lib/core/common/command.rb
|
|
290
|
+
- lib/appium_lib/core/common/device.rb
|
|
291
|
+
- lib/appium_lib/core/common/error.rb
|
|
292
|
+
- lib/appium_lib/core/common/log.rb
|
|
293
|
+
- lib/appium_lib/core/common/logger.rb
|
|
294
|
+
- lib/appium_lib/core/core.rb
|
|
295
|
+
- lib/appium_lib/core/device/multi_touch.rb
|
|
296
|
+
- lib/appium_lib/core/device/touch_actions.rb
|
|
297
|
+
- lib/appium_lib/core/driver.rb
|
|
298
|
+
- lib/appium_lib/core/ios.rb
|
|
299
|
+
- lib/appium_lib/core/ios/device.rb
|
|
300
|
+
- lib/appium_lib/core/ios/search_context.rb
|
|
301
|
+
- lib/appium_lib/core/ios/uiautomation/bridge.rb
|
|
302
|
+
- lib/appium_lib/core/ios/uiautomation/patch.rb
|
|
303
|
+
- lib/appium_lib/core/ios/xcuitest/bridge.rb
|
|
304
|
+
- lib/appium_lib/core/ios/xcuitest/device.rb
|
|
305
|
+
- lib/appium_lib/core/ios/xcuitest/search_context.rb
|
|
306
|
+
- lib/appium_lib/core/ios_xcuitest.rb
|
|
307
|
+
- lib/appium_lib/core/patch.rb
|
|
282
308
|
- lib/appium_lib/driver.rb
|
|
309
|
+
- lib/appium_lib/ios/common/errors.rb
|
|
310
|
+
- lib/appium_lib/ios/common/helper.rb
|
|
283
311
|
- lib/appium_lib/ios/element/alert.rb
|
|
284
312
|
- lib/appium_lib/ios/element/button.rb
|
|
285
313
|
- lib/appium_lib/ios/element/generic.rb
|
|
286
314
|
- lib/appium_lib/ios/element/text.rb
|
|
287
315
|
- lib/appium_lib/ios/element/textfield.rb
|
|
288
|
-
- lib/appium_lib/ios/
|
|
289
|
-
- lib/appium_lib/ios/helper.rb
|
|
290
|
-
- lib/appium_lib/ios/mobile_methods.rb
|
|
291
|
-
- lib/appium_lib/ios/patch.rb
|
|
316
|
+
- lib/appium_lib/ios/ios.rb
|
|
292
317
|
- lib/appium_lib/ios/xcuitest.rb
|
|
318
|
+
- lib/appium_lib/ios/xcuitest/bridge.rb
|
|
293
319
|
- lib/appium_lib/ios/xcuitest/command.rb
|
|
320
|
+
- lib/appium_lib/ios/xcuitest/command/gestures.rb
|
|
294
321
|
- lib/appium_lib/ios/xcuitest/command/pasteboard.rb
|
|
295
|
-
- lib/appium_lib/ios/xcuitest/device.rb
|
|
296
322
|
- lib/appium_lib/ios/xcuitest/element.rb
|
|
297
323
|
- lib/appium_lib/ios/xcuitest/element/button.rb
|
|
298
324
|
- lib/appium_lib/ios/xcuitest/element/generic.rb
|
|
299
325
|
- lib/appium_lib/ios/xcuitest/element/text.rb
|
|
300
326
|
- lib/appium_lib/ios/xcuitest/element/textfield.rb
|
|
301
|
-
- lib/appium_lib/ios/xcuitest/gestures.rb
|
|
302
327
|
- lib/appium_lib/ios/xcuitest/helper.rb
|
|
303
|
-
- lib/appium_lib/
|
|
304
|
-
- lib/appium_lib/
|
|
328
|
+
- lib/appium_lib/sauce_labs.rb
|
|
329
|
+
- lib/appium_lib/version.rb
|
|
305
330
|
- readme.md
|
|
306
331
|
- release_notes.md
|
|
307
332
|
homepage: https://github.com/appium/ruby_lib
|