rautomation 0.17.0 → 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.
- checksums.yaml +5 -5
- data/.document +1 -1
- data/.gitignore +37 -36
- data/.yardopts +4 -2
- data/CHANGES.md +264 -0
- data/Gemfile.lock +12 -4
- data/LICENSE +1 -1
- data/README.md +141 -0
- data/VERSION +1 -1
- data/ext/IAccessibleDLL/IAccessibleDLL/IAccessibleDLL.vcxproj +103 -101
- data/ext/UiaDll/UiaDll/UiaDll.vcxproj +2 -0
- data/lib/rautomation/adapter/autoit/button.rb +2 -2
- data/lib/rautomation/adapter/autoit/text_field.rb +2 -2
- data/lib/rautomation/adapter/autoit/window.rb +2 -2
- data/lib/rautomation/adapter/ms_uia/control.rb +2 -2
- data/lib/rautomation/adapter/ms_uia/uia_dll.rb +3 -3
- data/lib/rautomation/adapter/ms_uia/window.rb +3 -3
- data/lib/rautomation/adapter/win_32/control.rb +2 -2
- data/lib/rautomation/adapter/win_32/mouse.rb +59 -59
- data/lib/rautomation/adapter/win_32/window.rb +7 -7
- data/lib/rautomation/window.rb +4 -4
- data/rautomation.gemspec +36 -34
- data/spec/button_spec.rb +68 -69
- data/spec/spec_helper.rb +122 -122
- data/spec/text_field_spec.rb +2 -2
- data/spec/window_spec.rb +149 -149
- metadata +53 -27
- data/History.rdoc +0 -273
- data/README.rdoc +0 -120
data/History.rdoc
DELETED
@@ -1,273 +0,0 @@
|
|
1
|
-
== 0.17.0 / 2014-09-29
|
2
|
-
|
3
|
-
=== Win32 adapter
|
4
|
-
|
5
|
-
* Fix searching locators by hwnd. See more at issue #96.
|
6
|
-
|
7
|
-
== 0.16.0 / 2014-09-29
|
8
|
-
|
9
|
-
* Loosen up ffi dependency due to fixed segfault problem. See more at issue #81.
|
10
|
-
|
11
|
-
== 0.15.0 / 2014-06-01
|
12
|
-
|
13
|
-
* Fixes #send_keys with special characters. Issue #92.
|
14
|
-
|
15
|
-
== 0.14.1 / 2014-02-05
|
16
|
-
|
17
|
-
* Set ffi 1.9.0 as a dependency for now because newer versions are broken. See more at issue #81.
|
18
|
-
|
19
|
-
== 0.14.0 / 2014-02-05
|
20
|
-
|
21
|
-
=== MsUia adapter
|
22
|
-
|
23
|
-
* Add SelectList#select and SelectList#clear.
|
24
|
-
* Add Table#select and Table#clear.
|
25
|
-
* Add Table#selected_rows.
|
26
|
-
* Improve performance of table Row lookups.
|
27
|
-
* SelectList#options accepts :index and :text (Regexp or String).
|
28
|
-
* Window#child in ms_uia works for popup windows as well.
|
29
|
-
|
30
|
-
== 0.13.0
|
31
|
-
|
32
|
-
=== MsUia adapter
|
33
|
-
|
34
|
-
* Added #select and #clear into SelectList::SelectListOption for multi-select support
|
35
|
-
* Removed SelectList#select and SelectList#set
|
36
|
-
* Added #select, #selected? and #clear to Table::Row for multi-select support
|
37
|
-
* Removed Table#select and Table#selected?
|
38
|
-
* Fixed an issue with selecting ListBox items that our outside of the viewable area
|
39
|
-
|
40
|
-
== 0.12.0 / 2013-09-05
|
41
|
-
|
42
|
-
=== MsUia adapter
|
43
|
-
|
44
|
-
* Add Control#help_text to relay ToolTip information
|
45
|
-
|
46
|
-
== 0.11.0 / 2013-08-10
|
47
|
-
|
48
|
-
=== MsUia adapter
|
49
|
-
|
50
|
-
* Add support for Window#spinner
|
51
|
-
|
52
|
-
== 0.10.0 / 2013-07-26
|
53
|
-
|
54
|
-
=== MsUia adapter
|
55
|
-
|
56
|
-
* Fixed an issue with trying to interact with a button after it goes away
|
57
|
-
* Add support for Window#tab_control
|
58
|
-
|
59
|
-
== 0.9.4 / 2013-07-23
|
60
|
-
|
61
|
-
* Add license part of gemspec. Closes #70.
|
62
|
-
|
63
|
-
== 0.9.3 / 2013-07-23
|
64
|
-
|
65
|
-
=== MsUia adapter
|
66
|
-
* Added the ability to limit the scope to children only when looking for a control
|
67
|
-
* Fixed issues with ListBox controls not firing index change events
|
68
|
-
|
69
|
-
== 0.9.2 / 2013-05-19
|
70
|
-
|
71
|
-
=== Win32 adapter
|
72
|
-
|
73
|
-
* Window#send_keys supports now :dash, :slash and :backslash. Closes #64.
|
74
|
-
|
75
|
-
=== MsUia adapter
|
76
|
-
|
77
|
-
* Ability to get and set the text of a multi-line text control that only supports the TextPattern.
|
78
|
-
* Add some caching to speed up locating controls.
|
79
|
-
* Fix issue #67 that happens when clicking on controls.
|
80
|
-
|
81
|
-
=== AutoIt adapter
|
82
|
-
|
83
|
-
* Add deprecation warning.
|
84
|
-
|
85
|
-
== 0.9.1 / 2013-04-26
|
86
|
-
|
87
|
-
=== MsUia adapter
|
88
|
-
|
89
|
-
* Ability to interact with controls that do not have native window handles (for example WPF applications).
|
90
|
-
|
91
|
-
== 0.9.0 / 2013-04-22
|
92
|
-
|
93
|
-
=== MsUia adapter
|
94
|
-
|
95
|
-
* Add support for :name locator.
|
96
|
-
* Add support for Window#value_control.
|
97
|
-
* Add Table#headers.
|
98
|
-
* Add Table#values.
|
99
|
-
* Control#exists? uses now uia code.
|
100
|
-
* ControlType.Document is also considered as a TextField.
|
101
|
-
* Table#select and Table#selected? use 0-based indexing.
|
102
|
-
* Table#select supports value too.
|
103
|
-
|
104
|
-
=== Win32 adapter
|
105
|
-
|
106
|
-
* Add support for "[", "]" and "'" characters when using Window#send_keys. Fixes #61.
|
107
|
-
|
108
|
-
== 0.8.0 / 2012-12-26
|
109
|
-
|
110
|
-
=== MsUia adapter
|
111
|
-
|
112
|
-
* Add Control#collapse for collapsing values in collapsable items.
|
113
|
-
* Add Control#expand for expanding values in expandable items.
|
114
|
-
* Add Row#cell(s).
|
115
|
-
* Add Table#cell(s).
|
116
|
-
* Add Table#row(s).
|
117
|
-
* Add Window#menu for selecting menu items.
|
118
|
-
* Fire change events when SelectList selections have been changed.
|
119
|
-
* Window#child instantiates MsUia adapter Window.
|
120
|
-
|
121
|
-
== 0.7.3 / 2012-10-31
|
122
|
-
|
123
|
-
=== Win32 adapter
|
124
|
-
|
125
|
-
* Add support for PasswordField.
|
126
|
-
|
127
|
-
=== AutoIt adapter
|
128
|
-
|
129
|
-
* Show error message when registration of AutoIt dll fails.
|
130
|
-
|
131
|
-
== 0.7.2 / 2012-03-18
|
132
|
-
|
133
|
-
=== Win32 adapter
|
134
|
-
|
135
|
-
* add mouse API with Window#mouse method
|
136
|
-
* add Mouse#move, #position, #click, #press and #release methods
|
137
|
-
|
138
|
-
=== AutoIt adapter
|
139
|
-
|
140
|
-
* support the same mouse API as Win32 adapter
|
141
|
-
|
142
|
-
== 0.7.1 / 2012-02-26
|
143
|
-
|
144
|
-
=== Win32 adapter
|
145
|
-
|
146
|
-
* add Window#dimensions to get coordinates of the window
|
147
|
-
* add Window#move to move/resize the window
|
148
|
-
* fix Window#child not to raise any exceptions for cases where window isn't technically a child
|
149
|
-
|
150
|
-
== Version 0.7.0 / 2012-02-23
|
151
|
-
|
152
|
-
=== All adapters
|
153
|
-
|
154
|
-
* renamed WinFfi adapter to Win32 adapter
|
155
|
-
* added experimental MsUia adapter
|
156
|
-
* added support for JRuby
|
157
|
-
* Window.windows accepts locators too
|
158
|
-
* added Window#class_names for retrieving internal class names of the window and it's controls
|
159
|
-
* default locator is :index => 0 when nothing else specified
|
160
|
-
|
161
|
-
=== Win32 adapter
|
162
|
-
|
163
|
-
* Window#send_keys has now syntax similar to WatirSpec (https://github.com/watir/watirspec/blob/master/element_spec.rb#L206-249)
|
164
|
-
* added TextField#send_keys
|
165
|
-
|
166
|
-
=== AutoIt adapter
|
167
|
-
|
168
|
-
* added Window#mouse_move, #mouse_click, #mouse_position, #press_mouse and #release_mouse methods for AutoIt adapter
|
169
|
-
|
170
|
-
|
171
|
-
== Version 0.6.3 / 2011-07-16
|
172
|
-
|
173
|
-
* use current window's handle (hwnd) in WinFfi::Window#child method
|
174
|
-
|
175
|
-
|
176
|
-
== Version 0.6.2 / 2011-07-07
|
177
|
-
|
178
|
-
=== WinFFI adapter
|
179
|
-
|
180
|
-
* loading lazily oleacc.dll
|
181
|
-
* loading lazily uia_dll.rb due to problems on certain Windows XP machines
|
182
|
-
|
183
|
-
|
184
|
-
== Version 0.6.1 / 2011-07-05
|
185
|
-
|
186
|
-
=== WinFFI adapter
|
187
|
-
|
188
|
-
* Fixed it for Ruby 1.9.2.
|
189
|
-
|
190
|
-
|
191
|
-
== Version 0.6.0 / 2011-07-03
|
192
|
-
|
193
|
-
=== WinFFI adapter
|
194
|
-
|
195
|
-
* Window#send_keys now accepts only String argument similar to AutoIt's Send function.
|
196
|
-
* added Table#strings, #select, #selected? methods.
|
197
|
-
* added Label element support with #value method.
|
198
|
-
* added #has_focus? and #set_focus methods to controls.
|
199
|
-
* added possibility to search controls by automation id as :id.
|
200
|
-
* added #enabled? and #disabled? methods for controls.
|
201
|
-
* added Window#control and #controls methods for accessing controls generally.
|
202
|
-
* added SelectList#option method.
|
203
|
-
* added ListBox element support with #count, #items, #exist?, #selected? and #select methods.
|
204
|
-
|
205
|
-
|
206
|
-
== Version 0.5.1 / 2011-01-30
|
207
|
-
|
208
|
-
=== All adapters
|
209
|
-
|
210
|
-
* added Window.windows, #windows, #buttons and #text_fields methods to retrieve collection of elements and use them with Enumerable/Array methods.
|
211
|
-
|
212
|
-
=== WinFFI adapter
|
213
|
-
|
214
|
-
* added Window#child method for searching child windows and popups
|
215
|
-
* added initial support for Radio, Checkbox, SelectList and Table
|
216
|
-
|
217
|
-
=== AutoIt adapter
|
218
|
-
|
219
|
-
* allow to search windows by PID
|
220
|
-
|
221
|
-
|
222
|
-
== Version 0.4.0 / 2010-12-23
|
223
|
-
|
224
|
-
* allow to search windows without text (like empty Notepad window for example).
|
225
|
-
* added possibility to use block for #click to specify successful clicking condition.
|
226
|
-
* renamed :ffi adapter to :win_ffi because FFI may be used on other platforms too.
|
227
|
-
|
228
|
-
|
229
|
-
== Version 0.3.0 / 2010-12-18
|
230
|
-
|
231
|
-
* added Ffi adapter specific method Window#child which searches for child windows and popups
|
232
|
-
|
233
|
-
|
234
|
-
== Version 0.2.1 / 2010-12-17
|
235
|
-
|
236
|
-
* added yard options for documentation
|
237
|
-
|
238
|
-
|
239
|
-
== Version 0.2.0 / 2010-12-17
|
240
|
-
|
241
|
-
* added Window#pid method
|
242
|
-
|
243
|
-
|
244
|
-
== Version 0.1.0 / 2010-12-14
|
245
|
-
|
246
|
-
* added new default adapter for Windows: FFI
|
247
|
-
* changes for AutoIt adapter:
|
248
|
-
- added 0-based :index locator for window locators to search for windows with the same criteria.
|
249
|
-
- renamed text_field and button locator :instance to :index instead.
|
250
|
-
- :class_name locator is not allowed anymore. Use :class and :index together instead.
|
251
|
-
- use :value for button locator instead of :text
|
252
|
-
|
253
|
-
|
254
|
-
== Version 0.0.4 / 2010-10-27
|
255
|
-
|
256
|
-
* most Window, Button and TextField methods wait until the object exists.
|
257
|
-
Use RAutomation::Window.wait_timeout= to set timeout before failing. Default is 60 seconds.
|
258
|
-
|
259
|
-
|
260
|
-
== Version 0.0.3 / 2010-10-15
|
261
|
-
|
262
|
-
* RAutomation didn't load AutoIt correctly if it wasn't installed before
|
263
|
-
|
264
|
-
|
265
|
-
== Version 0.0.2 / 2010-10-14
|
266
|
-
|
267
|
-
* using :value locator for buttons instead of :text
|
268
|
-
* searching only visible windows with some text on them
|
269
|
-
|
270
|
-
|
271
|
-
== Version 0.0.1 / 2010-10-13
|
272
|
-
|
273
|
-
* Initial release
|
data/README.rdoc
DELETED
@@ -1,120 +0,0 @@
|
|
1
|
-
= RAutomation
|
2
|
-
{<img src="https://badge.fury.io/rb/rautomation.png" alt="Gem Version" />}[http://badge.fury.io/rb/rautomation]
|
3
|
-
|
4
|
-
* Web: http://www.github.com/jarmo/RAutomation
|
5
|
-
* Author: Jarmo Pertman (mailto:jarmo.p[at]gmail.com)
|
6
|
-
|
7
|
-
RAutomation is a small and easy to use library for helping out to automate windows and their controls
|
8
|
-
for automated testing.
|
9
|
-
|
10
|
-
RAutomation provides:
|
11
|
-
* Easy to use and user-friendly API (inspired by Watir http://www.watir.com)
|
12
|
-
* Cross-platform compatibility
|
13
|
-
* Easy extensibility - with small scripting effort it's possible to add support for not yet
|
14
|
-
supported platforms or technologies
|
15
|
-
|
16
|
-
== USAGE
|
17
|
-
|
18
|
-
require "rautomation"
|
19
|
-
|
20
|
-
window = RAutomation::Window.new(:title => /part of the title/i)
|
21
|
-
window.exists? # => true
|
22
|
-
|
23
|
-
window.title # => "blah blah part Of the title blah"
|
24
|
-
window.text # => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ultricies..."
|
25
|
-
|
26
|
-
window.text_field(:class => "Edit", :index => 0).set "hello, world!"
|
27
|
-
button = window.button(:value => "&Save")
|
28
|
-
button.exists? # => true
|
29
|
-
button.click
|
30
|
-
|
31
|
-
all_windows = RAutomation::Window.windows
|
32
|
-
all_windows.each {|window| puts window.hwnd}
|
33
|
-
|
34
|
-
window = RAutomation::Window.new(:title => /part of the title/i)
|
35
|
-
windows = window.windows
|
36
|
-
puts windows.size # => 2
|
37
|
-
windows.map &:title # => ["part of the title 1", "part of the title 2"]
|
38
|
-
|
39
|
-
window.windows(:title => /part of other title/i) # => all windows with matching specified title
|
40
|
-
|
41
|
-
window.buttons.each {|button| puts button.value}
|
42
|
-
window.buttons(:value => /some value/i).each {|button| puts button.value}
|
43
|
-
|
44
|
-
window2 = RAutomation::Window.new(:title => "Other Title", :adapter => :autoit) # use AutoIt adapter
|
45
|
-
# use adapter's (in this case AutoIt's) internal methods not part of the public API directly
|
46
|
-
window2.WinClose("[TITLE:Other Title]")
|
47
|
-
|
48
|
-
Check out the documentation for other possible usages!
|
49
|
-
|
50
|
-
== INSTALL
|
51
|
-
|
52
|
-
=== Windows
|
53
|
-
|
54
|
-
gem install rautomation
|
55
|
-
|
56
|
-
Available adapters:
|
57
|
-
* :win_32 - uses Windows API directly with FFI (default)
|
58
|
-
* :ms_uia - an experimental adapter
|
59
|
-
* :autoit - uses AutoIt for automation (DEPRECATED)
|
60
|
-
|
61
|
-
When using AutoIt adapter:
|
62
|
-
You might need administrative privileges if running for the first time and you haven't installed AutoIt before!
|
63
|
-
|
64
|
-
=== Linux
|
65
|
-
|
66
|
-
Feel yourself at home on Linux and know how to automate windows and their controls? I would be happy if you'd contact me
|
67
|
-
about that matter - or even better, follow the instructions at "How to create a new adapter?"
|
68
|
-
|
69
|
-
=== OS X
|
70
|
-
|
71
|
-
Feel yourself at home on OS X and know how to automate windows and their controls? I would be happy if you'd contact me
|
72
|
-
about that matter - or even better, follow the instructions at "How to create a new adapter?"
|
73
|
-
|
74
|
-
=== Others
|
75
|
-
|
76
|
-
Feel yourself at home on some operating system not listed in here and know how to automate windows and their controls?
|
77
|
-
Does Ruby also work on that operating system? I would be happy if you'd contact me
|
78
|
-
about that matter - or even better, follow the instructions at "How to create a new adapter?"
|
79
|
-
|
80
|
-
== How to create a new adapter?
|
81
|
-
|
82
|
-
1. Fork the project.
|
83
|
-
2. Create entry point file to lib/rautomation/adapter which should load all adapter specific files.
|
84
|
-
3. Add `autoload` statement into lib/rautomation/adapter/helper.rb for that file.
|
85
|
-
4. Create a directory for your adapter's specific code into lib/rautomation/adapter
|
86
|
-
5. Copy button.rb, text_field.rb and window.rb from some of the existing adapter's directory.
|
87
|
-
6. Add spec data for your adapter into spec/spec_helper DATA constant.
|
88
|
-
7. Use environment variable __RAUTOMATION_ADAPTER__ to point to that adapter.
|
89
|
-
8. Start coding and spec-ing until as much of possible of the public API is satisfied.
|
90
|
-
9. Make me a pull request.
|
91
|
-
|
92
|
-
Don't forget to fix the documentation for that adapter also!
|
93
|
-
|
94
|
-
In case of any problems, feel free to contact me.
|
95
|
-
|
96
|
-
== Contributors
|
97
|
-
|
98
|
-
* Levi Wilson - https://github.com/leviwilson
|
99
|
-
* Eric Kessler - https://github.com/enkessler
|
100
|
-
* Stephan Schwab - https://github.com/snscaimito
|
101
|
-
|
102
|
-
== Libraries Using RAutomation
|
103
|
-
|
104
|
-
* watir-classic[https://github.com/watir/watir-classic]
|
105
|
-
* mohawk[https://github.com/leviwilson/mohawk]
|
106
|
-
|
107
|
-
== Note on Patches/Pull Requests
|
108
|
-
|
109
|
-
* Fork the project.
|
110
|
-
* Make your feature addition or bug fix.
|
111
|
-
* Add tests for it. This is important so I don't break it in a
|
112
|
-
future version unintentionally.
|
113
|
-
* Commit, do not mess with rakefile, version, or history.
|
114
|
-
|
115
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
116
|
-
* Send me a pull request. Bonus points for topic branches.
|
117
|
-
|
118
|
-
== Copyright
|
119
|
-
|
120
|
-
Copyright (c) 2010-2013 Jarmo Pertman. See LICENSE for details.
|