watir 1.5.6 → 1.6.2
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.
- data/{changes.rb → CHANGES} +12 -3
- data/bin/watir-console +7 -1
- data/lib/changes.rb +3 -0
- data/{license.rb → lib/license.rb} +2 -1
- data/{readme.rb → lib/readme.rb} +4 -6
- data/{watir → lib/watir}/AutoItX3.dll +0 -0
- data/{watir → lib/watir}/IEDialog/Release/IEDialog.dll +0 -0
- data/{watir → lib/watir}/WindowHelper.rb +1 -1
- data/{watir → lib/watir}/camel_case.rb +0 -0
- data/{watir → lib/watir}/clickJSDialog.rb +0 -0
- data/{watir → lib/watir}/close_all.rb +1 -1
- data/{watir → lib/watir}/collections.rb +1 -1
- data/{watir → lib/watir}/container.rb +17 -8
- data/{watir → lib/watir}/contrib/enabled_popup.rb +0 -0
- data/{watir → lib/watir}/contrib/ie-new-process.rb +0 -0
- data/{watir → lib/watir}/contrib/page_checker.rb +0 -0
- data/{watir → lib/watir}/contrib/visible.rb +2 -2
- data/{watir → lib/watir}/cookiemanager.rb +0 -0
- data/{watir → lib/watir}/datahandler.rb +0 -0
- data/{watir → lib/watir}/dialog.rb +1 -1
- data/{watir → lib/watir}/element.rb +3 -7
- data/{watir → lib/watir}/element_collections.rb +0 -0
- data/{watir → lib/watir}/form.rb +31 -11
- data/{watir → lib/watir}/frame.rb +0 -0
- data/{watir/ie.rb → lib/watir/ie-class.rb} +22 -22
- data/{watir → lib/watir}/ie-process.rb +0 -0
- data/{watir.rb → lib/watir/ie.rb} +11 -27
- data/{watir → lib/watir}/image.rb +0 -0
- data/{watir → lib/watir}/input_elements.rb +33 -44
- data/{watir → lib/watir}/irb-history.rb +0 -0
- data/{watir → lib/watir}/link.rb +0 -0
- data/{watir → lib/watir}/locator.rb +56 -43
- data/{watir → lib/watir}/logger.rb +0 -0
- data/{watir → lib/watir}/modal_dialog.rb +0 -0
- data/{watir → lib/watir}/non_control_elements.rb +0 -0
- data/{watir → lib/watir}/page-container.rb +2 -2
- data/{watir → lib/watir}/popup.rb +0 -0
- data/{watir → lib/watir}/process.rb +0 -0
- data/{watir → lib/watir}/screen_capture.rb +0 -0
- data/{watir → lib/watir}/setFileDialog.rb +0 -0
- data/{watir → lib/watir}/table.rb +7 -2
- data/{watir → lib/watir}/utils.rb +0 -0
- data/lib/watir/version.rb +5 -0
- data/{watir → lib/watir}/watir_simple.rb +3 -3
- data/{watir → lib/watir}/win32.rb +0 -0
- data/lib/watir/win32ole.rb +6 -0
- data/lib/watir/win32ole/win32ole.so +0 -0
- data/{watir → lib/watir}/winClicker.rb +0 -0
- data/unittests/buttons_xpath_test.rb +32 -32
- data/unittests/checkbox_test.rb +113 -99
- data/unittests/checkbox_xpath_test.rb +57 -57
- data/unittests/core_tests.rb +10 -7
- data/unittests/css_test.rb +12 -32
- data/unittests/defer_test.rb +22 -22
- data/unittests/dialog_test.rb +13 -13
- data/unittests/div2_xpath_test.rb +3 -3
- data/unittests/div_test.rb +23 -19
- data/unittests/div_xpath_test.rb +50 -50
- data/unittests/errorchecker_test.rb +7 -9
- data/unittests/filefield_test.rb +12 -11
- data/unittests/filefield_xpath_test.rb +10 -10
- data/unittests/form_test.rb +144 -151
- data/unittests/form_xpath_test.rb +99 -99
- data/unittests/frame_test.rb +46 -44
- data/unittests/google_form_test.rb +2 -2
- data/unittests/html/checkboxes1.html +19 -16
- data/unittests/html/forms3.html +2 -2
- data/unittests/html/wallofcheckboxes.html +1003 -0
- data/unittests/ie_exists_test.rb +5 -3
- data/unittests/ie_test.rb +2 -2
- data/unittests/images_test.rb +83 -82
- data/unittests/images_xpath_test.rb +40 -40
- data/unittests/iostring_test.rb +1 -1
- data/unittests/links_multi_test.rb +7 -8
- data/unittests/links_test.rb +73 -71
- data/unittests/links_xpath_test.rb +15 -15
- data/unittests/lists_test.rb +10 -10
- data/unittests/map_test.rb +65 -65
- data/unittests/minmax_test.rb +10 -9
- data/unittests/navigate_test.rb +19 -23
- data/unittests/nbsp_xpath_test.rb +2 -2
- data/unittests/non_core_tests.rb +5 -2
- data/unittests/other/WindowLogonExample.rb +2 -2
- data/unittests/other/WindowLogonExtra.rb +1 -1
- data/unittests/other/navigate_exception_test.rb +14 -3
- data/unittests/other/screen_capture_test.rb +3 -2
- data/unittests/other/testcase_method_order_test.rb +1 -1
- data/unittests/pagecontainstext_test.rb +17 -14
- data/unittests/parent_child_test.rb +11 -7
- data/unittests/perf_test.rb +20 -0
- data/unittests/popups_test.rb +13 -14
- data/unittests/pre_test.rb +30 -28
- data/unittests/radios_test.rb +128 -107
- data/unittests/radios_xpath_test.rb +47 -47
- data/unittests/security_setting_test.rb +24 -0
- data/unittests/selectbox_test.rb +65 -157
- data/unittests/selectbox_xpath_test.rb +51 -51
- data/unittests/setup.rb +52 -48
- data/unittests/speed_settings_test.rb +31 -20
- data/unittests/table_cell_using_xpath_test.rb +12 -12
- data/unittests/table_test.rb +30 -16
- data/unittests/table_xpath_test.rb +25 -25
- data/unittests/test_tests.rb +9 -0
- data/unittests/textarea_test.rb +33 -33
- data/unittests/textarea_xpath_test.rb +37 -37
- data/unittests/textfield_for_ch_char_test.rb +9 -9
- data/unittests/textfields_test.rb +103 -98
- data/unittests/textfields_xpath_test.rb +50 -50
- data/unittests/windows/attach_to_existing_window_test.rb +2 -2
- data/unittests/windows/attach_to_new_window_test.rb +10 -10
- data/unittests/windows/close_window_test.rb +2 -2
- data/unittests/windows/frame_links_test.rb +6 -6
- data/unittests/windows/ie-each_test.rb +1 -1
- data/unittests/windows/iedialog_test.rb +4 -5
- data/unittests/windows/js_events_test.rb +14 -14
- data/unittests/windows/jscriptExtraAlert.rb +2 -1
- data/unittests/windows/jscriptExtraConfirmCancel.rb +1 -1
- data/unittests/windows/jscriptExtraConfirmOk.rb +1 -1
- data/unittests/windows/jscriptPushButton.rb +2 -1
- data/unittests/windows/jscript_test.rb +7 -7
- data/unittests/windows/modal_dialog_test.rb +28 -29
- data/unittests/windows/{new.rb → new_test.rb} +1 -1
- data/unittests/windows/open_close_test.rb +4 -7
- data/unittests/windows/send_keys_test.rb +11 -11
- data/unittests/xpath_tests.rb +4 -3
- metadata +82 -58
- data/unittests/buttons_test.rb +0 -107
- data/watir/assertions.rb +0 -44
- data/watir/exceptions.rb +0 -42
- data/watir/testcase.rb +0 -58
- data/watir/waiter.rb +0 -88
- data/watir/win32ole.rb +0 -8
- data/watir/win32ole/win32ole.so +0 -0
data/{changes.rb → CHANGES}
RENAMED
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
== Watir 1.5.6
|
|
2
|
+
|
|
3
|
+
To install this:
|
|
4
|
+
|
|
5
|
+
"gem update --system"
|
|
6
|
+
"gem install watir"
|
|
7
|
+
|
|
8
|
+
Installer Fix
|
|
9
|
+
|
|
10
|
+
This update fixes an installer problem in Watir 1.5.5 that affected some users.
|
|
11
|
+
If you installed 1.5.5 without error, there is no reason to get this update.
|
|
12
|
+
|
|
2
13
|
== Watir 1.5.5.
|
|
3
14
|
|
|
4
15
|
New Features
|
|
@@ -175,5 +186,3 @@ Changes in 1.3
|
|
|
175
186
|
bug fix in text_fields iterator where it wasnt iterating through password or text ares. Added test for password fields
|
|
176
187
|
bug fix for flash for tables
|
|
177
188
|
bug fixes for images and links in cells
|
|
178
|
-
|
|
179
|
-
=end
|
data/bin/watir-console
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
|
-
|
|
2
|
+
$root = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
|
3
|
+
$watir_lib = File.join($root, 'watir', 'lib')
|
|
4
|
+
$watir_common_lib = File.join($root, 'watir-common', 'lib')
|
|
5
|
+
$firewatir_lib = File.join($root, 'firewatir', 'lib')
|
|
6
|
+
$libs = "-I #{$watir_lib} -I #{$watir_common_lib} -I #{$firewatir_lib}"
|
|
7
|
+
puts $libs
|
|
8
|
+
exec "irb.bat #{$libs} -r irb/completion -r watir/irb-history -r watir --simple-prompt --readline"
|
data/lib/changes.rb
ADDED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
License
|
|
4
4
|
---------------------------------------------------------------------------
|
|
5
|
-
Copyright (c) 2004-
|
|
5
|
+
Copyright (c) 2004 - 2005, Paul Rogers and Bret Pettichord
|
|
6
|
+
Copyright (c) 2006 - 2008, Bret Pettichord
|
|
6
7
|
All rights reserved.
|
|
7
8
|
|
|
8
9
|
Redistribution and use in source and binary forms, with or without
|
data/{readme.rb → lib/readme.rb}
RENAMED
|
@@ -4,12 +4,7 @@ This is Watir - Web Application Testing In Ruby http://wtr.rubyforge.org
|
|
|
4
4
|
|
|
5
5
|
Install Ruby http://ruby-lang.org
|
|
6
6
|
First you need to install Ruby using the one-click installer for Windows. We
|
|
7
|
-
recommend Ruby 1.8.
|
|
8
|
-
|
|
9
|
-
However, if you wish to use Watir's support for the IE showModalDialog then
|
|
10
|
-
you must use Ruby 1.8.2-15 (or 1.8.2-14) and not a more recent version. This
|
|
11
|
-
dialog is the one that is posted with the showModalDialog() JavaScript
|
|
12
|
-
command and is supported with Watir's ie.modal_dialog command.
|
|
7
|
+
recommend Ruby 1.8.6. (Even if you are using modal dialogs.)
|
|
13
8
|
|
|
14
9
|
Install Watir
|
|
15
10
|
Watir is packaged as a gem, a Ruby library that can be installed over the
|
|
@@ -127,6 +122,9 @@ Contributors:
|
|
|
127
122
|
Paul Taylor - Bug fix 194
|
|
128
123
|
Vincent Xu - Chinese input support
|
|
129
124
|
Tomislav Car - Filefield fix (210)
|
|
125
|
+
Michael Hwee & Aidy Lewis - Multiple attribute support for FireWatir (233)
|
|
126
|
+
Alan Baird - Fix for visible? method (253)
|
|
127
|
+
Jari Bakken - Regexp support for includes? and selected? methods for select lists (261)
|
|
130
128
|
|
|
131
129
|
Acknowledgements:
|
|
132
130
|
Chris Morris
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -50,7 +50,7 @@ module Watir
|
|
|
50
50
|
|
|
51
51
|
# Determine the how and what when defaults are possible.
|
|
52
52
|
def process_default(default_attribute, how, what)
|
|
53
|
-
if
|
|
53
|
+
if what.nil? && String === how
|
|
54
54
|
what = how
|
|
55
55
|
how = default_attribute
|
|
56
56
|
end
|
|
@@ -331,7 +331,7 @@ module Watir
|
|
|
331
331
|
# ie.select_list(:name, /n_/) # access the first select box whose name matches n_
|
|
332
332
|
# ie.select_list(:index, 2) # access the second select box on the page (1 based, so the first field is accessed with :index,1)
|
|
333
333
|
# ie.select(:xpath, "//select[@id='currency']/") # access the select box with an id of currency
|
|
334
|
-
def select_list(how, what)
|
|
334
|
+
def select_list(how, what=nil)
|
|
335
335
|
SelectList.new(self, how, what)
|
|
336
336
|
end
|
|
337
337
|
|
|
@@ -374,8 +374,8 @@ module Watir
|
|
|
374
374
|
# ie.checkbox(:id, 'day_to_send', 'monday') # access the check box with an id of day_to_send and a value of monday
|
|
375
375
|
# ie.checkbox(:name,'email_frequency', 'weekly') # access the check box with a name of email_frequency and a value of 'weekly'
|
|
376
376
|
# ie.checkbox(:xpath, "//input[@name='email_frequency' and @value='daily']/") # access the checkbox with a name of email_frequency and a value of 'daily'
|
|
377
|
-
def checkbox(how, what, value=nil)
|
|
378
|
-
CheckBox.new(self, how, what,
|
|
377
|
+
def checkbox(how, what=nil, value=nil)
|
|
378
|
+
CheckBox.new(self, how, what, value)
|
|
379
379
|
end
|
|
380
380
|
|
|
381
381
|
# this is the method for accessing the check boxes iterator. Returns a CheckBoxes object
|
|
@@ -416,8 +416,8 @@ module Watir
|
|
|
416
416
|
# ie.radio(:id, 'day_to_send', 'monday') # access the radio button with an id of day_to_send and a value of monday
|
|
417
417
|
# ie.radio(:name,'email_frequency', 'weekly') # access the radio button with a name of email_frequency and a value of 'weekly'
|
|
418
418
|
# ie.radio(:xpath, "//input[@name='email_frequency' and @value='daily']/") # access the radio button with a name of email_frequency and a value of 'daily'
|
|
419
|
-
def radio(how, what, value=nil)
|
|
420
|
-
Radio.new(self, how, what,
|
|
419
|
+
def radio(how, what=nil, value=nil)
|
|
420
|
+
Radio.new(self, how, what, value)
|
|
421
421
|
end
|
|
422
422
|
|
|
423
423
|
# This is the method for accessing the radio buttons iterator. Returns a Radios object
|
|
@@ -725,11 +725,20 @@ module Watir
|
|
|
725
725
|
# * types - what object types we will look at.
|
|
726
726
|
# * value - used for objects that have one name, but many values. ex. radio lists and checkboxes
|
|
727
727
|
def locate_input_element(how, what, types, value=nil)
|
|
728
|
+
case how
|
|
729
|
+
when :xpath
|
|
730
|
+
return element_by_xpath(what)
|
|
731
|
+
when :ole_object
|
|
732
|
+
return what
|
|
733
|
+
end
|
|
734
|
+
# else:
|
|
735
|
+
|
|
728
736
|
locator = InputElementLocator.new self, types
|
|
729
|
-
locator.
|
|
737
|
+
locator.specifier = [how, what, value]
|
|
738
|
+
locator.document = document
|
|
730
739
|
return locator.element if locator.fast_locate
|
|
740
|
+
# todo: restrict search to elements.getElementsByTag('INPUT'); faster
|
|
731
741
|
locator.elements = ole_inner_elements if locator.elements.nil?
|
|
732
|
-
locator.specifier = [how, what, value]
|
|
733
742
|
locator.locate
|
|
734
743
|
end
|
|
735
744
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -29,10 +29,10 @@ class Watir::Element
|
|
|
29
29
|
object = document
|
|
30
30
|
while object
|
|
31
31
|
begin
|
|
32
|
-
if object.
|
|
32
|
+
if object.currentstyle.invoke('visibility') =~ /^hidden$/i
|
|
33
33
|
return false
|
|
34
34
|
end
|
|
35
|
-
if object.
|
|
35
|
+
if object.currentstyle.invoke('display') =~ /^none$/i
|
|
36
36
|
return false
|
|
37
37
|
end
|
|
38
38
|
if object.invoke('isDisabled')
|
|
File without changes
|
|
File without changes
|
|
@@ -41,19 +41,15 @@ module Watir
|
|
|
41
41
|
end
|
|
42
42
|
end"
|
|
43
43
|
end
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
result = "using #{@how.inspect}"
|
|
47
|
-
result << ", #{@what.inspect}" if @what
|
|
48
|
-
result
|
|
49
|
-
end
|
|
44
|
+
|
|
45
|
+
|
|
50
46
|
|
|
51
47
|
public
|
|
52
48
|
def assert_exists
|
|
53
49
|
locate if defined?(locate)
|
|
54
50
|
unless ole_object
|
|
55
51
|
raise UnknownObjectException.new(
|
|
56
|
-
|
|
52
|
+
Watir::Exception.message_for_unable_to_locate(@how, @what))
|
|
57
53
|
end
|
|
58
54
|
end
|
|
59
55
|
def assert_enabled
|
|
File without changes
|
data/{watir → lib/watir}/form.rb
RENAMED
|
@@ -20,7 +20,7 @@ module Watir
|
|
|
20
20
|
# wraps around a form OLE object
|
|
21
21
|
class FormWrapper
|
|
22
22
|
include FormAccess
|
|
23
|
-
def initialize
|
|
23
|
+
def initialize ole_object
|
|
24
24
|
@ole_object = ole_object
|
|
25
25
|
end
|
|
26
26
|
end
|
|
@@ -30,7 +30,7 @@ module Watir
|
|
|
30
30
|
include FormAccess
|
|
31
31
|
include Container
|
|
32
32
|
|
|
33
|
-
attr_accessor :form
|
|
33
|
+
attr_accessor :form, :ole_object
|
|
34
34
|
|
|
35
35
|
# * container - the containing object, normally an instance of IE
|
|
36
36
|
# * how - symbol - how we access the form (:name, :id, :index, :action, :method)
|
|
@@ -52,9 +52,6 @@ module Watir
|
|
|
52
52
|
next unless @ole_object == nil
|
|
53
53
|
|
|
54
54
|
wrapped = FormWrapper.new(thisForm)
|
|
55
|
-
|
|
56
|
-
log "form on page, name is " + wrapped.name
|
|
57
|
-
|
|
58
55
|
@ole_object =
|
|
59
56
|
case @how
|
|
60
57
|
when :name, :id, :method, :action
|
|
@@ -64,7 +61,7 @@ module Watir
|
|
|
64
61
|
else
|
|
65
62
|
raise MissingWayOfFindingObjectException, "#{how} is an unknown way of finding a form (#{what})"
|
|
66
63
|
end
|
|
67
|
-
count
|
|
64
|
+
count += 1
|
|
68
65
|
end
|
|
69
66
|
end
|
|
70
67
|
super(@ole_object)
|
|
@@ -77,15 +74,22 @@ module Watir
|
|
|
77
74
|
end
|
|
78
75
|
alias :exist? :exists?
|
|
79
76
|
|
|
77
|
+
def assert_exists
|
|
78
|
+
unless exists?
|
|
79
|
+
raise UnknownFormException,
|
|
80
|
+
"Unable to locate a form using #{@how} and #{@what}"
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
80
84
|
# Submit the data -- equivalent to pressing Enter or Return to submit a form.
|
|
81
|
-
def submit
|
|
82
|
-
|
|
83
|
-
@ole_object.submit
|
|
85
|
+
def submit
|
|
86
|
+
assert_exists
|
|
87
|
+
@ole_object.invoke('submit')
|
|
84
88
|
@container.wait
|
|
85
89
|
end
|
|
86
90
|
|
|
87
|
-
def ole_inner_elements
|
|
88
|
-
|
|
91
|
+
def ole_inner_elements
|
|
92
|
+
assert_exists
|
|
89
93
|
@ole_object.elements
|
|
90
94
|
end
|
|
91
95
|
private :ole_inner_elements
|
|
@@ -148,4 +152,20 @@ module Watir
|
|
|
148
152
|
|
|
149
153
|
end # class Form
|
|
150
154
|
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
module Watir
|
|
158
|
+
class Forms < ElementCollections
|
|
159
|
+
def element_class; Form; end
|
|
160
|
+
def element_tag; 'FORM'; end
|
|
161
|
+
def length
|
|
162
|
+
@container.document.getElementsByTagName("FORM").length
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
module Container
|
|
167
|
+
def forms
|
|
168
|
+
Forms.new(self)
|
|
169
|
+
end
|
|
170
|
+
end
|
|
151
171
|
end
|
|
File without changes
|
|
@@ -4,9 +4,6 @@ module Watir
|
|
|
4
4
|
include Container
|
|
5
5
|
include PageContainer
|
|
6
6
|
|
|
7
|
-
def self.quit
|
|
8
|
-
end
|
|
9
|
-
|
|
10
7
|
# Maximum number of seconds to wait when attaching to a window
|
|
11
8
|
def self.reset_attach_timeout
|
|
12
9
|
@@attach_timeout = 2.0
|
|
@@ -19,10 +16,13 @@ module Watir
|
|
|
19
16
|
@@attach_timeout = timeout
|
|
20
17
|
end
|
|
21
18
|
|
|
22
|
-
|
|
19
|
+
# Return the options used when creating new instances of IE.
|
|
20
|
+
# BUG: this interface invites misunderstanding/misuse such as IE.options[:speed] = :zippy]
|
|
21
|
+
def self.options
|
|
23
22
|
{:speed => self.speed, :visible => self.visible}
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
end
|
|
24
|
+
# set values for options used when creating new instances of IE.
|
|
25
|
+
def self.set_options options
|
|
26
26
|
options.each do |name, value|
|
|
27
27
|
send "#{name}=", value
|
|
28
28
|
end
|
|
@@ -51,15 +51,6 @@ module Watir
|
|
|
51
51
|
@@visible = x
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
# The revision number (according to Subversion)
|
|
55
|
-
REVISION_STRING = '$Revision: 1263 $'
|
|
56
|
-
REVISION_STRING.scan(/Revision: (\d*)/)
|
|
57
|
-
REVISION = $1 or 'unknown'
|
|
58
|
-
|
|
59
|
-
# The Release number
|
|
60
|
-
VERSION_SHORT = '1.5.6'
|
|
61
|
-
VERSION = VERSION_SHORT + '.' + REVISION
|
|
62
|
-
|
|
63
54
|
# Used internally to determine when IE has finished loading a page
|
|
64
55
|
READYSTATE_COMPLETE = 4
|
|
65
56
|
|
|
@@ -75,9 +66,6 @@ module Watir
|
|
|
75
66
|
# the last command
|
|
76
67
|
attr_reader :down_load_time
|
|
77
68
|
|
|
78
|
-
# Whether the speed is :fast or :slow
|
|
79
|
-
attr_reader :speed
|
|
80
|
-
|
|
81
69
|
# the OLE Internet Explorer object
|
|
82
70
|
attr_accessor :ie
|
|
83
71
|
|
|
@@ -194,19 +182,25 @@ module Watir
|
|
|
194
182
|
@url_list = []
|
|
195
183
|
end
|
|
196
184
|
|
|
185
|
+
# Specifies the speed that commands will be executed at. Choices are:
|
|
186
|
+
# * :slow (default)
|
|
187
|
+
# * :fast
|
|
188
|
+
# * :zippy
|
|
189
|
+
# With IE#speed= :zippy, text fields will be entered at once, instead of
|
|
190
|
+
# character by character (default).
|
|
197
191
|
def speed= how_fast
|
|
198
192
|
case how_fast
|
|
199
|
-
when :zippy
|
|
193
|
+
when :zippy then
|
|
200
194
|
@typingspeed = 0
|
|
201
195
|
@pause_after_wait = 0.01
|
|
202
196
|
@type_keys = false
|
|
203
197
|
@speed = :fast
|
|
204
|
-
when :fast
|
|
198
|
+
when :fast then
|
|
205
199
|
@typingspeed = 0
|
|
206
200
|
@pause_after_wait = 0.01
|
|
207
201
|
@type_keys = true
|
|
208
202
|
@speed = :fast
|
|
209
|
-
when :slow
|
|
203
|
+
when :slow then
|
|
210
204
|
@typingspeed = 0.08
|
|
211
205
|
@pause_after_wait = 0.1
|
|
212
206
|
@type_keys = true
|
|
@@ -216,6 +210,11 @@ module Watir
|
|
|
216
210
|
end
|
|
217
211
|
end
|
|
218
212
|
|
|
213
|
+
def speed
|
|
214
|
+
return @speed if @speed == :slow
|
|
215
|
+
return @type_keys ? :fast : :zippy
|
|
216
|
+
end
|
|
217
|
+
|
|
219
218
|
# deprecated: use speed = :fast instead
|
|
220
219
|
def set_fast_speed
|
|
221
220
|
self.speed = :fast
|
|
@@ -389,6 +388,7 @@ module Watir
|
|
|
389
388
|
|
|
390
389
|
# Closes the Browser
|
|
391
390
|
def close
|
|
391
|
+
return unless exists?
|
|
392
392
|
@closing = true
|
|
393
393
|
@ie.quit
|
|
394
394
|
end
|
|
@@ -496,7 +496,7 @@ module Watir
|
|
|
496
496
|
doc.frames.length.times do |n|
|
|
497
497
|
begin
|
|
498
498
|
documents_to_wait_for << doc.frames[n.to_s].document
|
|
499
|
-
rescue WIN32OLERuntimeError
|
|
499
|
+
rescue WIN32OLERuntimeError, NoMethodError
|
|
500
500
|
end
|
|
501
501
|
end
|
|
502
502
|
rescue WIN32OLERuntimeError
|
|
File without changes
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
license
|
|
3
3
|
---------------------------------------------------------------------------
|
|
4
4
|
Copyright (c) 2004 - 2005, Paul Rogers and Bret Pettichord
|
|
5
|
-
Copyright (c) 2006 -
|
|
5
|
+
Copyright (c) 2006 - 2008, Bret Pettichord
|
|
6
6
|
All rights reserved.
|
|
7
7
|
|
|
8
8
|
Redistribution and use in source and binary forms, with or without
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
(based on BSD Open Source License)
|
|
36
36
|
=end
|
|
37
37
|
|
|
38
|
-
|
|
39
38
|
require 'watir/win32ole'
|
|
40
39
|
|
|
41
40
|
require 'logger'
|
|
@@ -43,37 +42,23 @@ require 'watir/winClicker'
|
|
|
43
42
|
require 'watir/exceptions'
|
|
44
43
|
require 'watir/utils'
|
|
45
44
|
require 'watir/close_all'
|
|
46
|
-
require 'watir/waiter'
|
|
47
45
|
require 'watir/ie-process'
|
|
48
46
|
|
|
49
47
|
require 'dl/import'
|
|
50
48
|
require 'dl/struct'
|
|
51
49
|
require 'Win32API'
|
|
52
50
|
|
|
53
|
-
|
|
54
|
-
def matches(x)
|
|
55
|
-
return self == x
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
class Regexp
|
|
60
|
-
def matches(x)
|
|
61
|
-
return self.match(x)
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
class Integer
|
|
66
|
-
def matches(x)
|
|
67
|
-
return self == x
|
|
68
|
-
end
|
|
69
|
-
end
|
|
51
|
+
require 'watir/matches'
|
|
70
52
|
|
|
71
|
-
#
|
|
53
|
+
# these switches need to be deleted from ARGV to enable the Test::Unit
|
|
54
|
+
# functionality that grabs
|
|
72
55
|
# the remaining ARGV as a filter on what tests to run.
|
|
73
56
|
# Note: this means that watir must be require'd BEFORE test/unit.
|
|
57
|
+
# (Alternatively, you could require test/unit first and then put the Watir::IE
|
|
58
|
+
# arguments after the '--'.)
|
|
74
59
|
|
|
75
60
|
# Make Internet Explorer invisible. -b stands for background
|
|
76
|
-
$HIDE_IE
|
|
61
|
+
$HIDE_IE ||= ARGV.delete('-b')
|
|
77
62
|
|
|
78
63
|
# Run fast
|
|
79
64
|
$FAST_SPEED = ARGV.delete('-f')
|
|
@@ -86,7 +71,8 @@ require 'watir/win32'
|
|
|
86
71
|
require 'watir/container'
|
|
87
72
|
require 'watir/locator'
|
|
88
73
|
require 'watir/page-container'
|
|
89
|
-
require 'watir/ie'
|
|
74
|
+
require 'watir/ie-class'
|
|
75
|
+
require 'watir/version'
|
|
90
76
|
require 'watir/popup'
|
|
91
77
|
require 'watir/element'
|
|
92
78
|
require 'watir/frame'
|
|
@@ -100,16 +86,14 @@ require 'watir/image'
|
|
|
100
86
|
require 'watir/link'
|
|
101
87
|
require 'watir/collections'
|
|
102
88
|
|
|
89
|
+
require 'watir'
|
|
90
|
+
|
|
103
91
|
module Watir
|
|
104
92
|
include Watir::Exception
|
|
105
93
|
|
|
106
94
|
# Directory containing the watir.rb file
|
|
107
95
|
@@dir = File.expand_path(File.dirname(__FILE__))
|
|
108
96
|
|
|
109
|
-
def wait_until(*args)
|
|
110
|
-
Waiter.wait_until(*args) {yield}
|
|
111
|
-
end
|
|
112
|
-
|
|
113
97
|
ATTACHER = Waiter.new
|
|
114
98
|
# Like regular Ruby "until", except that a TimeOutException is raised
|
|
115
99
|
# if the timeout is exceeded. Timeout is IE.attach_timeout.
|