appium_lib 10.2.0 → 10.3.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 +1 -14
- data/.travis.yml +0 -2
- data/CHANGELOG.md +9 -0
- data/Gemfile +14 -0
- data/Rakefile +14 -0
- data/appium_lib.gemspec +2 -2
- data/docs/android_docs.md +261 -229
- data/docs/ios_docs.md +346 -282
- data/lib/appium_lib.rb +14 -0
- data/lib/appium_lib/android/android.rb +14 -0
- data/lib/appium_lib/android/common/command/command.rb +14 -0
- data/lib/appium_lib/android/common/helper.rb +14 -0
- data/lib/appium_lib/android/element/alert.rb +14 -0
- data/lib/appium_lib/android/element/button.rb +35 -18
- data/lib/appium_lib/android/element/generic.rb +14 -0
- data/lib/appium_lib/android/element/text.rb +29 -14
- data/lib/appium_lib/android/element/textfield.rb +30 -15
- data/lib/appium_lib/android/espresso.rb +14 -0
- data/lib/appium_lib/android/espresso/bridge.rb +14 -0
- data/lib/appium_lib/android/espresso/element.rb +14 -0
- data/lib/appium_lib/android/espresso/element/button.rb +26 -12
- data/lib/appium_lib/android/espresso/element/generic.rb +14 -0
- data/lib/appium_lib/android/espresso/helper.rb +14 -0
- data/lib/appium_lib/android/uiautomator2.rb +14 -0
- data/lib/appium_lib/android/uiautomator2/bridge.rb +14 -0
- data/lib/appium_lib/android/uiautomator2/element.rb +14 -0
- data/lib/appium_lib/android/uiautomator2/element/button.rb +14 -0
- data/lib/appium_lib/android/uiautomator2/helper.rb +14 -0
- data/lib/appium_lib/appium.rb +14 -0
- data/lib/appium_lib/common/command.rb +14 -0
- data/lib/appium_lib/common/command/ws_logcat.rb +14 -0
- data/lib/appium_lib/common/device.rb +14 -0
- data/lib/appium_lib/common/helper.rb +19 -5
- data/lib/appium_lib/common/http_client.rb +14 -0
- data/lib/appium_lib/common/log.rb +14 -0
- data/lib/appium_lib/common/multi_touch.rb +14 -0
- data/lib/appium_lib/common/touch_actions.rb +14 -0
- data/lib/appium_lib/common/wait.rb +14 -0
- data/lib/appium_lib/driver.rb +16 -2
- data/lib/appium_lib/ios/common/errors.rb +14 -0
- data/lib/appium_lib/ios/common/helper.rb +15 -1
- data/lib/appium_lib/ios/element/alert.rb +14 -0
- data/lib/appium_lib/ios/element/button.rb +26 -9
- data/lib/appium_lib/ios/element/generic.rb +14 -0
- data/lib/appium_lib/ios/element/text.rb +26 -9
- data/lib/appium_lib/ios/element/textfield.rb +25 -7
- data/lib/appium_lib/ios/ios.rb +14 -0
- data/lib/appium_lib/ios/xcuitest.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/bridge.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/command.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/command/certificate.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/command/gestures.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/command/get_context.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/command/multi_app_handler.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/command/pasteboard.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/command/source.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/element.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/element/button.rb +22 -8
- data/lib/appium_lib/ios/xcuitest/element/generic.rb +14 -0
- data/lib/appium_lib/ios/xcuitest/element/text.rb +22 -8
- data/lib/appium_lib/ios/xcuitest/element/textfield.rb +18 -4
- data/lib/appium_lib/ios/xcuitest/helper.rb +14 -0
- data/lib/appium_lib/sauce_labs.rb +14 -0
- data/lib/appium_lib/version.rb +16 -2
- data/release_notes.md +7 -0
- metadata +4 -4
@@ -1,18 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
# XCUIElementTypeButton methods
|
2
16
|
module Appium
|
3
17
|
module Ios
|
4
|
-
|
5
|
-
|
18
|
+
UIA_BUTTON = 'UIAButton'
|
19
|
+
UIAButton = UIA_BUTTON
|
20
|
+
|
21
|
+
XCUIELEMENT_TYPE_BUTTON = 'XCUIElementTypeButton'
|
22
|
+
XCUIElementTypeButton = XCUIELEMENT_TYPE_BUTTON
|
6
23
|
|
7
24
|
# @return [String] Class name for button
|
8
25
|
def button_class
|
9
|
-
|
26
|
+
UIA_BUTTON
|
10
27
|
end
|
11
28
|
|
12
29
|
# Find the first UIAButton|XCUIElementTypeButton that contains value or by index.
|
13
30
|
# @param value [String, Integer] the value to exactly match.
|
14
31
|
# If int then the UIAButton|XCUIElementTypeButton at that index is returned.
|
15
|
-
# @return [
|
32
|
+
# @return [UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON]
|
16
33
|
def button(value)
|
17
34
|
# return button at index.
|
18
35
|
return ele_index button_class, value if value.is_a? Numeric
|
@@ -23,7 +40,7 @@ module Appium
|
|
23
40
|
# Find all UIAButtons|XCUIElementTypeButtons containing value.
|
24
41
|
# If value is omitted, all UIAButtons|XCUIElementTypeButtons are returned.
|
25
42
|
# @param value [String] the value to search for
|
26
|
-
# @return [Array<
|
43
|
+
# @return [Array<UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON>]
|
27
44
|
def buttons(value = false)
|
28
45
|
return tags button_class unless value
|
29
46
|
|
@@ -31,7 +48,7 @@ module Appium
|
|
31
48
|
end
|
32
49
|
|
33
50
|
# Find the first UIAButton|XCUIElementTypeButton.
|
34
|
-
# @return [
|
51
|
+
# @return [UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON]
|
35
52
|
def first_button
|
36
53
|
first_ele button_class
|
37
54
|
end
|
@@ -39,21 +56,21 @@ module Appium
|
|
39
56
|
# TODO: add documentation regarding previous element.
|
40
57
|
# Previous UIAElement is differ from UIAButton|XCUIElementTypeButton. So, the results are different.
|
41
58
|
# Find the last UIAButton|XCUIElementTypeButton.
|
42
|
-
# @return [
|
59
|
+
# @return [UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON]
|
43
60
|
def last_button
|
44
61
|
last_ele button_class
|
45
62
|
end
|
46
63
|
|
47
64
|
# Find the first UIAButton|XCUIElementTypeButton that exactly matches value.
|
48
65
|
# @param value [String] the value to match exactly
|
49
|
-
# @return [
|
66
|
+
# @return [UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON]
|
50
67
|
def button_exact(value)
|
51
68
|
ele_by_json_visible_exact button_class, value
|
52
69
|
end
|
53
70
|
|
54
71
|
# Find all UIAButtons|XCUIElementTypeButtons that exactly match value.
|
55
72
|
# @param value [String] the value to match exactly
|
56
|
-
# @return [Array<
|
73
|
+
# @return [Array<UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON>]
|
57
74
|
def buttons_exact(value)
|
58
75
|
eles_by_json_visible_exact button_class, value
|
59
76
|
end
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
module Appium
|
2
16
|
module Ios
|
3
17
|
# Find the first element containing value
|
@@ -1,18 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
# UIAStaticText|XCUIElementTypeStaticText methods
|
2
16
|
module Appium
|
3
17
|
module Ios
|
4
|
-
|
5
|
-
|
18
|
+
UIA_STATIC_TEXT = 'UIAStaticText'
|
19
|
+
UIAStaticText = UIA_STATIC_TEXT
|
20
|
+
|
21
|
+
XCUIELEMENT_TYPE_STATIC_TEXT = 'XCUIElementTypeStaticText'
|
22
|
+
XCUIElementTypeStaticText = XCUIELEMENT_TYPE_STATIC_TEXT
|
6
23
|
|
7
24
|
# @return [String] Class name for text
|
8
25
|
def static_text_class
|
9
|
-
|
26
|
+
UIA_STATIC_TEXT
|
10
27
|
end
|
11
28
|
|
12
29
|
# Find the first UIAStaticText|XCUIElementTypeStaticText that contains value or by index.
|
13
30
|
# @param value [String, Integer] the value to find.
|
14
31
|
# If int then the UIAStaticText|XCUIElementTypeStaticText at that index is returned.
|
15
|
-
# @return [
|
32
|
+
# @return [UIA_STATIC_TEXT|XCUIELEMENT_TYPE_STATIC_TEXT]
|
16
33
|
def text(value)
|
17
34
|
return ele_index static_text_class, value if value.is_a? Numeric
|
18
35
|
|
@@ -22,7 +39,7 @@ module Appium
|
|
22
39
|
# Find all UIAStaticTexts|XCUIElementTypeStaticTexts containing value.
|
23
40
|
# If value is omitted, all UIAStaticTexts|XCUIElementTypeStaticTexts are returned
|
24
41
|
# @param value [String] the value to search for
|
25
|
-
# @return [Array<
|
42
|
+
# @return [Array<UIA_STATIC_TEXT|XCUIELEMENT_TYPE_STATIC_TEXT>]
|
26
43
|
def texts(value = false)
|
27
44
|
return tags static_text_class unless value
|
28
45
|
|
@@ -30,27 +47,27 @@ module Appium
|
|
30
47
|
end
|
31
48
|
|
32
49
|
# Find the first UIAStaticText|XCUIElementTypeStaticText.
|
33
|
-
# @return [
|
50
|
+
# @return [UIA_STATIC_TEXT|XCUIELEMENT_TYPE_STATIC_TEXT]
|
34
51
|
def first_text
|
35
52
|
first_ele static_text_class
|
36
53
|
end
|
37
54
|
|
38
55
|
# Find the last UIAStaticText|XCUIElementTypeStaticText.
|
39
|
-
# @return [
|
56
|
+
# @return [UIA_STATIC_TEXT|XCUIELEMENT_TYPE_STATIC_TEXT]
|
40
57
|
def last_text
|
41
58
|
last_ele static_text_class
|
42
59
|
end
|
43
60
|
|
44
61
|
# Find the first UIAStaticText|XCUIElementTypeStaticText that exactly matches value.
|
45
62
|
# @param value [String] the value to match exactly
|
46
|
-
# @return [
|
63
|
+
# @return [UIA_STATIC_TEXT|XCUIElementTypeStaticText]
|
47
64
|
def text_exact(value)
|
48
65
|
ele_by_json_visible_exact static_text_class, value
|
49
66
|
end
|
50
67
|
|
51
68
|
# Find all UIAStaticTexts|XCUIElementTypeStaticTexts that exactly match value.
|
52
69
|
# @param value [String] the value to match exactly
|
53
|
-
# @return [Array<
|
70
|
+
# @return [Array<UIA_STATIC_TEXT|XCUIElementTypeStaticText>]
|
54
71
|
def texts_exact(value)
|
55
72
|
eles_by_json_visible_exact static_text_class, value
|
56
73
|
end
|
@@ -1,19 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
module Appium
|
2
16
|
module Ios
|
3
|
-
|
4
|
-
|
17
|
+
UIA_TEXT_FIELD = 'UIATextField'
|
18
|
+
UIATextField = UIA_TEXT_FIELD
|
19
|
+
UIA_SECURE_TEXT_FIELD = 'UIASecureTextField'
|
20
|
+
UIASecureTextField = UIA_SECURE_TEXT_FIELD
|
5
21
|
|
6
|
-
|
7
|
-
|
22
|
+
XCUIELEMENT_TYPE_TEXT_FIELD = 'XCUIElementTypeTextField'
|
23
|
+
XCUIElementTypeTextField = XCUIELEMENT_TYPE_TEXT_FIELD
|
24
|
+
XCUIELEMENT_TYPE_SECURE_TEXT_FIELD = 'XCUIElementTypeSecureTextField'
|
25
|
+
XCUIElementTypeSecureTextField = XCUIELEMENT_TYPE_SECURE_TEXT_FIELD
|
8
26
|
|
9
27
|
# @return [String] Class name for text field
|
10
28
|
def text_field_class
|
11
|
-
|
29
|
+
UIA_TEXT_FIELD
|
12
30
|
end
|
13
31
|
|
14
32
|
# @return [String] Class name for secure text field
|
15
33
|
def secure_text_field_class
|
16
|
-
|
34
|
+
UIA_SECURE_TEXT_FIELD
|
17
35
|
end
|
18
36
|
|
19
37
|
# Find the first TextField that contains value or by index.
|
@@ -79,7 +97,7 @@ module Appium
|
|
79
97
|
|
80
98
|
# Appium
|
81
99
|
def _textfield_visible
|
82
|
-
{ typeArray: [
|
100
|
+
{ typeArray: [UIA_TEXT_FIELD, UIA_SECURE_TEXT_FIELD], onlyVisible: true }
|
83
101
|
end
|
84
102
|
|
85
103
|
# Appium
|
data/lib/appium_lib/ios/ios.rb
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
require_relative 'common/helper'
|
2
16
|
require_relative 'common/errors'
|
3
17
|
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
require_relative 'xcuitest/element'
|
2
16
|
require_relative 'xcuitest/command'
|
3
17
|
require_relative 'xcuitest/helper'
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
require_relative '../ios'
|
2
16
|
|
3
17
|
module Appium
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
require_relative 'command/pasteboard'
|
2
16
|
require_relative 'command/gestures'
|
3
17
|
require_relative 'command/source'
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
require 'base64'
|
2
16
|
|
3
17
|
module Appium
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
module Appium
|
2
16
|
module Ios
|
3
17
|
module Xcuitest
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
module Appium
|
2
16
|
module Ios
|
3
17
|
module Xcuitest
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
module Appium
|
2
16
|
module Ios
|
3
17
|
module Xcuitest
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
module Appium
|
2
16
|
module Ios
|
3
17
|
module Xcuitest
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
module Appium
|
2
16
|
module Ios
|
3
17
|
module Xcuitest
|
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
require_relative 'element/text'
|
2
16
|
require_relative 'element/textfield'
|
3
17
|
require_relative 'element/generic'
|
@@ -1,19 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
1
15
|
# XCUIElementTypeButton methods
|
2
16
|
module Appium
|
3
17
|
module Ios
|
4
18
|
module Xcuitest
|
5
19
|
module Element
|
6
|
-
# XCUIElementTypeButton = 'XCUIElementTypeButton'
|
20
|
+
# XCUIElementTypeButton = 'XCUIElementTypeButton'
|
7
21
|
|
8
22
|
# @return [String] Class name for button
|
9
23
|
def button_class
|
10
|
-
::Appium::Ios::
|
24
|
+
::Appium::Ios::XCUIELEMENT_TYPE_BUTTON
|
11
25
|
end
|
12
26
|
|
13
27
|
# Find the first UIAButton|XCUIElementTypeButton that contains value or by index.
|
14
28
|
# @param value [String, Integer] the value to exactly match.
|
15
29
|
# If int then the UIAButton|XCUIElementTypeButton at that index is returned.
|
16
|
-
# @return [
|
30
|
+
# @return [UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON]
|
17
31
|
def button(value)
|
18
32
|
# return button at index.
|
19
33
|
return ele_index button_class, value if value.is_a? Numeric
|
@@ -24,7 +38,7 @@ module Appium
|
|
24
38
|
# Find all UIAButtons|XCUIElementTypeButtons containing value.
|
25
39
|
# If value is omitted, all UIAButtons|XCUIElementTypeButtons are returned.
|
26
40
|
# @param value [String] the value to search for
|
27
|
-
# @return [Array<
|
41
|
+
# @return [Array<UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON>]
|
28
42
|
def buttons(value = false)
|
29
43
|
return tags button_class unless value
|
30
44
|
|
@@ -33,7 +47,7 @@ module Appium
|
|
33
47
|
end
|
34
48
|
|
35
49
|
# Find the first UIAButton|XCUIElementTypeButton.
|
36
|
-
# @return [
|
50
|
+
# @return [UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON]
|
37
51
|
def first_button
|
38
52
|
first_ele button_class
|
39
53
|
end
|
@@ -41,21 +55,21 @@ module Appium
|
|
41
55
|
# TODO: add documentation regarding previous element.
|
42
56
|
# Previous UIAElement is differ from UIAButton|XCUIElementTypeButton. So, the results are different.
|
43
57
|
# Find the last UIAButton|XCUIElementTypeButton.
|
44
|
-
# @return [
|
58
|
+
# @return [UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON]
|
45
59
|
def last_button
|
46
60
|
last_ele button_class
|
47
61
|
end
|
48
62
|
|
49
63
|
# Find the first UIAButton|XCUIElementTypeButton that exactly matches value.
|
50
64
|
# @param value [String] the value to match exactly
|
51
|
-
# @return [
|
65
|
+
# @return [UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON]
|
52
66
|
def button_exact(value)
|
53
67
|
raise_error_if_no_element buttons_exact(value).first
|
54
68
|
end
|
55
69
|
|
56
70
|
# Find all UIAButtons|XCUIElementTypeButtons that exactly match value.
|
57
71
|
# @param value [String] the value to match exactly
|
58
|
-
# @return [Array<
|
72
|
+
# @return [Array<UIA_BUTTON|XCUIELEMENT_TYPE_BUTTON>]
|
59
73
|
def buttons_exact(value)
|
60
74
|
elements = find_eles_by_predicate(class_name: button_class, value: value)
|
61
75
|
select_visible_elements elements
|