watir-webdriver 0.6.1 → 0.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/.gitignore +2 -1
- data/.travis.yml +1 -0
- data/CHANGES.md +1693 -0
- data/Gemfile +0 -1
- data/Rakefile +22 -0
- data/lib/watir-webdriver/alert.rb +46 -0
- data/lib/watir-webdriver/aliases.rb +2 -2
- data/lib/watir-webdriver/atoms.rb +2 -2
- data/lib/watir-webdriver/atoms/README +0 -1
- data/lib/watir-webdriver/browser.rb +195 -14
- data/lib/watir-webdriver/cell_container.rb +14 -2
- data/lib/watir-webdriver/container.rb +22 -0
- data/lib/watir-webdriver/cookies.rb +41 -0
- data/lib/watir-webdriver/element_collection.rb +13 -3
- data/lib/watir-webdriver/elements/button.rb +3 -1
- data/lib/watir-webdriver/elements/checkbox.rb +8 -6
- data/lib/watir-webdriver/elements/dlist.rb +4 -4
- data/lib/watir-webdriver/elements/element.rb +153 -28
- data/lib/watir-webdriver/elements/file_field.rb +6 -4
- data/lib/watir-webdriver/elements/generated.rb +12 -8
- data/lib/watir-webdriver/elements/image.rb +10 -5
- data/lib/watir-webdriver/elements/input.rb +6 -0
- data/lib/watir-webdriver/elements/option.rb +28 -2
- data/lib/watir-webdriver/elements/radio.rb +5 -1
- data/lib/watir-webdriver/elements/select.rb +11 -9
- data/lib/watir-webdriver/elements/table.rb +8 -1
- data/lib/watir-webdriver/elements/table_cell.rb +3 -3
- data/lib/watir-webdriver/elements/table_row.rb +0 -1
- data/lib/watir-webdriver/elements/table_section.rb +8 -2
- data/lib/watir-webdriver/elements/text_area.rb +2 -2
- data/lib/watir-webdriver/elements/text_field.rb +2 -2
- data/lib/watir-webdriver/extensions/alerts.rb +3 -3
- data/lib/watir-webdriver/extensions/nokogiri.rb +2 -2
- data/lib/watir-webdriver/extensions/select_text.rb +2 -2
- data/lib/watir-webdriver/has_window.rb +23 -1
- data/lib/watir-webdriver/html.rb +2 -0
- data/lib/watir-webdriver/html/visitor.rb +2 -2
- data/lib/watir-webdriver/locators/element_locator.rb +8 -0
- data/lib/watir-webdriver/locators/text_field_locator.rb +1 -1
- data/lib/watir-webdriver/row_container.rb +11 -3
- data/lib/watir-webdriver/screenshot.rb +11 -0
- data/lib/watir-webdriver/user_editable.rb +10 -4
- data/lib/watir-webdriver/version.rb +2 -2
- data/lib/watir-webdriver/wait.rb +32 -11
- data/lib/watir-webdriver/window.rb +104 -1
- data/lib/watir-webdriver/xpath_support.rb +4 -0
- data/lib/yard/handlers/watir.rb +1 -1
- data/spec/element_locator_spec.rb +14 -1
- data/spec/html/clicks.html +1 -1
- data/spec/implementation.rb +29 -6
- data/spec/wait_spec.rb +2 -2
- data/support/travis.sh +5 -3
- data/support/version_differ.rb +59 -0
- data/watir-webdriver.gemspec +4 -3
- metadata +146 -149
- data/spec/alert_spec.rb +0 -91
- data/spec/html/alerts.html +0 -12
- data/spec/screenshot_spec.rb +0 -25
- data/support/html5.html +0 -102577
@@ -1,6 +1,12 @@
|
|
1
1
|
module Watir
|
2
2
|
module CellContainer
|
3
3
|
|
4
|
+
#
|
5
|
+
# Returns table cell.
|
6
|
+
#
|
7
|
+
# @return [TableCell]
|
8
|
+
#
|
9
|
+
|
4
10
|
def cell(*args)
|
5
11
|
cell = TableCell.new(self, extract_selector(args).merge(:tag_name => /^(th|td)$/))
|
6
12
|
cell.locator_class = ChildCellLocator
|
@@ -8,6 +14,12 @@ module Watir
|
|
8
14
|
cell
|
9
15
|
end
|
10
16
|
|
17
|
+
#
|
18
|
+
# Returns table cells collection.
|
19
|
+
#
|
20
|
+
# @return [TableCell]
|
21
|
+
#
|
22
|
+
|
11
23
|
def cells(*args)
|
12
24
|
cells = TableCellCollection.new(self, extract_selector(args).merge(:tag_name => /^(th|td)$/))
|
13
25
|
cells.locator_class = ChildCellLocator
|
@@ -15,5 +27,5 @@ module Watir
|
|
15
27
|
cells
|
16
28
|
end
|
17
29
|
|
18
|
-
end
|
19
|
-
end
|
30
|
+
end # CellContainer
|
31
|
+
end # Watir
|
@@ -4,14 +4,36 @@ module Watir
|
|
4
4
|
include XpathSupport
|
5
5
|
include Atoms
|
6
6
|
|
7
|
+
#
|
8
|
+
# Returns element.
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# browser.element(:data_bind => 'func')
|
12
|
+
#
|
13
|
+
# @return [HTMLElement]
|
14
|
+
#
|
15
|
+
|
7
16
|
def element(*args)
|
8
17
|
HTMLElement.new(self, extract_selector(args))
|
9
18
|
end
|
10
19
|
|
20
|
+
#
|
21
|
+
# Returns element collection.
|
22
|
+
#
|
23
|
+
# @example
|
24
|
+
# browser.elements(:data_bind => 'func')
|
25
|
+
#
|
26
|
+
# @return [HTMLElementCollection]
|
27
|
+
#
|
28
|
+
|
11
29
|
def elements(*args)
|
12
30
|
HTMLElementCollection.new(self, extract_selector(args))
|
13
31
|
end
|
14
32
|
|
33
|
+
#
|
34
|
+
# @api private
|
35
|
+
#
|
36
|
+
|
15
37
|
def extract_selector(selectors)
|
16
38
|
case selectors.size
|
17
39
|
when 2
|
@@ -4,12 +4,37 @@ module Watir
|
|
4
4
|
@control = control
|
5
5
|
end
|
6
6
|
|
7
|
+
#
|
8
|
+
# Returns array of cookies.
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# browser.cookies.to_a
|
12
|
+
# #=> {:name=>"my_session", :value=>"BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk", :domain=>"mysite.com"}
|
13
|
+
#
|
14
|
+
# @return [Array<Hash>]
|
15
|
+
#
|
16
|
+
|
7
17
|
def to_a
|
8
18
|
@control.all_cookies.each do |e|
|
9
19
|
e[:expires] = to_time(e[:expires]) if e[:expires]
|
10
20
|
end
|
11
21
|
end
|
12
22
|
|
23
|
+
#
|
24
|
+
# Adds new cookie.
|
25
|
+
#
|
26
|
+
# @example
|
27
|
+
# browser.cookies.add 'my_session', 'BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk', :secure => true
|
28
|
+
#
|
29
|
+
# @param [String] name
|
30
|
+
# @param [String] value
|
31
|
+
# @param [Hash] opts
|
32
|
+
# @option opts [Boolean] :secure
|
33
|
+
# @option opts [String] :path
|
34
|
+
# @option opts [] :expires TODO what type
|
35
|
+
# @option opts [String] :domain
|
36
|
+
#
|
37
|
+
|
13
38
|
def add(name, value, opts = {})
|
14
39
|
cookie = {
|
15
40
|
:name => name,
|
@@ -26,10 +51,26 @@ module Watir
|
|
26
51
|
@control.add_cookie cookie
|
27
52
|
end
|
28
53
|
|
54
|
+
#
|
55
|
+
# Deletes cookie by given name.
|
56
|
+
#
|
57
|
+
# @example
|
58
|
+
# browser.cookies.delete 'my_session'
|
59
|
+
#
|
60
|
+
# @param [String] name
|
61
|
+
#
|
62
|
+
|
29
63
|
def delete(name)
|
30
64
|
@control.delete_cookie(name)
|
31
65
|
end
|
32
66
|
|
67
|
+
#
|
68
|
+
# Deletes all cookies.
|
69
|
+
#
|
70
|
+
# @example
|
71
|
+
# browser.cookies.clear
|
72
|
+
#
|
73
|
+
|
33
74
|
def clear
|
34
75
|
@control.delete_all_cookies
|
35
76
|
end
|
@@ -13,6 +13,14 @@ module Watir
|
|
13
13
|
@selector = selector
|
14
14
|
end
|
15
15
|
|
16
|
+
#
|
17
|
+
# Yields each element in collection.
|
18
|
+
#
|
19
|
+
# @example
|
20
|
+
# divs = browser.divs(:class => 'kls')
|
21
|
+
# divs.each do |div|
|
22
|
+
# puts div.text
|
23
|
+
# end
|
16
24
|
#
|
17
25
|
# @yieldparam [Watir::Element] element Iterate through the elements in this collection.
|
18
26
|
#
|
@@ -22,7 +30,9 @@ module Watir
|
|
22
30
|
end
|
23
31
|
|
24
32
|
#
|
25
|
-
#
|
33
|
+
# Returns number of elements in collection.
|
34
|
+
#
|
35
|
+
# @return [Fixnum]
|
26
36
|
#
|
27
37
|
|
28
38
|
def length
|
@@ -37,7 +47,7 @@ module Watir
|
|
37
47
|
# Also note that because of Watir's lazy loading, this will return an Element
|
38
48
|
# instance even if the index is out of bounds.
|
39
49
|
#
|
40
|
-
# @param [Fixnum]
|
50
|
+
# @param [Fixnum] idx Index of wanted element, 0-indexed
|
41
51
|
# @return [Watir::Element] Returns an instance of a Watir::Element subclass
|
42
52
|
#
|
43
53
|
|
@@ -66,7 +76,7 @@ module Watir
|
|
66
76
|
end
|
67
77
|
|
68
78
|
#
|
69
|
-
# This collection as an Array
|
79
|
+
# This collection as an Array.
|
70
80
|
#
|
71
81
|
# @return [Array<Watir::Element>]
|
72
82
|
#
|
@@ -20,6 +20,8 @@ module Watir
|
|
20
20
|
# For input elements, returns the "value" attribute.
|
21
21
|
# For button elements, returns the inner text.
|
22
22
|
#
|
23
|
+
# @return [String]
|
24
|
+
#
|
23
25
|
|
24
26
|
def text
|
25
27
|
assert_exists
|
@@ -37,7 +39,7 @@ module Watir
|
|
37
39
|
end
|
38
40
|
|
39
41
|
#
|
40
|
-
# Returns true if this element is enabled
|
42
|
+
# Returns true if this element is enabled.
|
41
43
|
#
|
42
44
|
# @return [Boolean]
|
43
45
|
#
|
@@ -4,16 +4,17 @@ module Watir
|
|
4
4
|
class CheckBox < Input
|
5
5
|
|
6
6
|
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# Example:
|
7
|
+
# Sets checkbox to the given value.
|
10
8
|
#
|
9
|
+
# @example
|
11
10
|
# checkbox.set? #=> false
|
12
11
|
# checkbox.set
|
13
12
|
# checkbox.set? #=> true
|
14
13
|
# checkbox.set(false)
|
15
14
|
# checkbox.set? #=> false
|
16
15
|
#
|
16
|
+
# @param [Boolean] bool
|
17
|
+
#
|
17
18
|
|
18
19
|
def set(bool = true)
|
19
20
|
assert_exists
|
@@ -27,7 +28,7 @@ module Watir
|
|
27
28
|
end
|
28
29
|
|
29
30
|
#
|
30
|
-
#
|
31
|
+
# Returns true if the element is checked
|
31
32
|
# @return [Boolean]
|
32
33
|
#
|
33
34
|
|
@@ -37,7 +38,7 @@ module Watir
|
|
37
38
|
end
|
38
39
|
|
39
40
|
#
|
40
|
-
#
|
41
|
+
# Unsets checkbox.
|
41
42
|
#
|
42
43
|
# Same as +set(false)+
|
43
44
|
#
|
@@ -45,6 +46,7 @@ module Watir
|
|
45
46
|
def clear
|
46
47
|
set false
|
47
48
|
end
|
49
|
+
|
48
50
|
end # CheckBox
|
49
51
|
|
50
52
|
module Container
|
@@ -62,4 +64,4 @@ module Watir
|
|
62
64
|
CheckBox
|
63
65
|
end
|
64
66
|
end # CheckBoxCollection
|
65
|
-
end
|
67
|
+
end # Watir
|
@@ -14,14 +14,14 @@ module Watir
|
|
14
14
|
include EventuallyPresent
|
15
15
|
|
16
16
|
#
|
17
|
-
#
|
17
|
+
# temporarily add :id and :class_name manually since they're no longer specified in the HTML spec.
|
18
18
|
#
|
19
19
|
# @see http://html5.org/r/6605
|
20
|
-
# @see http://
|
20
|
+
# @see http://html5.org/r/7174
|
21
21
|
#
|
22
|
-
# TODO: use IDL from DOM core
|
22
|
+
# TODO: use IDL from DOM core - http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html
|
23
23
|
#
|
24
|
-
attributes :string => [:id]
|
24
|
+
attributes :string => [:id, :class_name]
|
25
25
|
|
26
26
|
def initialize(parent, selector)
|
27
27
|
@parent = parent
|
@@ -33,6 +33,12 @@ module Watir
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
#
|
37
|
+
# Returns true if element exists.
|
38
|
+
#
|
39
|
+
# @return [Boolean]
|
40
|
+
#
|
41
|
+
|
36
42
|
def exists?
|
37
43
|
assert_exists
|
38
44
|
true
|
@@ -49,6 +55,14 @@ module Watir
|
|
49
55
|
end
|
50
56
|
end
|
51
57
|
|
58
|
+
#
|
59
|
+
# Returns true if two elements are equal.
|
60
|
+
#
|
61
|
+
# @example
|
62
|
+
# browser.a(:id => "foo") == browser.a(:id => "foo")
|
63
|
+
# #=> true
|
64
|
+
#
|
65
|
+
|
52
66
|
def ==(other)
|
53
67
|
return false unless other.kind_of? self.class
|
54
68
|
|
@@ -61,31 +75,40 @@ module Watir
|
|
61
75
|
@element ? @element.hash : super
|
62
76
|
end
|
63
77
|
|
78
|
+
#
|
79
|
+
# Returns the text of the element.
|
80
|
+
#
|
81
|
+
# @return [String]
|
82
|
+
#
|
83
|
+
|
64
84
|
def text
|
65
85
|
assert_exists
|
66
86
|
@element.text
|
67
87
|
end
|
68
88
|
|
89
|
+
#
|
90
|
+
# Returns tag name of the element.
|
91
|
+
#
|
92
|
+
# @return [String]
|
93
|
+
#
|
94
|
+
|
69
95
|
def tag_name
|
70
96
|
assert_exists
|
71
97
|
@element.tag_name.downcase
|
72
98
|
end
|
73
99
|
|
74
100
|
#
|
75
|
-
# Clicks the element, optionally while pressing the given
|
101
|
+
# Clicks the element, optionally while pressing the given modifier keys.
|
76
102
|
# Note that support for holding a modifier key is currently experimental,
|
77
103
|
# and may not work at all.
|
78
104
|
#
|
79
105
|
# @example Click an element
|
80
|
-
#
|
81
106
|
# element.click
|
82
107
|
#
|
83
108
|
# @example Click an element with shift key pressed
|
84
|
-
#
|
85
109
|
# element.click(:shift)
|
86
110
|
#
|
87
111
|
# @example Click an element with several modifier keys pressed
|
88
|
-
#
|
89
112
|
# element.click(:shift, :control)
|
90
113
|
#
|
91
114
|
# @param [:shift, :alt, :control, :command, :meta] Modifier key(s) to press while clicking.
|
@@ -113,10 +136,11 @@ module Watir
|
|
113
136
|
|
114
137
|
#
|
115
138
|
# Double clicks the element.
|
116
|
-
#
|
117
139
|
# Note that browser support may vary.
|
118
140
|
#
|
119
|
-
|
141
|
+
# @example
|
142
|
+
# browser.a(:id => "foo").double_click
|
143
|
+
#
|
120
144
|
|
121
145
|
def double_click
|
122
146
|
assert_exists
|
@@ -128,9 +152,11 @@ module Watir
|
|
128
152
|
|
129
153
|
#
|
130
154
|
# Right clicks the element.
|
131
|
-
#
|
132
155
|
# Note that browser support may vary.
|
133
156
|
#
|
157
|
+
# @example
|
158
|
+
# browser.a(:id => "foo").right_click
|
159
|
+
#
|
134
160
|
|
135
161
|
def right_click
|
136
162
|
assert_exists
|
@@ -142,8 +168,10 @@ module Watir
|
|
142
168
|
|
143
169
|
#
|
144
170
|
# Moves the mouse to the middle of this element.
|
171
|
+
# Note that browser support may vary.
|
145
172
|
#
|
146
|
-
#
|
173
|
+
# @example
|
174
|
+
# browser.a(:id => "foo").hover
|
147
175
|
#
|
148
176
|
|
149
177
|
def hover
|
@@ -155,12 +183,11 @@ module Watir
|
|
155
183
|
|
156
184
|
#
|
157
185
|
# Drag and drop this element on to another element instance.
|
186
|
+
# Note that browser support may vary.
|
158
187
|
#
|
159
|
-
#
|
160
|
-
#
|
188
|
+
# @example
|
161
189
|
# a = browser.div(:id => "draggable")
|
162
190
|
# b = browser.div(:id => "droppable")
|
163
|
-
#
|
164
191
|
# a.drag_and_drop_on b
|
165
192
|
#
|
166
193
|
|
@@ -176,12 +203,13 @@ module Watir
|
|
176
203
|
|
177
204
|
#
|
178
205
|
# Drag and drop this element by the given offsets.
|
206
|
+
# Note that browser support may vary.
|
179
207
|
#
|
180
|
-
#
|
181
|
-
#
|
182
|
-
# a = browser.div(:id => "draggable")
|
208
|
+
# @example
|
209
|
+
# browser.div(:id => "draggable").drag_and_drop_by 100, -200
|
183
210
|
#
|
184
|
-
#
|
211
|
+
# @param [Fixnum] right_by
|
212
|
+
# @param [Fixnum] down_by
|
185
213
|
#
|
186
214
|
|
187
215
|
def drag_and_drop_by(right_by, down_by)
|
@@ -193,15 +221,33 @@ module Watir
|
|
193
221
|
perform
|
194
222
|
end
|
195
223
|
|
224
|
+
#
|
225
|
+
# Flashes (change background color far a moment) element.
|
226
|
+
#
|
227
|
+
# @example
|
228
|
+
# browser.div(:id => "draggable").flash
|
229
|
+
#
|
230
|
+
|
196
231
|
def flash
|
197
|
-
|
232
|
+
background_color = style("backgroundColor")
|
233
|
+
element_color = driver.execute_script("arguments[0].style.backgroundColor", @element)
|
198
234
|
|
199
235
|
10.times do |n|
|
200
|
-
color = (n % 2 == 0) ? "red" :
|
236
|
+
color = (n % 2 == 0) ? "red" : background_color
|
201
237
|
driver.execute_script("arguments[0].style.backgroundColor = '#{color}'", @element)
|
202
238
|
end
|
239
|
+
|
240
|
+
driver.execute_script("arguments[0].style.backgroundColor = arguments[1]", @element, element_color)
|
241
|
+
|
242
|
+
self
|
203
243
|
end
|
204
244
|
|
245
|
+
#
|
246
|
+
# Returns value of the element.
|
247
|
+
#
|
248
|
+
# @return [String]
|
249
|
+
#
|
250
|
+
|
205
251
|
def value
|
206
252
|
assert_exists
|
207
253
|
|
@@ -212,25 +258,56 @@ module Watir
|
|
212
258
|
end
|
213
259
|
end
|
214
260
|
|
261
|
+
#
|
262
|
+
# Returns given attribute value of element.
|
263
|
+
#
|
264
|
+
# @example
|
265
|
+
# browser.a(:id => "foo").attribute_value "href"
|
266
|
+
# #=> "http://watir.com"
|
267
|
+
#
|
268
|
+
# @param [String] attribute_name
|
269
|
+
# @return [String]
|
270
|
+
#
|
271
|
+
|
215
272
|
def attribute_value(attribute_name)
|
216
273
|
assert_exists
|
217
274
|
@element.attribute attribute_name
|
218
275
|
end
|
219
276
|
|
277
|
+
#
|
278
|
+
# Returns inner HTML code of element.
|
279
|
+
#
|
280
|
+
# @example
|
281
|
+
# browser.div(:id => "foo").html
|
282
|
+
# #=> "<a>Click</a>"
|
283
|
+
#
|
284
|
+
# @return [String]
|
285
|
+
#
|
286
|
+
|
220
287
|
def html
|
221
288
|
assert_exists
|
222
289
|
execute_atom(:getOuterHtml, @element).strip
|
223
290
|
end
|
224
291
|
|
292
|
+
#
|
293
|
+
# Sends sequence of keystrokes to element.
|
294
|
+
#
|
295
|
+
# @example
|
296
|
+
# browser.div(:id => "foo").send_keys "Watir", :return
|
297
|
+
#
|
298
|
+
# @param [String, Symbol] *args
|
299
|
+
#
|
300
|
+
|
225
301
|
def send_keys(*args)
|
226
302
|
assert_exists
|
227
303
|
@element.send_keys(*args)
|
228
304
|
end
|
229
305
|
|
230
306
|
#
|
231
|
-
#
|
307
|
+
# Focuses element.
|
308
|
+
# Note that Firefox queues focus events until the window actually has focus.
|
232
309
|
#
|
233
|
-
#
|
310
|
+
# @see http://code.google.com/p/selenium/issues/detail?id=157
|
234
311
|
#
|
235
312
|
|
236
313
|
def focus
|
@@ -238,11 +315,29 @@ module Watir
|
|
238
315
|
driver.execute_script "return arguments[0].focus()", @element
|
239
316
|
end
|
240
317
|
|
318
|
+
#
|
319
|
+
# Returns true if this element is focused.
|
320
|
+
#
|
321
|
+
# @return [Boolean]
|
322
|
+
#
|
323
|
+
|
241
324
|
def focused?
|
242
325
|
assert_exists
|
243
326
|
@element == driver.switch_to.active_element
|
244
327
|
end
|
245
328
|
|
329
|
+
#
|
330
|
+
# Simulates JavaScript events on element.
|
331
|
+
# Note that you may omit "on" from event name.
|
332
|
+
#
|
333
|
+
# @example
|
334
|
+
# browser.a(:id => "foo").fire_event :click
|
335
|
+
# browser.a(:id => "foo").fire_event "mousemove"
|
336
|
+
# browser.a(:id => "foo").fire_event "onmouseover"
|
337
|
+
#
|
338
|
+
# @param [String, Symbol] event_name
|
339
|
+
#
|
340
|
+
|
246
341
|
def fire_event(event_name)
|
247
342
|
assert_exists
|
248
343
|
event_name = event_name.to_s.sub(/^on/, '').downcase
|
@@ -250,6 +345,10 @@ module Watir
|
|
250
345
|
execute_atom :fireEvent, @element, event_name
|
251
346
|
end
|
252
347
|
|
348
|
+
#
|
349
|
+
# Returns parent element of current element.
|
350
|
+
#
|
351
|
+
|
253
352
|
def parent
|
254
353
|
assert_exists
|
255
354
|
|
@@ -278,7 +377,9 @@ module Watir
|
|
278
377
|
end
|
279
378
|
|
280
379
|
#
|
281
|
-
# Returns true if this element is visible on the page
|
380
|
+
# Returns true if this element is visible on the page.
|
381
|
+
#
|
382
|
+
# @return [Boolean]
|
282
383
|
#
|
283
384
|
|
284
385
|
def visible?
|
@@ -287,8 +388,9 @@ module Watir
|
|
287
388
|
end
|
288
389
|
|
289
390
|
#
|
290
|
-
# Returns true if the element exists and is visible on the page
|
391
|
+
# Returns true if the element exists and is visible on the page.
|
291
392
|
#
|
393
|
+
# @return [Boolean]
|
292
394
|
# @see Watir::Wait
|
293
395
|
#
|
294
396
|
|
@@ -300,6 +402,19 @@ module Watir
|
|
300
402
|
false
|
301
403
|
end
|
302
404
|
|
405
|
+
#
|
406
|
+
# Returns given style property of this element.
|
407
|
+
#
|
408
|
+
# @example
|
409
|
+
# browser.a(:id => "foo").style
|
410
|
+
# #=> "display: block"
|
411
|
+
# browser.a(:id => "foo").style "display"
|
412
|
+
# #=> "block"
|
413
|
+
#
|
414
|
+
# @param [String] property
|
415
|
+
# @return [String]
|
416
|
+
#
|
417
|
+
|
303
418
|
def style(property = nil)
|
304
419
|
if property
|
305
420
|
assert_exists
|
@@ -309,6 +424,10 @@ module Watir
|
|
309
424
|
end
|
310
425
|
end
|
311
426
|
|
427
|
+
#
|
428
|
+
# Runs checkers.
|
429
|
+
#
|
430
|
+
|
312
431
|
def run_checkers
|
313
432
|
@parent.run_checkers
|
314
433
|
end
|
@@ -316,9 +435,9 @@ module Watir
|
|
316
435
|
#
|
317
436
|
# Cast this Element instance to a more specific subtype.
|
318
437
|
#
|
319
|
-
#
|
320
|
-
#
|
321
|
-
#
|
438
|
+
# @example
|
439
|
+
# browser.element(:xpath => "//input[@type='submit']").to_subtype
|
440
|
+
# #=> #<Watir::Button>
|
322
441
|
#
|
323
442
|
|
324
443
|
def to_subtype
|
@@ -347,6 +466,12 @@ module Watir
|
|
347
466
|
klass.new(@parent, :element => elem)
|
348
467
|
end
|
349
468
|
|
469
|
+
#
|
470
|
+
# Returns browser.
|
471
|
+
#
|
472
|
+
# @return [Watir::Browser]
|
473
|
+
#
|
474
|
+
|
350
475
|
def browser
|
351
476
|
@parent.browser
|
352
477
|
end
|