operawatir 0.4.1.pre5-jruby → 0.4.1.pre6-jruby
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +1 -0
- data/CHANGES +170 -3
- data/README.md +30 -27
- data/VERSION +1 -1
- data/bin/desktopwatir +19 -16
- data/bin/operawatir +4 -4
- data/lib/operadriver/client-combined-nodeps.jar +0 -0
- data/lib/operadriver/webdriver-opera.jar +0 -0
- data/lib/operawatir/browser.rb +1 -2
- data/lib/operawatir/collection.rb +1 -1
- data/lib/operawatir/compat/collection.rb +13 -0
- data/lib/operawatir/compat/element.rb +57 -15
- data/lib/operawatir/compat/window.rb +41 -0
- data/lib/operawatir/desktop_browser.rb +26 -9
- data/lib/operawatir/desktop_container.rb +82 -29
- data/lib/operawatir/element.rb +48 -24
- data/lib/operawatir/keys.rb +18 -25
- data/lib/operawatir/preferences.rb +223 -6
- data/lib/operawatir/quickwidgets/quick_button.rb +8 -2
- data/lib/operawatir/quickwidgets/quick_checkbox.rb +4 -4
- data/lib/operawatir/quickwidgets/quick_editfield.rb +1 -1
- data/lib/operawatir/quickwidgets/quick_find.rb +11 -0
- data/lib/operawatir/quickwidgets/quick_griditem.rb +11 -0
- data/lib/operawatir/quickwidgets/quick_gridlayout.rb +11 -0
- data/lib/operawatir/quickwidgets/quick_searchfield.rb +5 -1
- data/lib/operawatir/quickwidgets/quick_tab.rb +0 -1
- data/lib/operawatir/quickwidgets/quick_treeitem.rb +22 -1
- data/lib/operawatir/quickwidgets/quick_widget.rb +61 -22
- data/lib/operawatir/quickwidgets/quick_window.rb +26 -0
- data/lib/operawatir/quickwidgets.rb +2 -1
- data/lib/operawatir/window.rb +36 -25
- data/lib/operawatir.rb +1 -1
- data/operawatir.gemspec +38 -5
- data/spec/operawatir/core/element_spec.rb +5 -0
- data/spec/operawatir/core/window_spec.rb +42 -0
- data/spec/operawatir/desktop/desktopbrowser_spec.rb +16 -0
- data/spec/operawatir/desktop/quickaddressfield_spec.rb +15 -3
- data/spec/operawatir/desktop/quickbutton_spec.rb +234 -20
- data/spec/operawatir/desktop/quickcheckbox_spec.rb +36 -0
- data/spec/operawatir/desktop/quickdialogtab_spec.rb +30 -0
- data/spec/operawatir/desktop/quickdropdown_spec.rb +39 -0
- data/spec/operawatir/desktop/quickeditfield_spec.rb +51 -0
- data/spec/operawatir/desktop/quickfind_spec.rb +30 -0
- data/spec/operawatir/desktop/quickgriditem_spec.rb +16 -0
- data/spec/operawatir/desktop/quickgridlayout_spec.rb +15 -0
- data/spec/operawatir/desktop/quicklabel_spec.rb +28 -0
- data/spec/operawatir/desktop/quickradiobutton_spec.rb +24 -0
- data/spec/operawatir/desktop/quicksearchfield_spec.rb +26 -0
- data/spec/operawatir/desktop/quicktab_spec.rb +86 -0
- data/spec/operawatir/desktop/quickthumbnail_spec.rb +37 -0
- data/spec/operawatir/desktop/quicktreeitem_spec.rb +135 -0
- data/spec/operawatir/desktop/quicktreeview_spec.rb +30 -0
- data/spec/operawatir/desktop/quickwidget_spec.rb +52 -11
- data/spec/operawatir/desktop/quickwindow_spec.rb +11 -0
- data/spec/operawatir/desktop/shared/shared.rb +100 -10
- data/spec/operawatir/fixtures/browsers.svg +367 -0
- data/spec/operawatir/fixtures/frames.html +13 -0
- data/spec/watir2/select_list_spec.rb +84 -71
- metadata +37 -4
- data/lib/operadriver/selenium-common.jar +0 -0
data/lib/operawatir/browser.rb
CHANGED
@@ -205,8 +205,7 @@ private
|
|
205
205
|
# FIXME: OPERA_ARGS will be moved to OperaDriver soon.
|
206
206
|
s.setOperaBinaryArguments ENV['OPERA_ARGS'].to_s + ' ' + self.settings[:args].to_s # if self.settings[:args]
|
207
207
|
s.setNoQuit true if self.settings[:no_quit]
|
208
|
-
s.setUseOperaIdle
|
209
|
-
s.setUseOperaIdle true if ENV['OPERA_IDLE'].truthy?
|
208
|
+
s.setUseOperaIdle true if self.settings[:opera_idle] or ENV['OPERA_IDLE'].truthy?
|
210
209
|
}
|
211
210
|
end
|
212
211
|
|
@@ -51,7 +51,7 @@ class OperaWatir::Collection
|
|
51
51
|
# Public interface to elms, used in Selector
|
52
52
|
def raw_elements
|
53
53
|
_elms.tap do |e|
|
54
|
-
raise(OperaWatir::Exceptions::UnknownObjectException) if e.empty?
|
54
|
+
#raise(OperaWatir::Exceptions::UnknownObjectException) if e.empty?
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -79,6 +79,10 @@ class OperaWatir::Collection
|
|
79
79
|
define_method(name) {method_missing(name)}
|
80
80
|
end
|
81
81
|
|
82
|
+
=begin
|
83
|
+
This only applies to Watir 1. #to_s is in Watir 2 treated the same
|
84
|
+
way as Object#to_s (which will give you a Collection instance).
|
85
|
+
|
82
86
|
# Fetches the string representation of this collection.
|
83
87
|
#
|
84
88
|
# @return [String] the string representation of this collection
|
@@ -95,6 +99,15 @@ class OperaWatir::Collection
|
|
95
99
|
" text: #{el.text}"
|
96
100
|
end.join("\n")
|
97
101
|
end
|
102
|
+
=end
|
103
|
+
|
104
|
+
def select(option_text)
|
105
|
+
option(:text => option_text).node.setSelected
|
106
|
+
end
|
107
|
+
|
108
|
+
def selected?(option_text)
|
109
|
+
option(:text => option_text).node.isSelected
|
110
|
+
end
|
98
111
|
|
99
112
|
private
|
100
113
|
|
@@ -1,18 +1,24 @@
|
|
1
1
|
class OperaWatir::Element
|
2
2
|
include Deprecated
|
3
3
|
|
4
|
+
#
|
4
5
|
# Gets the attribute called name.
|
5
6
|
#
|
6
7
|
# @param [String, Symbol] name The name of the attribute to get.
|
7
8
|
# @return [String] The value of the attribute.
|
9
|
+
#
|
10
|
+
|
8
11
|
def attr(name)
|
9
12
|
node.getAttribute(name.to_s) || ''
|
10
13
|
end
|
11
14
|
|
15
|
+
#
|
12
16
|
# Check the existence of the attribute on the element.
|
13
17
|
#
|
14
18
|
# @return [Boolean] True if the attribute exists on the element,
|
15
19
|
# false otherwise.
|
20
|
+
#
|
21
|
+
|
16
22
|
def attr?(name)
|
17
23
|
!node.getAttribute(name.to_s).nil?
|
18
24
|
end
|
@@ -25,9 +31,12 @@ class OperaWatir::Element
|
|
25
31
|
end
|
26
32
|
end
|
27
33
|
|
34
|
+
#
|
28
35
|
# Gets the text content of the element.
|
29
36
|
#
|
30
37
|
# @return [String] The text content.
|
38
|
+
#
|
39
|
+
|
31
40
|
def text
|
32
41
|
if node.tag_name =~ /input|textarea|select/i
|
33
42
|
node.value.strip
|
@@ -36,17 +45,18 @@ class OperaWatir::Element
|
|
36
45
|
end
|
37
46
|
end
|
38
47
|
|
39
|
-
|
40
|
-
|
48
|
+
#
|
41
49
|
# Checks whether the text content of the element contains the given
|
42
50
|
# string In the compatibility layer as the preferred way of doing
|
43
51
|
# this is.
|
44
52
|
#
|
45
53
|
# elm.text.should include('My string')
|
46
54
|
#
|
47
|
-
# @param [String]
|
48
|
-
# @param [Boolean]
|
49
|
-
#
|
55
|
+
# @param [String] String to search for.
|
56
|
+
# @param [Boolean] True if the element's text contains str, false
|
57
|
+
# otherwise.
|
58
|
+
#
|
59
|
+
|
50
60
|
def verify_contains(str)
|
51
61
|
text.include?(str)
|
52
62
|
end
|
@@ -55,11 +65,15 @@ class OperaWatir::Element
|
|
55
65
|
|
56
66
|
alias_method :caption, :text
|
57
67
|
|
68
|
+
#
|
58
69
|
# Clicks on the top left of the element, or the given x, y offset.
|
70
|
+
# Asserts whether element is enabled first.
|
59
71
|
#
|
60
72
|
# @param [optional, Fixnum] x The offset from the left of the
|
61
73
|
# element
|
62
74
|
# @param [optional, Fixnum] y The offset from the top of the element
|
75
|
+
#
|
76
|
+
|
63
77
|
def click(x=0, y=0)
|
64
78
|
assert_enabled!
|
65
79
|
node.click(x.to_i, y.to_i)
|
@@ -67,27 +81,40 @@ class OperaWatir::Element
|
|
67
81
|
|
68
82
|
alias_method :click_no_wait, :click_async
|
69
83
|
|
84
|
+
#
|
70
85
|
# Focuses the element
|
86
|
+
#
|
87
|
+
|
71
88
|
def focus
|
72
89
|
fire_event :focus
|
73
90
|
end
|
74
91
|
|
92
|
+
#
|
75
93
|
# Submits a form, or the form the elment is contained in.
|
94
|
+
#
|
95
|
+
|
76
96
|
def submit
|
77
97
|
assert_exists
|
78
98
|
node.submit
|
79
99
|
end
|
80
100
|
|
101
|
+
#
|
81
102
|
# Clears a text input or textarea of any text.
|
103
|
+
#
|
104
|
+
|
82
105
|
def clear
|
83
106
|
assert_enabled!
|
84
|
-
|
107
|
+
click
|
108
|
+
node.clear
|
85
109
|
end
|
86
110
|
|
111
|
+
#
|
87
112
|
# If passed a value it will type text into the element, otherwise it
|
88
113
|
# will check a radio button or checkbox.
|
89
114
|
#
|
90
|
-
# @param [
|
115
|
+
# @param [String] value (Optional.) Text to type.
|
116
|
+
#
|
117
|
+
|
91
118
|
def set(value=nil)
|
92
119
|
if value
|
93
120
|
self.text = value
|
@@ -97,31 +124,40 @@ class OperaWatir::Element
|
|
97
124
|
end
|
98
125
|
end
|
99
126
|
|
127
|
+
#
|
100
128
|
# Gets the href of an `<a>` element, or the url attribute of any
|
101
129
|
# other element.
|
102
130
|
#
|
103
|
-
# @return [String]
|
131
|
+
# @return [String] An href or the @url attribute.
|
132
|
+
#
|
133
|
+
|
104
134
|
def url
|
105
135
|
attr(tag_name == 'A' ? :href : :url)
|
106
136
|
end
|
107
137
|
|
138
|
+
#
|
108
139
|
# Gets the selected `<option>` elements in a `<select>` element.
|
109
140
|
#
|
110
|
-
# @return [
|
111
|
-
#
|
141
|
+
# @return [Collection] a collection of the selected
|
142
|
+
# `<option>`s
|
143
|
+
#
|
144
|
+
|
112
145
|
def selected_options
|
113
146
|
options(:selected?, true)
|
114
147
|
end
|
115
148
|
|
149
|
+
#
|
116
150
|
# On checkboxes, radio buttons, and option elements returns whether
|
117
151
|
# the element is checked/selected. On a select element, when passed
|
118
152
|
# an value it checks whether the selected option contains the given
|
119
153
|
# text.
|
120
154
|
#
|
121
|
-
# @param
|
122
|
-
#
|
123
|
-
# @return [Boolean]
|
124
|
-
#
|
155
|
+
# @param [String] value (Optional.) Text the selected option should
|
156
|
+
# contain.
|
157
|
+
# @return [Boolean] True if the element is selected/selected
|
158
|
+
# option contains value, false otherwise.
|
159
|
+
#
|
160
|
+
|
125
161
|
def selected?(value=nil)
|
126
162
|
if option.nil?
|
127
163
|
selected_options.text.include?(value)
|
@@ -132,10 +168,13 @@ class OperaWatir::Element
|
|
132
168
|
|
133
169
|
alias_method :set?, :checked?
|
134
170
|
|
171
|
+
#
|
135
172
|
# For `<select>` elements returns either 'select-one' for
|
136
173
|
# `<select>`s where only a single `<option>` can be selected, or
|
137
174
|
# 'select-multiple' otherwise. For non-`<select>` elements returns
|
138
175
|
# the `type` attribute.
|
176
|
+
#
|
177
|
+
|
139
178
|
def type
|
140
179
|
if tag_name == 'SELECT'
|
141
180
|
attr(:multiple) == 'multiple' ? 'select-multiple' : 'select-one'
|
@@ -144,9 +183,12 @@ class OperaWatir::Element
|
|
144
183
|
end
|
145
184
|
end
|
146
185
|
|
186
|
+
#
|
147
187
|
# Gets the colspan attribute as an integer.
|
148
188
|
#
|
149
|
-
# @return [Fixnum]
|
189
|
+
# @return [Fixnum] The colspan.
|
190
|
+
#
|
191
|
+
|
150
192
|
def colspan
|
151
193
|
attr(:colspan).to_i
|
152
194
|
end
|
@@ -3,33 +3,74 @@ module OperaWatir
|
|
3
3
|
module Window
|
4
4
|
include Deprecated
|
5
5
|
|
6
|
+
#
|
6
7
|
# Checks whether the body has the given text in it.
|
7
8
|
#
|
8
9
|
# @param [String] str Text to search for.
|
9
10
|
# @return [Boolean] true if the body contains the given text,
|
10
11
|
# false otherwise
|
12
|
+
#
|
13
|
+
|
11
14
|
def contains_text(str)
|
12
15
|
text.index(str)
|
13
16
|
end
|
14
17
|
|
18
|
+
|
19
|
+
#
|
15
20
|
# Find elements that match the given XPath.
|
16
21
|
#
|
17
22
|
# @param [String] value The XPath expression to search for.
|
18
23
|
# @return [OperaWatir::Collection] A collection of matching
|
19
24
|
# elements.
|
25
|
+
#
|
26
|
+
|
20
27
|
def elements_by_xpath(value)
|
21
28
|
find_by_xpath(value)
|
22
29
|
end
|
23
30
|
|
24
31
|
alias_method :element_by_xpath, :elements_by_xpath
|
25
32
|
|
33
|
+
|
34
|
+
#
|
26
35
|
# Opera specific
|
36
|
+
#
|
37
|
+
|
27
38
|
def get_hash
|
28
39
|
visual_hash
|
29
40
|
end
|
30
41
|
|
31
42
|
deprecated :get_hash, 'browser.visual_hash'
|
32
43
|
|
44
|
+
|
45
|
+
#
|
46
|
+
# TODO This is a relic from the old OperaWatir implementation,
|
47
|
+
# tests should be updated.
|
48
|
+
#
|
49
|
+
|
50
|
+
def frame(selector, argument)
|
51
|
+
case selector
|
52
|
+
when :name
|
53
|
+
driver.switch_to.frame(argument)
|
54
|
+
when :index
|
55
|
+
driver.switch_to.frame(argument.to_i - 1) # index starts from 1 in Watir
|
56
|
+
else
|
57
|
+
raise OperaWatir::Exceptions::NotImplementedException,
|
58
|
+
"We do not support the `#{selector}' selector yet"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
def switch_to_default
|
64
|
+
driver.switch_to.default_content
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
def show_frames
|
69
|
+
frames = driver.list_frames
|
70
|
+
puts "There are #{frames.length.to_s} frames"
|
71
|
+
frames.each_with_index { |frame, i| puts "frame index: #{(i.to_i + 1).to_s} name: #{frame.to_s}" }
|
72
|
+
end
|
73
|
+
|
33
74
|
end
|
34
75
|
end
|
35
76
|
end
|
@@ -26,7 +26,7 @@ module OperaWatir
|
|
26
26
|
active_window.url = url
|
27
27
|
sleep(1)
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
######################################################################
|
31
31
|
# Quits Opera
|
32
32
|
#
|
@@ -296,8 +296,11 @@ module OperaWatir
|
|
296
296
|
end.to_a
|
297
297
|
end
|
298
298
|
|
299
|
-
|
300
|
-
#
|
299
|
+
####################################################
|
300
|
+
# Retrieves an array of all tabs (Document Windows)
|
301
|
+
#
|
302
|
+
# @return [Array] Array of windows
|
303
|
+
#
|
301
304
|
def open_pages
|
302
305
|
quick_windows.select { |win| win.name == "Document Window" }
|
303
306
|
end
|
@@ -413,6 +416,24 @@ module OperaWatir
|
|
413
416
|
def cache_preferences_path
|
414
417
|
driver.getCachePreferencesPath()
|
415
418
|
end
|
419
|
+
|
420
|
+
######################################################################
|
421
|
+
# Returns the language string corresponding to the string_id provided
|
422
|
+
#
|
423
|
+
# @param string_id the string_id to convert to the corresponding
|
424
|
+
# language string
|
425
|
+
# @param skip_ampersand if false, then leave string as is, else
|
426
|
+
# (default) remove any ampersand in string
|
427
|
+
#
|
428
|
+
#
|
429
|
+
# @example
|
430
|
+
# browser.string("D_NEW_PREFERENCES_GENERAL")
|
431
|
+
#
|
432
|
+
# @return [String] the language string corresponding to the string_id
|
433
|
+
#
|
434
|
+
def string(string_id, skip_ampersand = true)
|
435
|
+
string = driver.getString(string_id, skip_ampersand)
|
436
|
+
end
|
416
437
|
|
417
438
|
######################################################################
|
418
439
|
# Returns true if the test is running on Mac
|
@@ -543,8 +564,6 @@ module OperaWatir
|
|
543
564
|
# Set preference pref in prefs section prefs_section to value
|
544
565
|
# specified.
|
545
566
|
#
|
546
|
-
# TODO: This needs to be moved to a separate preference section.
|
547
|
-
#
|
548
567
|
# @param [String] prefs_section The prefs section the pref belongs to
|
549
568
|
# @param [String] pref The preference to set
|
550
569
|
# @param [String] value The value to set the preference to
|
@@ -554,8 +573,6 @@ module OperaWatir
|
|
554
573
|
|
555
574
|
# Get value of preference pref in prefs section prefs_section.
|
556
575
|
#
|
557
|
-
# TODO: This needs to be moved to a separate preference section.
|
558
|
-
#
|
559
576
|
# @param [String] prefs_section The prefs section the pref belongs to
|
560
577
|
# @param [String] pref The preference to get
|
561
578
|
#
|
@@ -567,8 +584,6 @@ module OperaWatir
|
|
567
584
|
# Get default value of preference pref in prefs section
|
568
585
|
# prefs_section.
|
569
586
|
#
|
570
|
-
# TODO: This needs to be moved to a separate preference section.
|
571
|
-
#
|
572
587
|
# @param [String] prefs_section The prefs section the pref belongs to
|
573
588
|
# @param [String] pref The preference to get
|
574
589
|
#
|
@@ -587,12 +602,14 @@ private
|
|
587
602
|
def self.opera_driver_settings
|
588
603
|
@opera_driver_settings ||= OperaDriverSettings.new.tap {|s|
|
589
604
|
s.setRunOperaLauncherFromOperaDriver true
|
605
|
+
s.setAutostart false if self.settings[:manual]
|
590
606
|
s.setOperaLauncherBinary self.settings[:launcher]
|
591
607
|
s.setOperaBinaryLocation self.settings[:path]
|
592
608
|
s.setOperaBinaryArguments self.settings[:args].to_s + ' -autotestmode'
|
593
609
|
s.setNoQuit self.settings[:no_quit]
|
594
610
|
s.setNoRestart self.settings[:no_restart]
|
595
611
|
s.setGuessOperaPath false
|
612
|
+
s.setUseOperaIdle false if !self.settings[:opera_idle]
|
596
613
|
}
|
597
614
|
end
|
598
615
|
|
@@ -14,7 +14,12 @@ module OperaWatir
|
|
14
14
|
# @return [Object] button object if found, otherwise nil
|
15
15
|
#
|
16
16
|
def quick_button(how, what)
|
17
|
-
|
17
|
+
if how == :pos
|
18
|
+
if what.is_a? Fixnum
|
19
|
+
what = [0, what]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
QuickButton.new(self, how, what, parent_widget, window_id, :button)
|
18
23
|
end
|
19
24
|
|
20
25
|
######################################################################
|
@@ -36,7 +41,7 @@ module OperaWatir
|
|
36
41
|
what = [0, what]
|
37
42
|
end
|
38
43
|
end
|
39
|
-
QuickTab.new(self, how, what, parent_widget, window_id)
|
44
|
+
QuickTab.new(self, how, what, parent_widget, window_id, :tabbutton)
|
40
45
|
end
|
41
46
|
|
42
47
|
######################################################################
|
@@ -51,7 +56,7 @@ module OperaWatir
|
|
51
56
|
# @return [Object] checkbox object if found, otherwise nil
|
52
57
|
#
|
53
58
|
def quick_checkbox(how, what)
|
54
|
-
QuickCheckbox.new(self, how, what, parent_widget, window_id)
|
59
|
+
QuickCheckbox.new(self, how, what, parent_widget, window_id, :checkbox)
|
55
60
|
end
|
56
61
|
|
57
62
|
######################################################################
|
@@ -66,7 +71,7 @@ module OperaWatir
|
|
66
71
|
# @return [Object] dialog tab object if found, otherwise nil
|
67
72
|
#
|
68
73
|
def quick_dialogtab(how, what)
|
69
|
-
QuickDialogTab.new(self, how, what, parent_widget, window_id)
|
74
|
+
QuickDialogTab.new(self, how, what, parent_widget, window_id, :dialogtab)
|
70
75
|
end
|
71
76
|
|
72
77
|
######################################################################
|
@@ -81,10 +86,24 @@ module OperaWatir
|
|
81
86
|
# @return [Object] drop down object if found, otherwise nil
|
82
87
|
#
|
83
88
|
def quick_dropdown(how, what)
|
84
|
-
QuickDropdown.new(self, how, what, parent_widget, window_id)
|
89
|
+
QuickDropdown.new(self, how, what, parent_widget, window_id, :dropdown)
|
85
90
|
end
|
86
91
|
|
87
|
-
|
92
|
+
######################################################################
|
93
|
+
# Method for accessing a quickfind element
|
94
|
+
#
|
95
|
+
# @example
|
96
|
+
# browser.quick_find(:name, "Filetypes_quickfind")
|
97
|
+
#
|
98
|
+
# @param [String] how Method to find the element. :name, :string_id or :text
|
99
|
+
# @param [String] what Search text to find the element with.
|
100
|
+
#
|
101
|
+
# @return [Object] quickfind object if found, otherwise nil
|
102
|
+
#
|
103
|
+
def quick_find(how, what)
|
104
|
+
QuickFind.new(self, how, what, parent_widget, window_id, :quickfind)
|
105
|
+
end
|
106
|
+
|
88
107
|
######################################################################
|
89
108
|
# Method for accessing an edit or multiedit element
|
90
109
|
#
|
@@ -97,7 +116,7 @@ module OperaWatir
|
|
97
116
|
# @return [Object] edit field object if found, otherwise nil
|
98
117
|
#
|
99
118
|
def quick_editfield(how, what)
|
100
|
-
QuickEditField.new(self, how, what, parent_widget, window_id)
|
119
|
+
QuickEditField.new(self, how, what, parent_widget, window_id, :editfield)
|
101
120
|
end
|
102
121
|
|
103
122
|
######################################################################
|
@@ -112,7 +131,7 @@ module OperaWatir
|
|
112
131
|
# @return [Object] label object if found, otherwise nil
|
113
132
|
#
|
114
133
|
def quick_label(how, what)
|
115
|
-
QuickLabel.new(self, how, what, parent_widget, window_id)
|
134
|
+
QuickLabel.new(self, how, what, parent_widget, window_id, :label)
|
116
135
|
end
|
117
136
|
|
118
137
|
######################################################################
|
@@ -127,7 +146,7 @@ module OperaWatir
|
|
127
146
|
# @return [Object] radio button object if found, otherwise nil
|
128
147
|
#
|
129
148
|
def quick_radiobutton(how, what)
|
130
|
-
QuickRadioButton.new(self, how, what, parent_widget, window_id)
|
149
|
+
QuickRadioButton.new(self, how, what, parent_widget, window_id, :radiobutton)
|
131
150
|
end
|
132
151
|
|
133
152
|
######################################################################
|
@@ -142,7 +161,7 @@ module OperaWatir
|
|
142
161
|
# @return [Object] treeview object if found, otherwise nil
|
143
162
|
#
|
144
163
|
def quick_treeview(how, what)
|
145
|
-
QuickTreeView.new(self, how, what, parent_widget, window_id)
|
164
|
+
QuickTreeView.new(self, how, what, parent_widget, window_id, :treeview)
|
146
165
|
end
|
147
166
|
|
148
167
|
######################################################################
|
@@ -157,7 +176,7 @@ module OperaWatir
|
|
157
176
|
# @return [Object] addressfield object if found, otherwise nil
|
158
177
|
#
|
159
178
|
def quick_addressfield(how, what)
|
160
|
-
QuickAddressField.new(self, how, what, parent_widget, window_id)
|
179
|
+
QuickAddressField.new(self, how, what, parent_widget, window_id, :addressfield)
|
161
180
|
end
|
162
181
|
|
163
182
|
######################################################################
|
@@ -172,7 +191,7 @@ module OperaWatir
|
|
172
191
|
# @return [Object] searchfield object if found, otherwise nil
|
173
192
|
#
|
174
193
|
def quick_searchfield(how, what)
|
175
|
-
QuickSearchField.new(self, how, what, parent_widget, window_id)
|
194
|
+
QuickSearchField.new(self, how, what, parent_widget, window_id, :search)
|
176
195
|
end
|
177
196
|
|
178
197
|
######################################################################
|
@@ -187,7 +206,7 @@ module OperaWatir
|
|
187
206
|
# @return [Object] toolbar object if found, otherwise nil
|
188
207
|
#
|
189
208
|
def quick_toolbar(how, what)
|
190
|
-
QuickToolbar.new(self, how, what, parent_widget, window_id)
|
209
|
+
QuickToolbar.new(self, how, what, parent_widget, window_id, :toolbar)
|
191
210
|
end
|
192
211
|
|
193
212
|
######################################################################
|
@@ -203,29 +222,63 @@ module OperaWatir
|
|
203
222
|
# @return [Object] treeitem object if found, otherwise nil
|
204
223
|
#
|
205
224
|
def quick_treeitem(how, what)
|
206
|
-
QuickTreeItem.new(self, how, what, parent_widget, window_id)
|
225
|
+
QuickTreeItem.new(self, how, what, parent_widget, window_id, :treeitem)
|
207
226
|
end
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
227
|
+
|
228
|
+
######################################################################
|
229
|
+
# Method for accessing a grid item in a gridlayout
|
230
|
+
#
|
231
|
+
# @example (The label dialog for mail labels)
|
232
|
+
# browser.quick_gridlayout(:name, "RulesGrid").quick_griditem(:name, "GridItem0").quick_editfield(:name, "Match")
|
233
|
+
#
|
234
|
+
# @param [String] how Method to find the element. :name, :string_id or :text
|
235
|
+
# @param [String] what Search text to find the element with. Text or position
|
236
|
+
# of treeitem. Position is specified as [row, column]
|
237
|
+
#
|
238
|
+
# @return [Object] griditem object if found, otherwise nil
|
239
|
+
#
|
240
|
+
def quick_griditem(how, what)
|
241
|
+
QuickGridItem.new(self, how, what, parent_widget, window_id, :griditem)
|
242
|
+
end
|
243
|
+
|
244
|
+
######################################################################
|
245
|
+
# Method for accessing a grid layout
|
246
|
+
# (A grid layout would normally be used to specify the path to a child item in one of its cells.
|
247
|
+
#
|
248
|
+
# @example (The label dialog for mail labels)
|
249
|
+
# browser.quick_gridlayout(:name, "RulesGrid").quick_griditem(:name, "GridItem0").quick_editfield(:name, "Match")
|
250
|
+
#
|
251
|
+
# @param [String] how Method to find the element. :name, :string_id or :text
|
252
|
+
# @param [String] what Search text to find the element with. Text or position
|
253
|
+
# of treeitem. Position is specified as [row, column]
|
254
|
+
#
|
255
|
+
# @return [Object] gridlayout object if found, otherwise nil
|
256
|
+
#
|
257
|
+
def quick_gridlayout(how, what)
|
258
|
+
QuickGridLayout.new(self, how, what, parent_widget, window_id, :gridlayout)
|
259
|
+
end
|
260
|
+
|
261
|
+
|
262
|
+
######################################################################
|
263
|
+
# Method for accessing a thumbnail (speeddial, thumbnail when hovering tab groups)
|
264
|
+
#
|
265
|
+
# @example
|
266
|
+
# browser.quick_thumbnail(:name, "Thumbnail 1")
|
267
|
+
# browser.quick_thumbnail(:name, "Speed Dial 2")
|
268
|
+
#
|
269
|
+
# @param [String] how Method to find the element. :name, :string_id or :text
|
270
|
+
# @param [String] what Search text to find the element with. Text or position
|
271
|
+
# of treeitem. Position is specified as [row, column]
|
272
|
+
#
|
273
|
+
# @return [Object] thumbnail object if found, otherwise nil
|
274
|
+
#
|
222
275
|
def quick_thumbnail(how, what)
|
223
276
|
if how == :pos
|
224
277
|
if what.is_a? Fixnum
|
225
278
|
what = [0, what]
|
226
279
|
end
|
227
280
|
end
|
228
|
-
QuickThumbnail.new(self, how, what, parent_widget, window_id)
|
281
|
+
QuickThumbnail.new(self, how, what, parent_widget, window_id, :thumbnail)
|
229
282
|
end
|
230
283
|
|
231
284
|
######################################################################
|