scoutui 2.0.2 → 2.0.3.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8875e31f650ade4f1ffcdb2dec0ef8bc7e6d7580
4
- data.tar.gz: 0008e2ed3e998cd9917a0a3ec7ea630c8d8c0e99
3
+ metadata.gz: 9a056f11ea1fd2e80f741a9994e95e21cd95d7d6
4
+ data.tar.gz: 2a0f010411e81363f9b766b77758473fe546639e
5
5
  SHA512:
6
- metadata.gz: 654b8aaed5a1e5e5f5f9b0336826b8a90f30edc244638a7bf6fc1a9d34caa380c04565809de7922c807301b845f982803937000b4d5eb5d39fc9b8c24e1a3eb2
7
- data.tar.gz: bb24997165d3fd3967413046a87cc76c7b5b6264172f1bee0e8d216dde6c0a443807cf54639991c888a037f272448328ca0705da61200f6867ccb6d40fb13dd7
6
+ metadata.gz: b1cc1fb08afc2003af11489e8ffae2453049769603e1d540492f063572aeccf7058a575db2e9183678b764efc961a254dab64d49af7495e9ce767e12d2fc3810
7
+ data.tar.gz: edd5aada155f93a764849aad2d7e25e6be61a4a0416018277745d7e5a6b1b9f6eca7f18c0b7a6dc3730b93082efb8dab9234e2be22eac04f2cc57ffc9a89d380
@@ -91,6 +91,125 @@ module Scoutui::Base
91
91
  rc
92
92
  end
93
93
 
94
+
95
+ # e : Hash : Command stanza from YML
96
+ def self.swtich_frame(drv, e)
97
+ if e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('frames')
98
+ puts __FILE__ + (__LINE__).to_s + " frames => #{e['page']['frames']}";
99
+
100
+ frames=e['page']['frames']
101
+ frame_list=frames.split(/(frame\(.*\))\.(?=[\w])/)
102
+ frame_list.each do |_f|
103
+
104
+
105
+ if !_f.empty?
106
+ _id = _f.match(/frame\((.*)\)/)[1]
107
+
108
+ puts __FILE__ + (__LINE__).to_s + " switch_to.frame #{_id}"
109
+
110
+ drv.switch_to.frame(_id.to_s.strip)
111
+ end
112
+
113
+ end
114
+
115
+ end
116
+ end
117
+
118
+ def self.findElement(drv, _locator, _frames, _timeout=nil)
119
+
120
+ if Scoutui::Commands::Utils.instance.isFrameSearch?
121
+ hits = Scoutui::Base::QBrowser.frame_getObject(drv, _locator, _timeout)
122
+
123
+ puts __FILE__ + (__LINE__).to_s + " hits => #{hits.class} : #{hits}"
124
+ if hits.is_a?(Array) && !hits.empty?
125
+ obj=hits[0]
126
+ elsif hits.is_a?(Selenium::WebDriver::Element)
127
+ obj=hits
128
+ end
129
+
130
+ else
131
+ obj = Scoutui::Base::QBrowser.getObject(@drv, _locator, _timeout)
132
+ end
133
+
134
+
135
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " findElement(#{_frames}, #{_locator}) => #{obj}"
136
+ obj
137
+
138
+ end
139
+
140
+ def self.frame_getObject(drv, _locator, _timeout=nil)
141
+
142
+ puts __FILE__ + (__LINE__).to_s + " frame_getObject : #{_locator}"
143
+
144
+ rc = Array.new()
145
+
146
+ frames = drv.find_elements(:xpath, '//iframe')
147
+
148
+ if frames.size == 0
149
+ frames = drv.find_elements(:xpath, '//frame')
150
+ end
151
+
152
+ if frames.size > 0
153
+ rc.concat frames
154
+ end
155
+
156
+
157
+ # _obj = drv.find_elements(:xpath, _locator)
158
+ _obj = getObject(drv, _locator, _timeout)
159
+
160
+ puts __FILE__ + (__LINE__).to_s + " frames => #{frames} : #{_obj}"
161
+
162
+ if _obj.nil? || (_obj.is_a?(Array) && _obj.empty?)
163
+
164
+ for i in 0 .. (frames.size - 1)
165
+
166
+ begin
167
+
168
+ _tag = frames[i].attribute('name')
169
+
170
+ if _tag.empty?
171
+ _tag = frames[i].attribute('id')
172
+ end
173
+
174
+ if _tag.empty?
175
+ _tag = i
176
+ end
177
+
178
+
179
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Process frame[#{i}] : #{_tag}"
180
+
181
+ drv.switch_to.frame _tag
182
+
183
+ _hits = frame_getObject(drv, _locator, 3)
184
+ rescue => ex
185
+ Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{$!}"
186
+ Scoutui::Logger::LogMgr.instance.debug "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
187
+ end
188
+
189
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " hits => #{_hits}"
190
+
191
+ if _hits.is_a?(Array) && _hits.size > 0
192
+ _obj=_hits[0]
193
+
194
+ break
195
+ elsif _hits.is_a?(Selenium::WebDriver::Element)
196
+ _obj = _hits
197
+ break
198
+ end
199
+
200
+ drv.switch_to.parent_frame
201
+
202
+ end
203
+
204
+ end
205
+
206
+
207
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " _obj => #{_obj}"
208
+
209
+ _obj
210
+
211
+ end
212
+
94
213
  # http://stackoverflow.com/questions/15164742/combining-implicit-wait-and-explicit-wait-together-results-in-unexpected-wait-ti#answer-15174978
95
214
  def self.getObject(drv, obj, _timeout=nil)
96
215
 
@@ -446,7 +446,7 @@ module Scoutui::Base
446
446
 
447
447
  # Check if the verification is a "windows.*" verification
448
448
 
449
- if !xpath.match(/window[s]\.length\s*\(\d+\)/).nil?
449
+ if !xpath.match(/^\*window[s]\.length\s*\(\d+\)/).nil?
450
450
  _expected_length=xpath.match(/window[s]\.length\s*\((.*)\)/i)[1].to_s
451
451
 
452
452
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + "\tExpect window.length is #{_expected_length}"
@@ -682,6 +682,10 @@ module Scoutui::Base
682
682
  _region = e[STEP_KEY]["region"]
683
683
  _reqid = e[STEP_KEY]["reqid"]
684
684
  _execute_when = e[STEP_KEY]["execute_when"]
685
+ _use_frames = e[STEP_KEY]["frames"]
686
+
687
+
688
+ Scoutui::Commands::Utils.instance.reset(e)
685
689
 
686
690
  if e[STEP_KEY].has_key?("timeout")
687
691
  Scoutui::Commands::Utils.instance.setTimeout(e[STEP_KEY]["timeout"])
@@ -39,25 +39,14 @@ module Scoutui::Commands
39
39
 
40
40
  end
41
41
 
42
- def execute(drv)
42
+ def execute(drv, e=nil)
43
43
  @drv=drv if !drv.nil?
44
44
 
45
45
  _req = Scoutui::Utils::TestUtils.instance.getReq()
46
+
46
47
  _locator = @cmd.match(/click\s*\((.*)\)/)[1].to_s.strip
47
48
  Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " clickObject => #{_locator}"
48
49
 
49
- # _vars = _locator.scan(/(\$\{.*?\})/)
50
- # _vars.each do | _v|
51
- # if _v.length==1
52
- #
53
- # _u = Scoutui::Base::UserVars.instance.get(_v[0].to_s)
54
- # puts __FILE__ + (__LINE__).to_s + " Normalize(#{_v}) => #{_u}"
55
- #
56
- # _locator.gsub!(_v[0].to_s, _u)
57
- # end
58
- #
59
- # end
60
-
61
50
 
62
51
  # _locator = Scoutui::Base::UserVars.instance.get(_locator)
63
52
  _locator = Scoutui::Base::UserVars.instance.normalize(_locator)
@@ -67,9 +56,36 @@ module Scoutui::Commands
67
56
  _clicked=false
68
57
 
69
58
  begin
70
- obj = Scoutui::Base::QBrowser.getObject(@drv, _locator, Scoutui::Commands::Utils.instance.getTimeout)
59
+
60
+ # _frames = Scoutui::Base::QBrowser.getObjectx(@drv, _locator, Scoutui::Commands::Utils.instance.getTimeout)
61
+
62
+ if false
63
+
64
+ if e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('frames')
65
+ puts __FILE__ + (__LINE__).to_s + " frames => #{e['page']['frames']}";
66
+ frames=e['page']['frames']
67
+ frame_list=frames.split(/(frame\(.*\))\.(?=[\w])/)
68
+ frame_list.each do |_f|
71
69
 
72
70
 
71
+ if !_f.empty?
72
+ _id = _f.match(/frame\((.*)\)/)[1]
73
+
74
+ puts __FILE__ + (__LINE__).to_s + " switch_to.frame #{_id}"
75
+
76
+ @drv.switch_to.frame(_id.to_s.strip)
77
+ end
78
+
79
+ end
80
+ end
81
+
82
+ obj = Scoutui::Base::QBrowser.getObject(@drv, _locator, Scoutui::Commands::Utils.instance.getTimeout)
83
+
84
+
85
+ end
86
+
87
+ obj = Scoutui::Base::QBrowser.findElement(@drv, _locator, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
88
+
73
89
 
74
90
  if obj
75
91
 
@@ -83,6 +99,10 @@ module Scoutui::Commands
83
99
  }
84
100
 
85
101
  if isDisplayed
102
+
103
+ isEnabled = wait.until { obj.enabled? }
104
+
105
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " obj is enabled : #{isEnabled}"
86
106
  obj.click
87
107
  _clicked=true
88
108
 
@@ -98,7 +118,7 @@ module Scoutui::Commands
98
118
  end
99
119
 
100
120
  rescue => ex
101
- Scoutui::Logger::LogMgr.instance.warn "Error during processing: #{$!}"
121
+ Scoutui::Logger::LogMgr.instance.warn "Error during processing: #{ex}"
102
122
  Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
103
123
  end
104
124
 
@@ -9,10 +9,19 @@ module Scoutui::Commands
9
9
  attr_accessor :locator
10
10
  attr_accessor :executed
11
11
  attr_accessor :executed_result
12
+ attr_accessor :stanza
12
13
 
13
14
  def initialize(_cmd, _drv=nil)
14
15
  Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " Command.init: #{_cmd.to_s}"
16
+
17
+
15
18
  @cmd=_cmd
19
+
20
+ if _cmd.is_a?(Hash) && _cmd.has_key?('page') && _cmd['page'].has_key?('action')
21
+ @stanza = _cmd
22
+ @cmd=_cmd['page']['action']
23
+ end
24
+
16
25
  @rc=nil
17
26
  @drv=_drv
18
27
  @locator=nil
@@ -21,7 +21,7 @@ module Scoutui::Commands
21
21
 
22
22
 
23
23
  def self.processCommand(_action, e, my_driver)
24
- Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " enter [processCommand(#{_action})"
24
+ Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " enter [processCommand(#{_action}, #{e})"
25
25
 
26
26
  _aborted=false
27
27
  _cmd=nil
@@ -36,6 +36,11 @@ module Scoutui::Commands
36
36
 
37
37
  _c=nil
38
38
 
39
+ my_driver.switch_to.default_content
40
+
41
+
42
+
43
+
39
44
  if Scoutui::Commands::Utils.instance.isPause?(_action)
40
45
  _cmd='pause'
41
46
  _c = Scoutui::Commands::Pause.new(nil)
@@ -47,7 +52,7 @@ module Scoutui::Commands
47
52
  elsif Scoutui::Commands::Utils.instance.isClick?(_action)
48
53
  _cmd='Click'
49
54
  _c = Scoutui::Commands::ClickObject.new(_action)
50
- _c.execute(my_driver)
55
+ _c.execute(my_driver, e)
51
56
 
52
57
  if e["page"].has_key?('then')
53
58
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " then => #{e['page']['then]']}"
@@ -58,6 +63,11 @@ module Scoutui::Commands
58
63
  _c = Scoutui::Commands::JsAlert::ExistsAlert.new(_action)
59
64
  rc=_c.execute(my_driver)
60
65
 
66
+ elsif Scoutui::Commands::Utils.instance.isFrame?(_action)
67
+ _cmd='IsFrame'
68
+ _c = Scoutui::Commands::SwitchFrame.new(_action)
69
+ rc=_c.execute(my_driver, e)
70
+
61
71
  elsif Scoutui::Commands::Utils.instance.isGetAlert?(_action)
62
72
  _cmd='GetAlert'
63
73
  _c = Scoutui::Commands::ExistsAlert.new(_action)
@@ -71,7 +81,7 @@ module Scoutui::Commands
71
81
  elsif Scoutui::Commands::Utils.instance.isSelect?(_action)
72
82
  _cmd='Select'
73
83
  _c = Scoutui::Commands::SelectObject.new(_action)
74
- _c.execute(my_driver)
84
+ _c.execute(my_driver, e)
75
85
 
76
86
  elsif Scoutui::Commands::Utils.instance.isFillForm?(_action)
77
87
 
@@ -6,7 +6,9 @@ module Scoutui::Commands
6
6
 
7
7
  class SelectObject < Command
8
8
 
9
- def execute(drv)
9
+ def execute(drv, e=nil)
10
+
11
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " SelectObject.execute(#{e})"
10
12
  @drv=drv if !drv.nil?
11
13
 
12
14
  _req = Scoutui::Utils::TestUtils.instance.getReq()
@@ -23,7 +25,54 @@ module Scoutui::Commands
23
25
 
24
26
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + "Process SELECT #{_val} into #{_xpath}" if Scoutui::Utils::TestUtils.instance.isDebug?
25
27
 
26
- obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
28
+
29
+ if e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('frames')
30
+ puts __FILE__ + (__LINE__).to_s + " frames => #{e['page']['frames']}";
31
+
32
+
33
+ if false
34
+
35
+ frames=e['page']['frames']
36
+ frame_list=frames.split(/(frame\(.*\))\.(?=[\w])/)
37
+ frame_list.each do |_f|
38
+
39
+
40
+ if !_f.empty?
41
+ _id = _f.match(/frame\((.*)\)/)[1]
42
+
43
+ puts __FILE__ + (__LINE__).to_s + " switch_to.frame #{_id}"
44
+
45
+ @drv.switch_to.frame(_id.to_s.strip)
46
+ end
47
+
48
+ end
49
+
50
+
51
+ end
52
+
53
+ end
54
+
55
+
56
+ # obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
57
+
58
+ if false
59
+ if Scoutui::Commands::Utils.instance.isFrameSearch?
60
+ hits = Scoutui::Base::QBrowser.frame_getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
61
+
62
+ puts __FILE__ + (__LINE__).to_s + " hits => #{hits.class} : #{hits}"
63
+ if hits.is_a?(Array) && !hits.empty?
64
+ obj=hits[0]
65
+ elsif hits.is_a?(Selenium::WebDriver::Element)
66
+ obj=hits
67
+ end
68
+
69
+ else
70
+ obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
71
+ end
72
+ end
73
+
74
+ obj = Scoutui::Base::QBrowser.findElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
75
+
27
76
 
28
77
  if !obj.nil? && obj.tag_name.downcase.match(/(select)/)
29
78
 
@@ -38,8 +87,9 @@ module Scoutui::Commands
38
87
  end
39
88
  end
40
89
 
41
- rescue
42
- ;
90
+ rescue => ex
91
+ Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{$!}"
92
+ Scoutui::Logger::LogMgr.instance.debug "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
43
93
  end
44
94
 
45
95
  Testmgr::TestReport.instance.getReq(_req).testcase('select').add(!obj.nil?, "Verify object to select exists #{_xpath} : #{obj.class.to_s}")
@@ -0,0 +1,127 @@
1
+
2
+ module Scoutui::Commands
3
+
4
+ class SwitchFrame < Command
5
+
6
+ def execute(drv, _e=nil)
7
+
8
+ @drv=drv if !drv.nil?
9
+
10
+ _locator = @cmd.match(/frame\s*\((.*)\)/)[1].to_s.strip
11
+
12
+
13
+ puts __FILE__ + (__LINE__).to_s + " frame : #{_locator}"
14
+
15
+ rc = Array.new()
16
+
17
+ frames = @drv.find_elements(:xpath, '//iframe')
18
+
19
+ if frames.size == 0
20
+ frames = @drv.find_elements(:xpath, '//frame')
21
+ end
22
+
23
+ if frames.size > 0
24
+ rc.concat frames
25
+ end
26
+
27
+
28
+ _obj = @drv.find_elements(:xpath, _locator)
29
+
30
+ puts __FILE__ + (__LINE__).to_s + " frames => #{frames} : #{_obj}"
31
+
32
+ if _obj.empty?
33
+
34
+ for i in 0 .. (frames.size - 1)
35
+
36
+
37
+ _name = frames[i].attribute('name')
38
+ puts __FILE__ + (__LINE__).to_s + " Process frame[#{i}] : #{frames[i].attribute('name')}"
39
+
40
+ @drv.switch_to.frame _name
41
+ # @drv.switch_to.frame i
42
+
43
+ _hits = execute(drv, _e)
44
+
45
+ puts __FILE__ + (__LINE__).to_s + " hits => #{_hits}"
46
+
47
+
48
+ @drv.switch_to.parent_frame
49
+
50
+ if _hits.size > 0
51
+ _obj=_hits
52
+
53
+ break
54
+ end
55
+
56
+ end
57
+
58
+ end
59
+
60
+
61
+ puts __FILE__ + (__LINE__).to_s + " _obj => #{_obj}"
62
+
63
+ _obj
64
+
65
+ end
66
+
67
+
68
+
69
+ # Recurses into all iframe and/or frame tags
70
+ def xxexecute(drv, _e=nil)
71
+
72
+ @drv=drv if !drv.nil?
73
+
74
+ _locator = @cmd.match(/frame\s*\((.*)\)/)[1].to_s.strip
75
+
76
+
77
+ puts __FILE__ + (__LINE__).to_s + " frame : #{_locator}"
78
+
79
+ rc = Array.new()
80
+
81
+ frames = @drv.find_elements(:xpath, '//iframe')
82
+
83
+ if frames.size == 0
84
+ frames = @drv.find_elements(:xpath, '//frame')
85
+ end
86
+
87
+ if frames.size > 0
88
+ rc.concat frames
89
+ end
90
+
91
+
92
+ _obj = @drv.find_elements(:xpath, _locator)
93
+
94
+ puts __FILE__ + (__LINE__).to_s + " frames => #{frames} : #{_obj}"
95
+
96
+ for i in 0 .. (frames.size - 1)
97
+
98
+
99
+ _name = frames[i].attribute('name')
100
+ puts __FILE__ + (__LINE__).to_s + " Process frame[#{i}] : #{frames[i].attribute('name')}"
101
+
102
+ @drv.switch_to.frame _name
103
+ # @drv.switch_to.frame i
104
+
105
+ _hits = execute(drv, _e)
106
+
107
+ puts __FILE__ + (__LINE__).to_s + " hits => #{_hits}"
108
+
109
+ rc.concat _hits if !_hits.empty?
110
+
111
+ @drv.switch_to.parent_frame
112
+
113
+ end
114
+
115
+
116
+ puts __FILE__ + (__LINE__).to_s + " rc => #{rc}"
117
+
118
+ rc
119
+
120
+ end
121
+
122
+
123
+
124
+ end
125
+
126
+
127
+ end
@@ -66,12 +66,12 @@ module Scoutui::Commands
66
66
 
67
67
  Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + "Process TYPE #{_val} into #{_xpath}"
68
68
 
69
- obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
70
-
69
+ # 5150 obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
70
+ obj = Scoutui::Base::QBrowser.findElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
71
71
 
72
72
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " type(#{_val})"
73
73
 
74
- if !obj.nil? && !obj.attribute('type').downcase.match(/(text|password|email)/).nil?
74
+ if !obj.nil? && !obj.attribute('type').downcase.match(/(text|textarea|password|email)/).nil?
75
75
 
76
76
  # Refactor in qbrowser
77
77
 
@@ -10,12 +10,14 @@ module Scoutui::Commands
10
10
  attr_accessor :totalCommands
11
11
  attr_accessor :timeout
12
12
  attr_accessor :hwnds
13
+ attr_accessor :useFrameSearch
13
14
 
14
15
  def initialize
15
16
  @command_list=['pause',
16
17
  'existsAlert',
17
18
  'clickJsAlert',
18
19
  'fillform',
20
+ 'frame',
19
21
  'submitform',
20
22
  'type',
21
23
  'click',
@@ -32,10 +34,45 @@ module Scoutui::Commands
32
34
  @totalCommands[c]=0
33
35
  end
34
36
 
37
+ @useFrameSearch = false
38
+
35
39
  @hwnds = { :current => nil, :previous => nil, :handles => [] }
36
40
  end
37
41
 
38
42
 
43
+ def reset(stanza=nil)
44
+
45
+ setEnableFrameSearch(false)
46
+
47
+ if stanza.is_a?(Hash) && stanza.has_key?('page') && stanza['page'].has_key?('frames')
48
+ puts __FILE__ + (__LINE__).to_s + " frames => #{stanza['page']['frames']}";
49
+
50
+ setEnableFrameSearch(!stanza['page']['frames'].to_s.match(/true/i).nil?)
51
+ end
52
+ end
53
+
54
+ def resetFrameSearch()
55
+ setEnableFrameSearch(false)
56
+ end
57
+
58
+ def setEnableFrameSearch(b)
59
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " setEnabledFrameSearch(#{b})"
60
+ @userFrameSearch=b
61
+ end
62
+
63
+ def getFrameSearch()
64
+ @userFrameSearch
65
+ end
66
+
67
+ def enableFrameSearch()
68
+ Scoutui::Logger::LogMgr.instance.debug "EnableFrameSearch(true)"
69
+ setEnableFrameSearch(true)
70
+ end
71
+
72
+ def isFrameSearch?()
73
+ @userFrameSearch
74
+ end
75
+
39
76
  def isCSS(_locator)
40
77
  rc=nil
41
78
 
@@ -66,6 +103,7 @@ module Scoutui::Commands
66
103
  def setTimeout(_t)
67
104
  @timeout=_t.to_i
68
105
  end
106
+
69
107
  def getTimeout()
70
108
  @timeout.to_i
71
109
  end
@@ -79,6 +117,10 @@ module Scoutui::Commands
79
117
  !_action.match(/(exist[s]*_*alert|existAlert|existsAlert|existsJsAlert|existsJsConfirm|existsJsPrompt)\(/i).nil?
80
118
  end
81
119
 
120
+ def isFrame?(_action)
121
+ _action.match(/^\s*(frame|switchframe|switch_frame)\s*\(/i)
122
+ end
123
+
82
124
  def isVerifyElt?(_action)
83
125
  !_action.match(/(verifyelt|verifyelement)\(/i).nil?
84
126
  end
@@ -131,6 +173,8 @@ module Scoutui::Commands
131
173
  @totalCommands['pause']+=1
132
174
  elsif isExistsAlert?(cmd)
133
175
  @totalCommands['existsAlert']+=1
176
+ elsif isFrame?(cmd)
177
+ @totalCommands['frame']+=1
134
178
  elsif isGetAlert?(cmd)
135
179
  @totalCommands['clickJsAlert']+=1
136
180
  elsif isVerifyElt?(cmd)
@@ -1,3 +1,3 @@
1
1
  module Scoutui
2
- VERSION = "2.0.2"
2
+ VERSION = "2.0.3.pre"
3
3
  end
data/scoutui.gemspec CHANGED
@@ -32,5 +32,5 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "faker"
33
33
  spec.add_development_dependency "logging"
34
34
  spec.add_development_dependency "sauce_whisk"
35
- spec.add_development_dependency "testmgr", "0.3.1.pre"
35
+ spec.add_development_dependency "testmgr", "0.3.2.pre"
36
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scoutui
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Kim
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-04-22 00:00:00.000000000 Z
12
+ date: 2016-05-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -157,14 +157,14 @@ dependencies:
157
157
  requirements:
158
158
  - - '='
159
159
  - !ruby/object:Gem::Version
160
- version: 0.3.1.pre
160
+ version: 0.3.2.pre
161
161
  type: :development
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - '='
166
166
  - !ruby/object:Gem::Version
167
- version: 0.3.1.pre
167
+ version: 0.3.2.pre
168
168
  description: Leverage a fully functional e2e framework that's integrated with Applitool's
169
169
  Eyes and Sauce Labs!
170
170
  email:
@@ -238,6 +238,7 @@ files:
238
238
  - lib/scoutui/commands/select_window.rb
239
239
  - lib/scoutui/commands/strategy.rb
240
240
  - lib/scoutui/commands/submit_form.rb
241
+ - lib/scoutui/commands/switch_frame.rb
241
242
  - lib/scoutui/commands/type.rb
242
243
  - lib/scoutui/commands/update_url.rb
243
244
  - lib/scoutui/commands/utils.rb
@@ -265,9 +266,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
265
266
  version: '0'
266
267
  required_rubygems_version: !ruby/object:Gem::Requirement
267
268
  requirements:
268
- - - ">="
269
+ - - ">"
269
270
  - !ruby/object:Gem::Version
270
- version: '0'
271
+ version: 1.3.1
271
272
  requirements: []
272
273
  rubyforge_project:
273
274
  rubygems_version: 2.6.2