appium_lib 0.24.1 → 1.0.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.
Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +17 -8
  3. data/android_tests/Gemfile +1 -0
  4. data/android_tests/LICENSE-2.0.txt +202 -0
  5. data/android_tests/Rakefile +61 -0
  6. data/android_tests/api.apk +0 -0
  7. data/android_tests/appium.txt +3 -0
  8. data/android_tests/flaky.txt +1 -0
  9. data/android_tests/lib/android/specs/android/dynamic.rb +5 -0
  10. data/android_tests/lib/android/specs/android/element/alert.rb +41 -0
  11. data/android_tests/lib/android/specs/android/element/button.rb +55 -0
  12. data/android_tests/lib/android/specs/android/element/generic.rb +48 -0
  13. data/android_tests/lib/android/specs/android/element/text.rb +39 -0
  14. data/android_tests/lib/android/specs/android/element/textfield.rb +60 -0
  15. data/android_tests/lib/android/specs/android/helper.rb +80 -0
  16. data/android_tests/lib/android/specs/android/patch.rb +14 -0
  17. data/android_tests/lib/android/specs/common/device.rb +117 -0
  18. data/android_tests/lib/android/specs/common/element/window.rb +9 -0
  19. data/android_tests/lib/android/specs/common/helper.rb +112 -0
  20. data/android_tests/lib/android/specs/common/patch.rb +69 -0
  21. data/android_tests/lib/android/specs/common/version.rb +9 -0
  22. data/android_tests/lib/android/specs/driver.rb +174 -0
  23. data/android_tests/lib/format.rb +49 -0
  24. data/android_tests/lib/run.rb +72 -0
  25. data/android_tests/readme.md +27 -0
  26. data/appium_lib.gemspec +8 -5
  27. data/docs/android_docs.md +1052 -716
  28. data/docs/ios_docs.md +657 -834
  29. data/docs_gen/make_docs.rb +1 -3
  30. data/ios_tests/Gemfile +1 -0
  31. data/ios_tests/LICENSE-2.0.txt +202 -0
  32. data/ios_tests/Rakefile +47 -0
  33. data/ios_tests/UICatalog.app.zip +0 -0
  34. data/ios_tests/UICatalog.app/12-6AM.png +0 -0
  35. data/ios_tests/UICatalog.app/12-6PM.png +0 -0
  36. data/ios_tests/UICatalog.app/6-12AM.png +0 -0
  37. data/ios_tests/UICatalog.app/6-12PM.png +0 -0
  38. data/ios_tests/UICatalog.app/Default-568h@2x.png +0 -0
  39. data/ios_tests/UICatalog.app/Default@2x.png +0 -0
  40. data/ios_tests/UICatalog.app/Info.plist +0 -0
  41. data/ios_tests/UICatalog.app/PkgInfo +1 -0
  42. data/ios_tests/UICatalog.app/UIButton_custom.png +0 -0
  43. data/ios_tests/UICatalog.app/UICatalog +0 -0
  44. data/ios_tests/UICatalog.app/blueButton.png +0 -0
  45. data/ios_tests/UICatalog.app/bookmarkImage.png +0 -0
  46. data/ios_tests/UICatalog.app/bookmarkImageHighlighted.png +0 -0
  47. data/ios_tests/UICatalog.app/divider.png +0 -0
  48. data/ios_tests/UICatalog.app/en.lproj/AlertsViewController.nib +0 -0
  49. data/ios_tests/UICatalog.app/en.lproj/ButtonsViewController.nib +0 -0
  50. data/ios_tests/UICatalog.app/en.lproj/ControlsViewController.nib +0 -0
  51. data/ios_tests/UICatalog.app/en.lproj/ImagesViewController.nib +0 -0
  52. data/ios_tests/UICatalog.app/en.lproj/Localizable.strings +0 -0
  53. data/ios_tests/UICatalog.app/en.lproj/MainWindow.nib +0 -0
  54. data/ios_tests/UICatalog.app/en.lproj/PickerViewController.nib +0 -0
  55. data/ios_tests/UICatalog.app/en.lproj/SearchBarController.nib +0 -0
  56. data/ios_tests/UICatalog.app/en.lproj/SegmentViewController.nib +0 -0
  57. data/ios_tests/UICatalog.app/en.lproj/TextFieldController.nib +0 -0
  58. data/ios_tests/UICatalog.app/en.lproj/TextViewController.nib +0 -0
  59. data/ios_tests/UICatalog.app/en.lproj/ToolbarViewController.nib +0 -0
  60. data/ios_tests/UICatalog.app/en.lproj/TransitionViewController.nib +0 -0
  61. data/ios_tests/UICatalog.app/en.lproj/WebViewController.nib +0 -0
  62. data/ios_tests/UICatalog.app/orangeslide.png +0 -0
  63. data/ios_tests/UICatalog.app/scene1.jpg +0 -0
  64. data/ios_tests/UICatalog.app/scene2.jpg +0 -0
  65. data/ios_tests/UICatalog.app/scene3.jpg +0 -0
  66. data/ios_tests/UICatalog.app/scene4.jpg +0 -0
  67. data/ios_tests/UICatalog.app/scene5.jpg +0 -0
  68. data/ios_tests/UICatalog.app/searchBarBackground.png +0 -0
  69. data/ios_tests/UICatalog.app/segment_check.png +0 -0
  70. data/ios_tests/UICatalog.app/segment_search.png +0 -0
  71. data/ios_tests/UICatalog.app/segment_tools.png +0 -0
  72. data/ios_tests/UICatalog.app/segmentedBackground.png +0 -0
  73. data/ios_tests/UICatalog.app/slider_ball.png +0 -0
  74. data/ios_tests/UICatalog.app/toolbarBackground.png +0 -0
  75. data/ios_tests/UICatalog.app/whiteButton.png +0 -0
  76. data/ios_tests/UICatalog.app/yellowslide.png +0 -0
  77. data/ios_tests/appium.txt +3 -0
  78. data/ios_tests/flaky.txt +1 -0
  79. data/ios_tests/lib/format.rb +25 -0
  80. data/ios_tests/lib/ios/specs/common/element/window.rb +15 -0
  81. data/ios_tests/lib/ios/specs/common/helper.rb +204 -0
  82. data/ios_tests/lib/ios/specs/common/patch.rb +50 -0
  83. data/ios_tests/lib/ios/specs/common/version.rb +17 -0
  84. data/ios_tests/lib/ios/specs/device/device.rb +82 -0
  85. data/ios_tests/lib/ios/specs/device/multi_touch.rb +12 -0
  86. data/ios_tests/lib/ios/specs/device/touch_actions.rb +15 -0
  87. data/ios_tests/lib/ios/specs/driver.rb +203 -0
  88. data/ios_tests/lib/ios/specs/ios/element/alert.rb +48 -0
  89. data/ios_tests/lib/ios/specs/ios/element/button.rb +58 -0
  90. data/ios_tests/lib/ios/specs/ios/element/generic.rb +35 -0
  91. data/ios_tests/lib/ios/specs/ios/element/text.rb +54 -0
  92. data/ios_tests/lib/ios/specs/ios/element/textfield.rb +123 -0
  93. data/ios_tests/lib/ios/specs/ios/helper.rb +27 -0
  94. data/ios_tests/lib/ios/specs/ios/patch.rb +30 -0
  95. data/ios_tests/lib/run.rb +106 -0
  96. data/ios_tests/readme.md +30 -0
  97. data/ios_tests/upload/sauce_storage.rb +64 -0
  98. data/ios_tests/upload/upload.rb +6 -0
  99. data/lib/appium_lib.rb +4 -14
  100. data/lib/appium_lib/android/dynamic.rb +30 -32
  101. data/lib/appium_lib/android/element/alert.rb +34 -33
  102. data/lib/appium_lib/android/element/button.rb +91 -0
  103. data/lib/appium_lib/android/element/generic.rb +51 -146
  104. data/lib/appium_lib/android/element/text.rb +54 -0
  105. data/lib/appium_lib/android/element/textfield.rb +46 -41
  106. data/lib/appium_lib/android/helper.rb +248 -417
  107. data/lib/appium_lib/android/mobile_methods.rb +17 -0
  108. data/lib/appium_lib/android/patch.rb +9 -8
  109. data/lib/appium_lib/awesome_print/ostruct.rb +33 -0
  110. data/lib/appium_lib/common/element/window.rb +9 -8
  111. data/lib/appium_lib/common/helper.rb +182 -243
  112. data/lib/appium_lib/common/patch.rb +65 -79
  113. data/lib/appium_lib/common/version.rb +2 -3
  114. data/lib/appium_lib/device/device.rb +339 -0
  115. data/lib/appium_lib/device/multi_touch.rb +94 -0
  116. data/lib/appium_lib/device/touch_actions.rb +142 -0
  117. data/lib/appium_lib/driver.rb +217 -306
  118. data/lib/appium_lib/ios/element/alert.rb +16 -92
  119. data/lib/appium_lib/ios/element/button.rb +55 -0
  120. data/lib/appium_lib/ios/element/generic.rb +27 -160
  121. data/lib/appium_lib/ios/element/text.rb +54 -0
  122. data/lib/appium_lib/ios/element/textfield.rb +78 -65
  123. data/lib/appium_lib/ios/helper.rb +300 -190
  124. data/lib/appium_lib/ios/mobile_methods.rb +17 -0
  125. data/lib/appium_lib/ios/patch.rb +55 -41
  126. data/lib/appium_lib/logger.rb +13 -0
  127. data/lib/appium_lib/rails/duplicable.rb +116 -0
  128. data/readme.md +6 -1
  129. data/release_notes.md +118 -0
  130. metadata +170 -12
  131. data/lib/appium_lib/common/element/button.rb +0 -83
  132. data/lib/appium_lib/common/element/text.rb +0 -61
@@ -1,83 +0,0 @@
1
- # encoding: utf-8
2
- # UIAButton methods
3
- module Appium::Common
4
- # Find a button by text and optionally number.
5
- # @param text [String, Integer] the text to exactly match. If int then the button at that index is returned.
6
- # @param number [Integer] the occurrence of the button matching text. Defaults to the first button.
7
- # @return [Button] the button found with text and matching number
8
- def button text, number=0
9
- # return button at index.
10
- return ele_index :button, text if text.is_a? Numeric
11
-
12
- number >= 1 ? button_num( text, number ) :
13
- find_ele_by_text_include( :button, text )
14
- end
15
-
16
- # Get an array of button texts or button elements if text is provided.
17
- # @param text [String] the text to exactly match
18
- # @return [Array<String>, Array<Buttons>] either an array of button texts or an array of button elements if text is provided.
19
- def buttons text=nil
20
- text == nil ? find_eles_attr( :button, :text ) :
21
- find_eles_by_text_include( :button, text )
22
- end
23
-
24
- # Get the first button element.
25
- # @return [Button]
26
- def first_button
27
- first_ele :button
28
- end
29
-
30
- # Get the last button element.
31
- # @return [Button]
32
- def last_button
33
- last_ele :button
34
- end
35
-
36
- # Get the first button element that exactly matches text.
37
- # @param text [String] the text to match exactly
38
- # @return [Button]
39
- def button_exact text
40
- find_ele_by_text :button, text
41
- end
42
-
43
- # Get all button elements that exactly match text.
44
- # @param text [String] the text to match exactly
45
- # @return [Array<Button>]
46
- def buttons_exact text
47
- find_eles_by_text :button, text
48
- end
49
-
50
- # Get an array of button elements.
51
- # @return [Array<Button>]
52
- def e_buttons
53
- find_eles :button
54
- end
55
-
56
- # Expected to be called via button method.
57
- #
58
- # Get the button element exactly matching text and
59
- # occurrence. number=2 means the 2nd occurrence.
60
- #
61
- # find the second Sign In button
62
- #
63
- # b = e_button 'Sign In', 2
64
- #
65
- # Button order will change in iOS vs Android
66
- # so if there's no button found at number then
67
- # return the first button.
68
- #
69
- # @param text [String] the text to match
70
- # @param number [Integer] the button occurance to return. 1 = first button
71
- # @return [Button] the button that matches text and number
72
- def button_num text, number=1
73
- raise 'Number must be >= 1' if number <= 0
74
- number = number - 1 # zero indexed
75
- result = nil
76
-
77
- elements = buttons text
78
- elements.size > number ? result = elements[number]
79
- : result = elements.first
80
-
81
- result
82
- end
83
- end # module Appium::Common
@@ -1,61 +0,0 @@
1
- # encoding: utf-8
2
- # UIAStaticText methods
3
- module Appium::Common
4
- # s_ prefix for static_text to avoid conflict with generic text methods.
5
-
6
- # Get an array of text texts if text is nil else
7
- # Get all static textfields that include text.
8
- # @param text [String] the text to find.
9
- # @return [Array]
10
- def s_texts text=nil
11
- if text
12
- find_eles_by_text_include :text, text
13
- else
14
- find_eles_attr :text, :text
15
- end
16
- end
17
-
18
- def s_texts_names
19
- find_eles_attr :text, :name
20
- end
21
-
22
- # Get an array of text elements.
23
- # @return [Array<Text>]
24
- def e_s_texts
25
- find_eles :text
26
- end
27
-
28
- # Get the first text element.
29
- # @return [Text]
30
- def first_s_text
31
- first_ele :text
32
- end
33
-
34
- # Get the last text element
35
- # @return [Text]
36
- def last_s_text
37
- last_ele :text
38
- end
39
-
40
- # Get the first element that includes text.
41
- # @param text [String, Integer] the text to find. If int then the text at that index is returned.
42
- # @return [Text]
43
- def s_text text
44
- return ele_index :text, text if text.is_a? Numeric
45
- find_ele_by_text_include :text, text
46
- end
47
-
48
- # Get the first textfield that matches text.
49
- # @param text [String] the text that the tag must match
50
- # @return [Text]
51
- def s_text_exact text
52
- find_ele_by_text :text, text
53
- end
54
-
55
- # Get all static textfields that matches text.
56
- # @param text [String] the text that the tag must match
57
- # @return [Array<Text>]
58
- def s_texts_exact text
59
- find_eles_by_text :text, text
60
- end
61
- end # module Appium::Common