watir 1.9.2 → 2.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +27 -0
- data/VERSION +1 -1
- data/lib/watir/collections.rb +29 -387
- data/lib/watir/container.rb +14 -784
- data/lib/watir/dialogs/javascript.rb +7 -0
- data/lib/watir/element.rb +24 -4
- data/lib/watir/element_collections.rb +35 -57
- data/lib/watir/form.rb +13 -33
- data/lib/watir/frame.rb +14 -27
- data/lib/watir/html_element.rb +11 -3
- data/lib/watir/ie-class.rb +10 -1
- data/lib/watir/image.rb +3 -11
- data/lib/watir/input_elements.rb +11 -11
- data/lib/watir/link.rb +8 -15
- data/lib/watir/locator.rb +98 -73
- data/lib/watir/modal_dialog.rb +7 -1
- data/lib/watir/non_control_elements.rb +5 -89
- data/lib/watir/table.rb +46 -49
- data/unittests/checkbox_test.rb +39 -44
- data/unittests/checkbox_xpath_test.rb +2 -2
- data/unittests/css_test.rb +1 -1
- data/unittests/div_test.rb +43 -43
- data/unittests/div_xpath_test.rb +12 -12
- data/unittests/element_collections_test.rb +85 -0
- data/unittests/element_test.rb +4 -4
- data/unittests/form_test.rb +16 -19
- data/unittests/form_xpath_test.rb +6 -6
- data/unittests/frame_test.rb +114 -120
- data/unittests/html/multiple_specifiers.html +64 -0
- data/unittests/ie_test.rb +5 -5
- data/unittests/images_test.rb +12 -12
- data/unittests/index_specifier_test.rb +32 -0
- data/unittests/js_events_test.rb +3 -3
- data/unittests/links_multi_test.rb +4 -4
- data/unittests/links_test.rb +20 -20
- data/unittests/lists_test.rb +1 -1
- data/unittests/map_test.rb +1 -1
- data/unittests/multiple_specifiers_test.rb +29 -0
- data/unittests/no_wait_test.rb +2 -2
- data/unittests/pagecontainstext_test.rb +2 -2
- data/unittests/parent_child_test.rb +2 -2
- data/unittests/pre_test.rb +5 -5
- data/unittests/radios_test.rb +41 -60
- data/unittests/selectbox_test.rb +15 -15
- data/unittests/speed_settings_test.rb +2 -2
- data/unittests/table_and_tablerow_to_a_test.rb +7 -7
- data/unittests/table_test.rb +81 -94
- data/unittests/textfields_test.rb +26 -27
- data/unittests/windows/attach_to_new_window_test.rb +1 -1
- data/watir-rdoc.rb +1 -1
- data/watir.gemspec +1 -2
- metadata +34 -40
data/unittests/checkbox_test.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
|
4
4
|
require 'unittests/setup'
|
5
5
|
|
6
|
-
class
|
6
|
+
class TC_Checkbox < Test::Unit::TestCase
|
7
7
|
include Watir::Exception
|
8
8
|
|
9
9
|
def setup
|
@@ -19,26 +19,26 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def test_checkbox_properties_with_index
|
22
|
-
assert_equal("box1", browser.checkbox(:index,
|
23
|
-
assert_equal("", browser.checkbox(:index,
|
24
|
-
assert_equal("checkbox", browser.checkbox(:index,
|
25
|
-
assert_equal("on", browser.checkbox(:index,
|
26
|
-
assert_equal(false, browser.checkbox(:index,
|
22
|
+
assert_equal("box1", browser.checkbox(:index, 0).name )
|
23
|
+
assert_equal("", browser.checkbox(:index, 0).id )
|
24
|
+
assert_equal("checkbox", browser.checkbox(:index, 0).type )
|
25
|
+
assert_equal("on", browser.checkbox(:index, 0).value )
|
26
|
+
assert_equal(false, browser.checkbox(:index, 0).disabled )
|
27
27
|
end
|
28
28
|
def test_checkbox_properties
|
29
29
|
assert_equal("check_box_style", browser.checkbox(:name, "box1").class_name)
|
30
30
|
assert_equal("", browser.checkbox(:name, "box2").class_name)
|
31
31
|
|
32
32
|
assert_equal("1", browser.checkbox(:name, "box4").value )
|
33
|
-
assert_equal("3", browser.checkbox(:name
|
33
|
+
assert_equal("3", browser.checkbox(:name => "box4", :value => 3).value )
|
34
34
|
assert(browser.checkbox(:name, "box6").exists?)
|
35
|
-
assert_equal("checkbox", browser.checkbox(:name
|
36
|
-
assert_equal("checkbox", browser.checkbox(:name
|
37
|
-
assert_equal(false, browser.checkbox(:name
|
38
|
-
assert_equal("", browser.checkbox(:name
|
35
|
+
assert_equal("checkbox", browser.checkbox(:name => "box4", :value => 3).type )
|
36
|
+
assert_equal("checkbox", browser.checkbox(:name => "box6", :value => 'Milk').type )
|
37
|
+
assert_equal(false, browser.checkbox(:name => "box4", :value => 3).disabled )
|
38
|
+
assert_equal("", browser.checkbox(:name => "box4", :value => 3).id )
|
39
39
|
|
40
|
-
assert_equal("box4-value5", browser.checkbox(:name
|
41
|
-
assert_equal("", browser.checkbox(:name
|
40
|
+
assert_equal("box4-value5", browser.checkbox(:name => "box4", :value => 5).title)
|
41
|
+
assert_equal("", browser.checkbox(:name => "box4", :value => 4).title)
|
42
42
|
end
|
43
43
|
|
44
44
|
def test_onClick
|
@@ -53,27 +53,27 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
53
53
|
assert_false(browser.button(:value, "foo").enabled?)
|
54
54
|
end
|
55
55
|
|
56
|
-
def
|
56
|
+
def test_Checkbox_Exists
|
57
57
|
assert(browser.checkbox(:name, "box1").exists?)
|
58
58
|
assert_false(browser.checkbox(:name, "missing").exists?)
|
59
59
|
|
60
|
-
assert(browser.checkbox(:name
|
61
|
-
assert_false(browser.checkbox(:name
|
60
|
+
assert(browser.checkbox(:name => "box4", :value => 1).exists?)
|
61
|
+
assert_false(browser.checkbox(:name => "box4", :value => 22).exists?)
|
62
62
|
|
63
|
-
assert(browser.checkbox(:name
|
64
|
-
assert_false(browser.checkbox(:name
|
63
|
+
assert(browser.checkbox(:name => "box4", :value => /[0-9]/).exists?)
|
64
|
+
assert_false(browser.checkbox(:name => "box4", :value => /\d\d\d/).exists?)
|
65
65
|
end
|
66
66
|
|
67
67
|
def test_checkbox_Enabled
|
68
68
|
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").enabled? }
|
69
69
|
assert_raises(UnknownObjectException) { browser.checkbox(:id, "noName").enabled? }
|
70
|
-
assert_raises(UnknownObjectException) { browser.checkbox(:name
|
70
|
+
assert_raises(UnknownObjectException) { browser.checkbox(:name => "box4", :value => 6).enabled? }
|
71
71
|
|
72
72
|
assert(browser.checkbox(:name, "box1").enabled?)
|
73
73
|
assert_false(browser.checkbox(:name, "box2").enabled?)
|
74
74
|
|
75
|
-
assert(browser.checkbox(:name
|
76
|
-
assert_false(browser.checkbox(:name
|
75
|
+
assert(browser.checkbox(:name => "box4", :value => 4).enabled?)
|
76
|
+
assert_false(browser.checkbox(:name =>"box4", :value => 5 ).enabled?)
|
77
77
|
end
|
78
78
|
|
79
79
|
def test_checkbox_isSet
|
@@ -83,10 +83,10 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
83
83
|
assert_false(browser.checkbox(:name, "box2").isSet?)
|
84
84
|
assert(browser.checkbox(:name, "box3").isSet?)
|
85
85
|
|
86
|
-
assert_false(browser.checkbox(:name
|
87
|
-
assert(browser.checkbox(:name
|
86
|
+
assert_false(browser.checkbox(:name => "box4", :value => 2 ).isSet?)
|
87
|
+
assert(browser.checkbox(:name => "box4", :value => 1 ).isSet?)
|
88
88
|
|
89
|
-
assert_false(browser.checkbox(:name
|
89
|
+
assert_false(browser.checkbox(:name => 'box6', :value => 'Milk').isSet?)
|
90
90
|
end
|
91
91
|
|
92
92
|
def test_checkbox_clear
|
@@ -100,11 +100,11 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
100
100
|
browser.checkbox(:name, "box3").clear
|
101
101
|
assert_false(browser.checkbox(:name, "box3").isSet?)
|
102
102
|
|
103
|
-
browser.checkbox(:name
|
104
|
-
assert_false(browser.checkbox(:name
|
103
|
+
browser.checkbox(:name => "box4", :value => 1).clear
|
104
|
+
assert_false(browser.checkbox(:name => "box4", :value => 1).isSet?)
|
105
105
|
|
106
|
-
browser.checkbox(:name
|
107
|
-
assert_false(browser.checkbox(:name
|
106
|
+
browser.checkbox(:name => "box6", :value => 'Tea').clear
|
107
|
+
assert_false(browser.checkbox(:name => "box6", :value => 'Tea').isSet?)
|
108
108
|
end
|
109
109
|
|
110
110
|
def test_checkbox_getState
|
@@ -113,8 +113,8 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
113
113
|
assert_equal( true, browser.checkbox(:name, "box3").getState)
|
114
114
|
|
115
115
|
# checkboxes that have the same name but different values
|
116
|
-
assert_equal( false, browser.checkbox(:name
|
117
|
-
assert_equal( true, browser.checkbox(:name
|
116
|
+
assert_equal( false, browser.checkbox(:name => "box4", :value => 2).getState )
|
117
|
+
assert_equal( true, browser.checkbox(:name => "box4", :value => 1).getState)
|
118
118
|
end
|
119
119
|
|
120
120
|
def test_checkbox_set
|
@@ -128,8 +128,8 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
128
128
|
assert(browser.checkbox(:name, "box3").isSet?)
|
129
129
|
|
130
130
|
# checkboxes that have the same name but different values
|
131
|
-
browser.checkbox(:name
|
132
|
-
assert(browser.checkbox(:name
|
131
|
+
browser.checkbox(:name => "box4", :value => 3).set
|
132
|
+
assert(browser.checkbox(:name => "box4", :value => 3).isSet?)
|
133
133
|
|
134
134
|
# test set using the optinal true/false
|
135
135
|
# assumes the checkbox is already checked
|
@@ -139,25 +139,20 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
139
139
|
browser.checkbox(:name, "box1").set( true )
|
140
140
|
assert(browser.checkbox(:name, "box1").isSet?)
|
141
141
|
|
142
|
-
browser.checkbox(:name
|
143
|
-
assert_false(browser.checkbox(:name
|
142
|
+
browser.checkbox(:name => "box6", :value => 'Tea').set( false )
|
143
|
+
assert_false(browser.checkbox(:name => "box6", :value => 'Tea').isSet?)
|
144
144
|
|
145
|
-
browser.checkbox(:name
|
146
|
-
assert(browser.checkbox(:name
|
145
|
+
browser.checkbox(:name => "box6", :value => 'Tea').set( true )
|
146
|
+
assert(browser.checkbox(:name => "box6", :value => 'Tea').isSet?)
|
147
147
|
end
|
148
148
|
|
149
|
-
def test_checkbox_specifying_value
|
150
|
-
browser.checkbox(:name => "box6", :value => 'Tea').set( false )
|
151
|
-
assert_false(browser.checkbox(:name => "box6", :value => 'Tea').isSet?)
|
152
|
-
end
|
153
|
-
|
154
149
|
def test_checkboxes_access
|
155
|
-
assert_equal("box1" , browser.checkboxes[
|
150
|
+
assert_equal("box1" , browser.checkboxes[0].name )
|
156
151
|
end
|
157
152
|
|
158
153
|
def test_checkbox_iterator
|
159
154
|
assert_equal(13, browser.checkboxes.length)
|
160
|
-
index =
|
155
|
+
index = 0
|
161
156
|
browser.checkboxes.each do |c|
|
162
157
|
# puts "#{index}: #{c.name}"
|
163
158
|
assert_equal( browser.checkbox(:index, index).name , c.name )
|
@@ -165,7 +160,7 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
165
160
|
assert_equal( browser.checkbox(:index, index).value, c.value )
|
166
161
|
index += 1
|
167
162
|
end
|
168
|
-
assert_equal(index
|
163
|
+
assert_equal(index, browser.checkboxes.length)
|
169
164
|
end
|
170
165
|
|
171
166
|
# bug 217
|
@@ -3,7 +3,7 @@
|
|
3
3
|
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
|
4
4
|
require 'unittests/setup'
|
5
5
|
|
6
|
-
class
|
6
|
+
class TC_Checkbox_XPath < Test::Unit::TestCase
|
7
7
|
include Watir::Exception
|
8
8
|
|
9
9
|
def setup
|
@@ -27,7 +27,7 @@ class TC_CheckBox_XPath < Test::Unit::TestCase
|
|
27
27
|
assert_equal("" , browser.checkbox(:xpath , "//input[@name='box4' and @value='4']/").title)
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
30
|
+
def test_Checkbox_Exists
|
31
31
|
assert(browser.checkbox(:xpath , "//input[@name='box4' and @value='1']/").exists?)
|
32
32
|
assert_false(browser.checkbox(:xpath , "//input[@name='box4' and @value='22']/").exists?)
|
33
33
|
end
|
data/unittests/css_test.rb
CHANGED
data/unittests/div_test.rb
CHANGED
@@ -35,28 +35,28 @@ class TC_Divs < Test::Unit::TestCase
|
|
35
35
|
assert_equal("blueText", browser.div(:id, "div2").class_name)
|
36
36
|
assert_equal("", browser.div(:id, "div1").class_name)
|
37
37
|
|
38
|
-
assert_raises(UnknownObjectException) { browser.div(:index,
|
39
|
-
assert_equal("div1" , browser.div(:index,
|
40
|
-
assert_equal("" , browser.div(:index,
|
41
|
-
assert_equal("blueText" , browser.div(:index,
|
42
|
-
assert_equal("" , browser.div(:index,
|
43
|
-
assert_equal(false , browser.div(:index,
|
44
|
-
assert_equal("" , browser.div(:index,
|
45
|
-
assert_equal("div2", browser.div(:index,
|
38
|
+
assert_raises(UnknownObjectException) { browser.div(:index, 43).class_name }
|
39
|
+
assert_equal("div1" , browser.div(:index, 0).id)
|
40
|
+
assert_equal("" , browser.div(:index, 0).class_name)
|
41
|
+
assert_equal("blueText" , browser.div(:index, 1).class_name)
|
42
|
+
assert_equal("" , browser.div(:index, 1).value)
|
43
|
+
assert_equal(false , browser.div(:index, 1).disabled)
|
44
|
+
assert_equal("" , browser.div(:index, 1).name)
|
45
|
+
assert_equal("div2", browser.div(:index, 1).id)
|
46
46
|
end
|
47
47
|
|
48
48
|
def test_div_iterator
|
49
49
|
assert_equal(8, browser.divs.length)
|
50
|
-
assert_equal("div1", browser.divs[
|
50
|
+
assert_equal("div1", browser.divs[0].id)
|
51
51
|
|
52
|
-
index =
|
52
|
+
index = 0
|
53
53
|
browser.divs.each do |s|
|
54
54
|
assert_equal(browser.div(:index,index).name, s.name)
|
55
55
|
assert_equal(browser.div(:index,index).id, s.id)
|
56
56
|
assert_equal(browser.div(:index,index).class_name , s.class_name)
|
57
57
|
index += 1
|
58
58
|
end
|
59
|
-
assert_equal(index
|
59
|
+
assert_equal(index, browser.divs.length)
|
60
60
|
end
|
61
61
|
|
62
62
|
def test_enumerable
|
@@ -65,16 +65,16 @@ class TC_Divs < Test::Unit::TestCase
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def test_objects_in_div
|
68
|
-
assert browser.div(:id, 'buttons1').button(:index,
|
69
|
-
assert !browser.div(:id, 'buttons1').button(:index,
|
68
|
+
assert browser.div(:id, 'buttons1').button(:index,0).exists?
|
69
|
+
assert !browser.div(:id, 'buttons1').button(:index,2).exists?
|
70
70
|
assert browser.div(:id, 'buttons1').button(:name,'b1').exists?
|
71
71
|
|
72
|
+
assert browser.div(:id, 'buttons2').button(:index,0).exists?
|
72
73
|
assert browser.div(:id, 'buttons2').button(:index,1).exists?
|
73
|
-
assert browser.div(:id, '
|
74
|
-
assert !browser.div(:id, 'buttons1').button(:index,3).exists?
|
74
|
+
assert !browser.div(:id, 'buttons1').button(:index,2).exists?
|
75
75
|
|
76
|
-
browser.div(:id, 'buttons1').button(:index,
|
77
|
-
assert_equal('button1', browser.div(:id, 'text_fields1').text_field(:index,
|
76
|
+
browser.div(:id, 'buttons1').button(:index, 0).click
|
77
|
+
assert_equal('button1', browser.div(:id, 'text_fields1').text_field(:index,0).value)
|
78
78
|
|
79
79
|
assert_equal(3, browser.div(:id, 'text_fields1').text_fields.length )
|
80
80
|
browser.div(:id, 'text_fields1').text_field(:name, 'div_text1').set("drink me")
|
@@ -83,7 +83,7 @@ class TC_Divs < Test::Unit::TestCase
|
|
83
83
|
|
84
84
|
def test_images_inside_a_div
|
85
85
|
assert_equal(3, browser.div(:id, 'hasImages').images.length)
|
86
|
-
assert_match(/triangle/, browser.div(:id, 'hasImages').images[
|
86
|
+
assert_match(/triangle/, browser.div(:id, 'hasImages').images[0].src)
|
87
87
|
assert_match(/circle/, browser.div(:id, 'hasImages').image(:id , 'circle').src)
|
88
88
|
end
|
89
89
|
|
@@ -114,21 +114,21 @@ class TC_Divs < Test::Unit::TestCase
|
|
114
114
|
assert_equal("blueText", browser.span(:id, "span2").class_name)
|
115
115
|
assert_equal("", browser.span(:id, "span1").class_name)
|
116
116
|
|
117
|
-
assert_raises(UnknownObjectException) {browser.span(:index ,
|
118
|
-
assert_equal("span1" , browser.span(:index ,
|
119
|
-
assert_equal("" , browser.span(:index ,
|
120
|
-
assert_equal("blueText" , browser.span(:index ,
|
121
|
-
assert_equal("" , browser.span(:index ,
|
122
|
-
assert_equal(false , browser.span(:index ,
|
123
|
-
assert_equal("" , browser.span(:index ,
|
124
|
-
assert_equal("span2", browser.span(:index ,
|
117
|
+
assert_raises(UnknownObjectException) {browser.span(:index , 43).class_name }
|
118
|
+
assert_equal("span1" , browser.span(:index , 0).id )
|
119
|
+
assert_equal("" , browser.span(:index , 0).class_name )
|
120
|
+
assert_equal("blueText" , browser.span(:index , 1).class_name )
|
121
|
+
assert_equal("" , browser.span(:index , 1).value)
|
122
|
+
assert_equal(false , browser.span(:index , 1).disabled)
|
123
|
+
assert_equal("" , browser.span(:index , 1).name)
|
124
|
+
assert_equal("span2", browser.span(:index , 1).id)
|
125
125
|
end
|
126
126
|
|
127
127
|
def test_span_iterator
|
128
128
|
assert_equal(7, browser.spans.length)
|
129
|
-
assert_equal("span1", browser.spans[
|
129
|
+
assert_equal("span1", browser.spans[0].id)
|
130
130
|
|
131
|
-
index =
|
131
|
+
index = 0
|
132
132
|
browser.spans.each do |s|
|
133
133
|
# puts "each - span = " + s.to_s
|
134
134
|
assert_equal(browser.span(:index, index ).name , s.name )
|
@@ -136,30 +136,30 @@ class TC_Divs < Test::Unit::TestCase
|
|
136
136
|
assert_equal(browser.span(:index, index ).class_name , s.class_name )
|
137
137
|
index += 1
|
138
138
|
end
|
139
|
-
assert_equal(index
|
139
|
+
assert_equal(index, browser.spans.length)
|
140
140
|
end
|
141
141
|
|
142
142
|
def test_objects_in_span
|
143
|
-
assert(browser.span(:id, 'buttons1').button(:index,
|
144
|
-
assert_false(browser.span(:id, 'buttons1').button(:index,
|
143
|
+
assert(browser.span(:id, 'buttons1').button(:index,0).exists? )
|
144
|
+
assert_false(browser.span(:id, 'buttons1').button(:index,2).exists? )
|
145
145
|
assert(browser.span(:id, 'buttons1').button(:name,'b1').exists? )
|
146
146
|
|
147
|
+
assert(browser.span(:id, 'buttons2').button(:index,0).exists? )
|
147
148
|
assert(browser.span(:id, 'buttons2').button(:index,1).exists? )
|
148
|
-
|
149
|
-
assert_false(browser.span(:id, 'buttons1').button(:index,3).exists? )
|
149
|
+
assert_false(browser.span(:id, 'buttons1').button(:index,2).exists? )
|
150
150
|
|
151
|
-
browser.span(:id, 'buttons1').button(:index,
|
152
|
-
assert_equal( 'button1' , browser.span(:id , 'text_fields1').text_field(:index,
|
151
|
+
browser.span(:id, 'buttons1').button(:index,0).click
|
152
|
+
assert_equal( 'button1' , browser.span(:id , 'text_fields1').text_field(:index,0).value)
|
153
153
|
assert_equal( 3 , browser.span(:id , 'text_fields1').text_fields.length )
|
154
154
|
end
|
155
155
|
|
156
156
|
def test_p
|
157
157
|
assert(browser.p(:id, 'number1').exists?)
|
158
|
-
assert(browser.p(:index,
|
158
|
+
assert(browser.p(:index, 2).exists?)
|
159
159
|
assert(browser.p(:title, 'test_3').exists?)
|
160
160
|
|
161
161
|
assert_false(browser.p(:id, 'missing').exists?)
|
162
|
-
assert_false(browser.p(:index,
|
162
|
+
assert_false(browser.p(:index, 7).exists?)
|
163
163
|
assert_false(browser.p(:title, 'test_55').exists?)
|
164
164
|
|
165
165
|
assert_raises( UnknownObjectException) {browser.p(:id , 'missing').class_name }
|
@@ -168,15 +168,15 @@ class TC_Divs < Test::Unit::TestCase
|
|
168
168
|
assert_raises( UnknownObjectException) {browser.p(:id , 'missing').to_s }
|
169
169
|
assert_raises( UnknownObjectException) {browser.p(:id , 'missing').disabled }
|
170
170
|
|
171
|
-
assert_equal('redText' , browser.p(:index,
|
172
|
-
assert_equal('P_tag_1' , browser.p(:index,
|
173
|
-
assert_equal('This text is in a p with an id of number2' , browser.p(:index,
|
171
|
+
assert_equal('redText' , browser.p(:index,0).class_name)
|
172
|
+
assert_equal('P_tag_1' , browser.p(:index,0).title)
|
173
|
+
assert_equal('This text is in a p with an id of number2' , browser.p(:index,1).text)
|
174
174
|
end
|
175
175
|
|
176
176
|
def test_p_iterator
|
177
177
|
assert_equal(3, browser.ps.length)
|
178
|
-
assert_equal('italicText', browser.ps[
|
179
|
-
assert_equal('number3', browser.ps[
|
178
|
+
assert_equal('italicText', browser.ps[1].class_name)
|
179
|
+
assert_equal('number3', browser.ps[2].id)
|
180
180
|
|
181
181
|
count = 1
|
182
182
|
browser.ps.each do |p|
|
@@ -185,4 +185,4 @@ class TC_Divs < Test::Unit::TestCase
|
|
185
185
|
end
|
186
186
|
assert_equal(count - 1, browser.ps.length)
|
187
187
|
end
|
188
|
-
end
|
188
|
+
end
|
data/unittests/div_xpath_test.rb
CHANGED
@@ -36,17 +36,17 @@ class TC_Divs_XPath < Test::Unit::TestCase
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_objects_in_div
|
39
|
-
assert(browser.div(:xpath , "//div[@id='buttons1']/").button(:index,
|
40
|
-
assert_false(browser.div(:xpath , "//div[@id='buttons1']/").button(:index,
|
39
|
+
assert(browser.div(:xpath , "//div[@id='buttons1']/").button(:index,0).exists? )
|
40
|
+
assert_false(browser.div(:xpath , "//div[@id='buttons1']/").button(:index,2).exists? )
|
41
41
|
assert(browser.div(:xpath , "//div[@id='buttons1']/").button(:name,'b1').exists? )
|
42
42
|
|
43
|
+
assert(browser.div(:xpath , "//div[@id='buttons2']/").button(:index,0).exists? )
|
43
44
|
assert(browser.div(:xpath , "//div[@id='buttons2']/").button(:index,1).exists? )
|
44
|
-
|
45
|
-
assert_false(browser.div(:xpath , "//div[@id='buttons1']/").button(:index,3).exists? )
|
45
|
+
assert_false(browser.div(:xpath , "//div[@id='buttons1']/").button(:index,2).exists? )
|
46
46
|
|
47
|
-
browser.div(:xpath , "//div[@id='buttons1']/").button(:index,
|
47
|
+
browser.div(:xpath , "//div[@id='buttons1']/").button(:index,0).click
|
48
48
|
|
49
|
-
assert_equal( 'button1' , browser.div(:xpath , "//div[@id='text_fields1']/").text_field(:index,
|
49
|
+
assert_equal( 'button1' , browser.div(:xpath , "//div[@id='text_fields1']/").text_field(:index,0).value)
|
50
50
|
|
51
51
|
assert_equal( 3 , browser.div(:xpath , "//div[@id='text_fields1']/").text_fields.length )
|
52
52
|
end
|
@@ -64,17 +64,17 @@ class TC_Divs_XPath < Test::Unit::TestCase
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def test_objects_in_span
|
67
|
-
assert(browser.span(:xpath , "//span[@id='buttons1']/").button(:index,
|
68
|
-
assert_false(browser.span(:xpath , "//span[@id='buttons1']/").button(:index,
|
67
|
+
assert(browser.span(:xpath , "//span[@id='buttons1']/").button(:index,0).exists? )
|
68
|
+
assert_false(browser.span(:xpath , "//span[@id='buttons1']/").button(:index,2).exists? )
|
69
69
|
assert(browser.span(:xpath , "//span[@id='buttons1']/").button(:name,'b1').exists? )
|
70
70
|
|
71
|
+
assert(browser.span(:xpath , "//span[@id='buttons2']/").button(:index,0).exists? )
|
71
72
|
assert(browser.span(:xpath , "//span[@id='buttons2']/").button(:index,1).exists? )
|
72
|
-
|
73
|
-
assert_false(browser.span(:xpath , "//span[@id='buttons1']/").button(:index,3).exists? )
|
73
|
+
assert_false(browser.span(:xpath , "//span[@id='buttons1']/").button(:index,2).exists? )
|
74
74
|
|
75
|
-
browser.span(:xpath , "//span[@id='buttons1']/").button(:index,
|
75
|
+
browser.span(:xpath , "//span[@id='buttons1']/").button(:index,0).click
|
76
76
|
|
77
|
-
assert_equal( 'button1' , browser.span(:xpath , "//span[@id='text_fields1']/").text_field(:index,
|
77
|
+
assert_equal( 'button1' , browser.span(:xpath , "//span[@id='text_fields1']/").text_field(:index,0).value)
|
78
78
|
|
79
79
|
assert_equal( 3 , browser.span(:xpath , "//span[@id='text_fields1']/").text_fields.length )
|
80
80
|
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
|
2
|
+
require 'unittests/setup'
|
3
|
+
|
4
|
+
class TC_ElementCollections < Test::Unit::TestCase
|
5
|
+
include Watir::Exception
|
6
|
+
|
7
|
+
def setup
|
8
|
+
goto_page "multiple_specifiers.html"
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_input_element_specifiers
|
12
|
+
buttons = browser.buttons(:class, "two")
|
13
|
+
assert 1, buttons.length
|
14
|
+
assert "testbutton", buttons[0].name
|
15
|
+
assert "two", buttons[0].class_name
|
16
|
+
|
17
|
+
buttons = browser.buttons(:name, "testbutton")
|
18
|
+
assert 2, buttons.length
|
19
|
+
buttons.each do |btn|
|
20
|
+
assert Watir::Button, btn.class
|
21
|
+
end
|
22
|
+
assert "testbutton", buttons[0].name
|
23
|
+
assert "one", buttons[0].class_name
|
24
|
+
assert "testbutton", buttons[1].name
|
25
|
+
assert "two", buttons[1].class_name
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_brackets
|
29
|
+
assert browser.buttons[0], browser.buttons(:class => "one")
|
30
|
+
assert browser.buttons[1].exists?
|
31
|
+
assert_raises(Watir::Exception::MissingWayOfFindingObjectException) {browser.buttons[2].exists?}
|
32
|
+
assert_raises(Watir::Exception::MissingWayOfFindingObjectException) {browser.buttons[-1].exists?}
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_first
|
36
|
+
assert browser.buttons.first, browser.buttons(:class, "one")
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_last
|
40
|
+
assert browser.buttons.last, browser.buttons(:class => "two")
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_frames_specifiers
|
44
|
+
frames = browser.frames(:name => "testframe")
|
45
|
+
assert 2, frames.length
|
46
|
+
frames.each do |frame|
|
47
|
+
assert Watir::Frame, frame.class
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_forms_specifiers
|
52
|
+
forms = browser.forms(:name => "testform")
|
53
|
+
assert 2, forms.size
|
54
|
+
forms.each do |form|
|
55
|
+
assert Watir::Form, form.class
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_elements_specifiers
|
60
|
+
elements = browser.elements(:name => "testdivs")
|
61
|
+
assert 2, elements.size
|
62
|
+
elements.each do |element|
|
63
|
+
assert Watir::Div, element.class
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_multiple_specifiers
|
68
|
+
links = browser.links(:name => /test/, :class => /one|two/)
|
69
|
+
assert 2, links.size
|
70
|
+
|
71
|
+
links.each do |link|
|
72
|
+
assert Watir::Link, link.class
|
73
|
+
end
|
74
|
+
assert "one", links[0].class_name
|
75
|
+
assert "testlink", links[0].name
|
76
|
+
assert "two", links[1].class_name
|
77
|
+
assert "testlink", links[1].name
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_unallowed_index_specifier
|
81
|
+
assert_raises(Watir::Exception::MissingWayOfFindingObjectException) {browser.divs(:index, 1)}
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|