rautomation 2.0.1-x86-mingw32

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 (202) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +41 -0
  4. data/.rspec +2 -0
  5. data/.yardopts +8 -0
  6. data/CHANGES.md +276 -0
  7. data/Gemfile +3 -0
  8. data/LICENSE +20 -0
  9. data/README.md +142 -0
  10. data/Rakefile +73 -0
  11. data/ext/AutoItX/AutoItX.chm +0 -0
  12. data/ext/AutoItX/AutoItX3.dll +0 -0
  13. data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.cpp +30 -0
  14. data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.vcxproj +179 -0
  15. data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.vcxproj.filters +42 -0
  16. data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.vcxproj.user +3 -0
  17. data/ext/IAccessibleDLL/IAccessibleDLL/ReadMe.txt +48 -0
  18. data/ext/IAccessibleDLL/IAccessibleDLL/dllmain.cpp +19 -0
  19. data/ext/IAccessibleDLL/IAccessibleDLL/stdafx.cpp +8 -0
  20. data/ext/IAccessibleDLL/IAccessibleDLL/stdafx.h +22 -0
  21. data/ext/IAccessibleDLL/IAccessibleDLL/table_support.cpp +282 -0
  22. data/ext/IAccessibleDLL/IAccessibleDLL/targetver.h +8 -0
  23. data/ext/IAccessibleDLL/IAccessibleDLL.sln +31 -0
  24. data/ext/IAccessibleDLL/IAccessibleDLL.suo +0 -0
  25. data/ext/IAccessibleDLL/Release/IAccessibleDLL.dll +0 -0
  26. data/ext/UiaDll/RAutomation.UIA/Controls/Clicker.cs +63 -0
  27. data/ext/UiaDll/RAutomation.UIA/Controls/SelectList.cs +116 -0
  28. data/ext/UiaDll/RAutomation.UIA/Controls/Spinner.cs +46 -0
  29. data/ext/UiaDll/RAutomation.UIA/Controls/TabControl.cs +54 -0
  30. data/ext/UiaDll/RAutomation.UIA/Controls/TableControl.cs +132 -0
  31. data/ext/UiaDll/RAutomation.UIA/Controls/TextControl.cs +50 -0
  32. data/ext/UiaDll/RAutomation.UIA/Expander.cs +59 -0
  33. data/ext/UiaDll/RAutomation.UIA/Extensions/Element.cs +166 -0
  34. data/ext/UiaDll/RAutomation.UIA/Extensions/Enumerable.cs +76 -0
  35. data/ext/UiaDll/RAutomation.UIA/Extensions/Property.cs +27 -0
  36. data/ext/UiaDll/RAutomation.UIA/Properties/AssemblyInfo.cs +36 -0
  37. data/ext/UiaDll/RAutomation.UIA/Properties/AutomationProperties.cs +18 -0
  38. data/ext/UiaDll/RAutomation.UIA/RAutomation.UIA.csproj +77 -0
  39. data/ext/UiaDll/Release/RAutomation.UIA.dll +0 -0
  40. data/ext/UiaDll/Release/UiaDll.dll +0 -0
  41. data/ext/UiaDll/UiaDll/ArrayHelper.cpp +14 -0
  42. data/ext/UiaDll/UiaDll/ArrayHelper.h +7 -0
  43. data/ext/UiaDll/UiaDll/AssemblyInfo.cpp +40 -0
  44. data/ext/UiaDll/UiaDll/ControlMethods.cpp +16 -0
  45. data/ext/UiaDll/UiaDll/DynamicAssemblyResolver.cpp +24 -0
  46. data/ext/UiaDll/UiaDll/DynamicAssemblyResolver.h +16 -0
  47. data/ext/UiaDll/UiaDll/Locator.cpp +93 -0
  48. data/ext/UiaDll/UiaDll/Locator.h +55 -0
  49. data/ext/UiaDll/UiaDll/MenuItemSelector.cpp +75 -0
  50. data/ext/UiaDll/UiaDll/MenuItemSelector.h +24 -0
  51. data/ext/UiaDll/UiaDll/MenuMethods.cpp +62 -0
  52. data/ext/UiaDll/UiaDll/ReadMe.txt +38 -0
  53. data/ext/UiaDll/UiaDll/SelectListMethods.cpp +84 -0
  54. data/ext/UiaDll/UiaDll/SpinnerMethods.cpp +61 -0
  55. data/ext/UiaDll/UiaDll/StringHelper.cpp +57 -0
  56. data/ext/UiaDll/UiaDll/StringHelper.h +15 -0
  57. data/ext/UiaDll/UiaDll/StringMethods.cpp +8 -0
  58. data/ext/UiaDll/UiaDll/TabControlMethods.cpp +40 -0
  59. data/ext/UiaDll/UiaDll/TableMethods.cpp +108 -0
  60. data/ext/UiaDll/UiaDll/TextMethods.cpp +25 -0
  61. data/ext/UiaDll/UiaDll/ToggleStateHelper.h +10 -0
  62. data/ext/UiaDll/UiaDll/UiaDll.cpp +216 -0
  63. data/ext/UiaDll/UiaDll/UiaDll.h +13 -0
  64. data/ext/UiaDll/UiaDll/UiaDll.vcxproj +167 -0
  65. data/ext/UiaDll/UiaDll/UiaDll.vcxproj.filters +110 -0
  66. data/ext/UiaDll/UiaDll/app.ico +0 -0
  67. data/ext/UiaDll/UiaDll/app.rc +0 -0
  68. data/ext/UiaDll/UiaDll/dllmain.cpp +1 -0
  69. data/ext/UiaDll/UiaDll/resource.h +3 -0
  70. data/ext/UiaDll/UiaDll/stdafx.cpp +5 -0
  71. data/ext/UiaDll/UiaDll/stdafx.h +41 -0
  72. data/ext/UiaDll/UiaDll/targetver.h +8 -0
  73. data/ext/UiaDll/UiaDll.sln +57 -0
  74. data/ext/WindowsForms/.nuget/NuGet.Config +6 -0
  75. data/ext/WindowsForms/.nuget/NuGet.exe +0 -0
  76. data/ext/WindowsForms/.nuget/NuGet.targets +136 -0
  77. data/ext/WindowsForms/Release/FizzWare.NBuilder.dll +0 -0
  78. data/ext/WindowsForms/Release/UIA.Extensions.dll +0 -0
  79. data/ext/WindowsForms/Release/WindowsForms.exe +0 -0
  80. data/ext/WindowsForms/WindowsForms/AboutBox.Designer.cs +168 -0
  81. data/ext/WindowsForms/WindowsForms/AboutBox.cs +103 -0
  82. data/ext/WindowsForms/WindowsForms/AboutBox.resx +123 -0
  83. data/ext/WindowsForms/WindowsForms/DataEntryForm.Designer.cs +218 -0
  84. data/ext/WindowsForms/WindowsForms/DataEntryForm.cs +52 -0
  85. data/ext/WindowsForms/WindowsForms/DataEntryForm.resx +120 -0
  86. data/ext/WindowsForms/WindowsForms/DataGridView.Designer.cs +77 -0
  87. data/ext/WindowsForms/WindowsForms/DataGridView.cs +43 -0
  88. data/ext/WindowsForms/WindowsForms/DataGridView.resx +120 -0
  89. data/ext/WindowsForms/WindowsForms/FizzWare.NBuilder.dll +0 -0
  90. data/ext/WindowsForms/WindowsForms/MainFormWindow.Designer.cs +527 -0
  91. data/ext/WindowsForms/WindowsForms/MainFormWindow.cs +109 -0
  92. data/ext/WindowsForms/WindowsForms/MainFormWindow.resx +126 -0
  93. data/ext/WindowsForms/WindowsForms/PersonForm.Designer.cs +119 -0
  94. data/ext/WindowsForms/WindowsForms/PersonForm.cs +34 -0
  95. data/ext/WindowsForms/WindowsForms/PersonForm.resx +120 -0
  96. data/ext/WindowsForms/WindowsForms/Program.cs +21 -0
  97. data/ext/WindowsForms/WindowsForms/Properties/AssemblyInfo.cs +36 -0
  98. data/ext/WindowsForms/WindowsForms/Properties/Resources.Designer.cs +71 -0
  99. data/ext/WindowsForms/WindowsForms/Properties/Resources.resx +117 -0
  100. data/ext/WindowsForms/WindowsForms/Properties/Settings.Designer.cs +30 -0
  101. data/ext/WindowsForms/WindowsForms/Properties/Settings.settings +7 -0
  102. data/ext/WindowsForms/WindowsForms/SimpleElementsForm.Designer.cs +93 -0
  103. data/ext/WindowsForms/WindowsForms/SimpleElementsForm.cs +19 -0
  104. data/ext/WindowsForms/WindowsForms/SimpleElementsForm.resx +120 -0
  105. data/ext/WindowsForms/WindowsForms/UIA.Extensions.dll +0 -0
  106. data/ext/WindowsForms/WindowsForms/ValueMonthCalendar.cs +28 -0
  107. data/ext/WindowsForms/WindowsForms/WindowsForms.csproj +166 -0
  108. data/ext/WindowsForms/WindowsForms/packages.config +4 -0
  109. data/ext/WindowsForms/WindowsForms.sln +46 -0
  110. data/lib/rautomation/adapter/autoit/button.rb +59 -0
  111. data/lib/rautomation/adapter/autoit/locators.rb +22 -0
  112. data/lib/rautomation/adapter/autoit/mouse.rb +38 -0
  113. data/lib/rautomation/adapter/autoit/text_field.rb +70 -0
  114. data/lib/rautomation/adapter/autoit/window.rb +197 -0
  115. data/lib/rautomation/adapter/autoit.rb +8 -0
  116. data/lib/rautomation/adapter/helper.rb +64 -0
  117. data/lib/rautomation/adapter/ms_uia/button.rb +21 -0
  118. data/lib/rautomation/adapter/ms_uia/button_helper.rb +19 -0
  119. data/lib/rautomation/adapter/ms_uia/checkbox.rb +23 -0
  120. data/lib/rautomation/adapter/ms_uia/constants.rb +111 -0
  121. data/lib/rautomation/adapter/ms_uia/control.rb +134 -0
  122. data/lib/rautomation/adapter/ms_uia/functions.rb +279 -0
  123. data/lib/rautomation/adapter/ms_uia/keys.rb +121 -0
  124. data/lib/rautomation/adapter/ms_uia/keystroke_converter.rb +122 -0
  125. data/lib/rautomation/adapter/ms_uia/label.rb +18 -0
  126. data/lib/rautomation/adapter/ms_uia/list_box.rb +46 -0
  127. data/lib/rautomation/adapter/ms_uia/list_item.rb +22 -0
  128. data/lib/rautomation/adapter/ms_uia/locators.rb +23 -0
  129. data/lib/rautomation/adapter/ms_uia/menu.rb +36 -0
  130. data/lib/rautomation/adapter/ms_uia/radio.rb +23 -0
  131. data/lib/rautomation/adapter/ms_uia/select_list.rb +85 -0
  132. data/lib/rautomation/adapter/ms_uia/spinner.rb +31 -0
  133. data/lib/rautomation/adapter/ms_uia/tab_control.rb +46 -0
  134. data/lib/rautomation/adapter/ms_uia/table.rb +140 -0
  135. data/lib/rautomation/adapter/ms_uia/text_field.rb +39 -0
  136. data/lib/rautomation/adapter/ms_uia/uia_dll.rb +428 -0
  137. data/lib/rautomation/adapter/ms_uia/value_control.rb +21 -0
  138. data/lib/rautomation/adapter/ms_uia/window.rb +289 -0
  139. data/lib/rautomation/adapter/ms_uia.rb +27 -0
  140. data/lib/rautomation/adapter/win_32/button.rb +14 -0
  141. data/lib/rautomation/adapter/win_32/button_helper.rb +24 -0
  142. data/lib/rautomation/adapter/win_32/checkbox.rb +14 -0
  143. data/lib/rautomation/adapter/win_32/constants.rb +73 -0
  144. data/lib/rautomation/adapter/win_32/control.rb +86 -0
  145. data/lib/rautomation/adapter/win_32/functions.rb +336 -0
  146. data/lib/rautomation/adapter/win_32/keys.rb +146 -0
  147. data/lib/rautomation/adapter/win_32/label.rb +10 -0
  148. data/lib/rautomation/adapter/win_32/list_box.rb +40 -0
  149. data/lib/rautomation/adapter/win_32/locators.rb +22 -0
  150. data/lib/rautomation/adapter/win_32/mouse.rb +59 -0
  151. data/lib/rautomation/adapter/win_32/password_field.rb +15 -0
  152. data/lib/rautomation/adapter/win_32/radio.rb +11 -0
  153. data/lib/rautomation/adapter/win_32/select_list.rb +97 -0
  154. data/lib/rautomation/adapter/win_32/table.rb +25 -0
  155. data/lib/rautomation/adapter/win_32/text_field.rb +52 -0
  156. data/lib/rautomation/adapter/win_32/window.rb +277 -0
  157. data/lib/rautomation/adapter/win_32.rb +23 -0
  158. data/lib/rautomation/button.rb +55 -0
  159. data/lib/rautomation/element_collections.rb +55 -0
  160. data/lib/rautomation/platform.rb +15 -0
  161. data/lib/rautomation/text_field.rb +60 -0
  162. data/lib/rautomation/version.rb +3 -0
  163. data/lib/rautomation/wait_helper.rb +23 -0
  164. data/lib/rautomation/window.rb +248 -0
  165. data/lib/rautomation.rb +8 -0
  166. data/rautomation.gemspec +52 -0
  167. data/spec/adapter/autoit/mouse_spec.rb +53 -0
  168. data/spec/adapter/autoit/window_spec.rb +17 -0
  169. data/spec/adapter/ms_uia/button_spec.rb +39 -0
  170. data/spec/adapter/ms_uia/checkbox_spec.rb +55 -0
  171. data/spec/adapter/ms_uia/control_spec.rb +88 -0
  172. data/spec/adapter/ms_uia/functions_spec.rb +39 -0
  173. data/spec/adapter/ms_uia/keystroke_converter_spec.rb +48 -0
  174. data/spec/adapter/ms_uia/label_spec.rb +18 -0
  175. data/spec/adapter/ms_uia/list_item_spec.rb +14 -0
  176. data/spec/adapter/ms_uia/listbox_spec.rb +73 -0
  177. data/spec/adapter/ms_uia/radio_spec.rb +39 -0
  178. data/spec/adapter/ms_uia/select_list_spec.rb +118 -0
  179. data/spec/adapter/ms_uia/spinner_spec.rb +44 -0
  180. data/spec/adapter/ms_uia/tab_control_spec.rb +53 -0
  181. data/spec/adapter/ms_uia/table_spec.rb +197 -0
  182. data/spec/adapter/ms_uia/text_field_spec.rb +43 -0
  183. data/spec/adapter/ms_uia/value_control_spec.rb +11 -0
  184. data/spec/adapter/ms_uia/window_spec.rb +81 -0
  185. data/spec/adapter/win_32/button_spec.rb +31 -0
  186. data/spec/adapter/win_32/checkbox_spec.rb +46 -0
  187. data/spec/adapter/win_32/label_spec.rb +13 -0
  188. data/spec/adapter/win_32/listbox_spec.rb +41 -0
  189. data/spec/adapter/win_32/mouse_spec.rb +49 -0
  190. data/spec/adapter/win_32/radio_spec.rb +33 -0
  191. data/spec/adapter/win_32/select_list_spec.rb +65 -0
  192. data/spec/adapter/win_32/table_spec.rb +27 -0
  193. data/spec/adapter/win_32/text_field_spec.rb +24 -0
  194. data/spec/adapter/win_32/window_spec.rb +61 -0
  195. data/spec/button_spec.rb +67 -0
  196. data/spec/buttons_spec.rb +21 -0
  197. data/spec/spec_helper.rb +128 -0
  198. data/spec/text_field_spec.rb +64 -0
  199. data/spec/text_fields_spec.rb +22 -0
  200. data/spec/window_spec.rb +150 -0
  201. data/spec/windows_spec.rb +76 -0
  202. metadata +369 -0
@@ -0,0 +1,85 @@
1
+ module RAutomation
2
+ module Adapter
3
+ module MsUia
4
+
5
+ class SelectList < Control
6
+ include WaitHelper
7
+ include Locators
8
+
9
+ class SelectListOption
10
+ attr_accessor :text, :index
11
+
12
+ def initialize(select_list, text, index)
13
+ @select_list = select_list
14
+ @text = text
15
+ @index = index
16
+ end
17
+
18
+ def selected?
19
+ @index == UiaDll::select_list_selected_index(@select_list.search_information)
20
+ end
21
+
22
+ def select
23
+ @select_list.assert_enabled
24
+ UiaDll::select_list_select_index @select_list.search_information, @index
25
+ end
26
+
27
+ def clear
28
+ UiaDll::remove_from_selection @select_list.search_information, @index
29
+ end
30
+
31
+ def self.locators_match?(locators, item)
32
+ locators.all? do |locator, value|
33
+ return item.text =~ value if value.is_a? Regexp
34
+ return item.send(locator) == value
35
+ end
36
+ end
37
+
38
+ alias_method :set, :select
39
+ end
40
+
41
+ def option(locator)
42
+ options(locator).first
43
+ end
44
+
45
+ def options(locator = {})
46
+ all_options.select { |item| SelectListOption.locators_match? locator, item }
47
+ end
48
+
49
+ def select(locator = {})
50
+ options(locator).each(&:select)
51
+ end
52
+
53
+ def clear(locator = {})
54
+ options(locator).each(&:clear)
55
+ end
56
+
57
+ def value
58
+ UiaDll::selection(search_information)
59
+ end
60
+
61
+ def values
62
+ UiaDll::selections(search_information)
63
+ end
64
+
65
+ def exist?
66
+ super && matches_type?(Constants::UIA_COMBOBOX_CONTROL_TYPE)
67
+ end
68
+
69
+ alias_method :exists?, :exist?
70
+
71
+ private
72
+ def item_count
73
+ UiaDll::select_list_count(search_information)
74
+ end
75
+
76
+ def all_options
77
+ UiaDll::select_options(search_information).each_with_index.map do |item, index|
78
+ SelectListOption.new(self, item, index)
79
+ end
80
+ end
81
+
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,31 @@
1
+ module RAutomation
2
+ module Adapter
3
+ module MsUia
4
+ class Spinner < Control
5
+ def set(value)
6
+ UiaDll::set_spinner_value(search_information, value)
7
+ end
8
+
9
+ def value
10
+ UiaDll::spinner_value(search_information)
11
+ end
12
+
13
+ def minimum
14
+ UiaDll::spinner_min(search_information)
15
+ end
16
+
17
+ def maximum
18
+ UiaDll::spinner_max(search_information)
19
+ end
20
+
21
+ def increment
22
+ UiaDll::increment_spinner(search_information)
23
+ end
24
+
25
+ def decrement
26
+ UiaDll::decrement_spinner(search_information)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,46 @@
1
+ module RAutomation
2
+ module Adapter
3
+ module MsUia
4
+
5
+ class TabControl < Control
6
+ class TabItem
7
+ attr_reader :text, :index
8
+
9
+ def initialize(tab_control, text, index)
10
+ @tab_control, @text, @index = tab_control, text, index
11
+ end
12
+
13
+ def select
14
+ UiaDll::select_tab(@tab_control.search_information, index)
15
+ end
16
+
17
+ def selected?
18
+ @index == UiaDll::tab_control_selected_index(@tab_control.search_information)
19
+ end
20
+ end
21
+
22
+ def select(index)
23
+ UiaDll::select_tab(search_information, index)
24
+ end
25
+
26
+ def set(value)
27
+ UiaDll::select_tab(search_information, value)
28
+ end
29
+
30
+ def items
31
+ values.each_with_index.map {|value, index| TabItem.new(self, value, index) }
32
+ end
33
+
34
+ def value
35
+ UiaDll::tab_selection(search_information)
36
+ end
37
+
38
+ private
39
+ def values
40
+ UiaDll::tab_items(search_information)
41
+ end
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,140 @@
1
+ module RAutomation
2
+ module Adapter
3
+ module MsUia
4
+ class Cell
5
+ include Locators
6
+ attr_reader :row, :column, :search_information
7
+
8
+ def initialize(window, locators)
9
+ @search_information = window.search_information
10
+ @locators = extract(locators)
11
+ @row = window.row
12
+ @column = @locators[:index] || 0
13
+ end
14
+
15
+ def exists?
16
+ UiaDll::table_coordinate_valid? search_information, row, column
17
+ end
18
+
19
+ def value
20
+ UiaDll::table_value_at search_information, row, column
21
+ end
22
+
23
+ alias_method :text, :value
24
+ alias_method :index, :column
25
+ end
26
+
27
+ class Row
28
+ include Locators
29
+ extend ElementCollections
30
+ attr_reader :search_information
31
+
32
+ has_many :cells
33
+
34
+ def cells(locators={})
35
+ Cells.new(self, locators).select do |cell|
36
+ Row.locators_match? locators, cell
37
+ end
38
+ end
39
+
40
+ def cell(locators={})
41
+ cells(locators).first
42
+ end
43
+
44
+ def initialize(table, locators)
45
+ @table = table
46
+ @search_information = table.search_information
47
+ @locators = extract(locators)
48
+ end
49
+
50
+ def index
51
+ @locators[:index] || 0
52
+ end
53
+
54
+ def select
55
+ UiaDll::table_select search_information, row
56
+ end
57
+
58
+ def selected?
59
+ UiaDll::table_row_is_selected search_information, row
60
+ end
61
+
62
+ def clear
63
+ UiaDll::table_remove_from_selection search_information, row
64
+ end
65
+
66
+ def value
67
+ UiaDll::table_value_at search_information, @locators[:index]
68
+ end
69
+
70
+ def exists?
71
+ @locators[:index].between? 0, @table.row_count - 1
72
+ end
73
+
74
+ def self.locators_match?(locators, item)
75
+ locators.all? do |locator, value|
76
+ return item.value =~ value if value.is_a? Regexp
77
+ return item.send(locator) == value
78
+ end
79
+ end
80
+
81
+ alias_method :text, :value
82
+ alias_method :row, :index
83
+ end
84
+
85
+ class Table < Control
86
+ include WaitHelper
87
+ include Locators
88
+ extend ElementCollections
89
+
90
+ has_many :rows
91
+
92
+ def row(locators={})
93
+ rows(locators).first
94
+ end
95
+
96
+ def rows(locators={})
97
+ Rows.new(self, locators).select do |row|
98
+ Row.locators_match? locators, row
99
+ end
100
+ end
101
+
102
+ def select(locators={})
103
+ rows(locators).each(&:select)
104
+ end
105
+
106
+ def clear(locators={})
107
+ rows(locators).each(&:clear)
108
+ end
109
+
110
+ def selected_rows
111
+ UiaDll.table_selected_indexes(search_information).map {|index| Row.new(self, index: index) }
112
+ end
113
+
114
+ def strings
115
+ headers = UiaDll.table_headers(search_information)
116
+ values = UiaDll.table_values(search_information)
117
+ return values if headers.empty?
118
+
119
+ all_strings = [] << headers
120
+ values.each_slice(headers.count) {|r| all_strings << r }
121
+ all_strings
122
+ end
123
+
124
+ def row_count
125
+ UiaDll::table_row_count search_information
126
+ end
127
+
128
+ def exist?
129
+ super && of_type_table?
130
+ end
131
+
132
+ def of_type_table?
133
+ matches_type?(Constants::UIA_LIST_CONTROL_TYPE) || matches_type?(Constants::UIA_DATA_GRID_CONTROL_TYPE)
134
+ end
135
+
136
+ alias_method :exists?, :exist?
137
+ end
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,39 @@
1
+ module RAutomation
2
+ module Adapter
3
+ module MsUia
4
+ class TextField < Control
5
+ include WaitHelper
6
+ include Locators
7
+
8
+ # Default locators used for searching text fields.
9
+ DEFAULT_LOCATORS = {:class => /edit/i}
10
+
11
+ #todo - replace with UIA version
12
+ # @see RAutomation::TextField#set
13
+ def set(text)
14
+ raise "Cannot set value on a disabled text field" if disabled?
15
+ UiaDll::set_text(search_information, text)
16
+ end
17
+
18
+ # @see RAutomation::TextField#clear
19
+ def clear
20
+ raise "Cannot set value on a disabled text field" if disabled?
21
+ set ""
22
+ end
23
+
24
+ #todo - replace with UIA version
25
+ # @see RAutomation::TextField#value
26
+ def value
27
+ UiaDll::get_text(search_information)
28
+ end
29
+
30
+ def exist?
31
+ super && matches_type?(Constants::UIA_EDIT_CONTROL_TYPE, Constants::UIA_DOCUMENT_CONTROL_TYPE)
32
+ end
33
+
34
+ alias_method :exists?, :exist?
35
+
36
+ end
37
+ end
38
+ end
39
+ end