class Scoutui::Commands::Highlight
Public Instance Methods
_highlight(obj, e=nil)
click to toggle source
# File lib/scoutui/commands/highlight.rb, line 7 def _highlight(obj, e=nil) _rc=false Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " highlight => #{obj}" if !obj.nil? begin if e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('style') style=e['page']['style'] obj=Scoutui::Base::QBrowser.highlight(@drv, obj, style) elsif e.is_a?(Hash) && e.has_key?(:color) # TODO: refactor with q_browser.highlight if e[:color].match(/blue/i) _style={"color" => 'rgb(0, 0, 255)', "border" => 2} elsif e[:color].match(/red/i) _style={"color" => 'rgb(255, 0, 0)', "border" => 2} elsif e[:color].match(/yellow/i) _style={"color" => 'rgb(255, 255, 0)', "border" => 2} elsif e[:color].match(/green/i) _style={"color" => 'rgb(0, 255, 0)', "border" => 2} elsif e[:color].match(/gray/i) _style={"color" => 'rgb(128, 128, 128)', "border" => 2} end obj=Scoutui::Base::QBrowser.highlight(@drv, obj, _style) else obj=Scoutui::Base::QBrowser.highlight(@drv, obj) end _rc=true rescue => ex Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Error during processing: #{$!}" Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}" end end _rc end
execute(drv, e=nil)
click to toggle source
# File lib/scoutui/commands/highlight.rb, line 52 def execute(drv, e=nil) rc=true _color=nil _req = Scoutui::Utils::TestUtils.instance.getReq() Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Highlight.execute(#{@cmd}), req:#{_req}" @drv=drv if !drv.nil? begin locators=[] if @cmd.match(/highlight\s*\((.*)\)([(\.blue|\.gray|\.green|\.red|\.yellow)]*)/) # if @cmd.match(/highlight\s*\((.*)\)/) _m = @cmd.match(/highlight\s*\((.*)\)/) _m = @cmd.match(/highlight\s*\((.*)\)([(\.blue|\.gray|\.green|\.red|\.yellow)]*)/) locators << _m[1].to_s if !(_m[2].nil? || _m[2].empty?) _color=_m[2].to_s end elsif e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('locators') locators = e['page']['locators'] end Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight.locators => #{locators}" locators.each do |elt| q=nil # TODO: _parsed = Scoutui::Base::QBrowser.parseLocator(elt) if elt.is_a?(String) && elt=='focused' obj=@drv.switch_to.active_element elsif elt.is_a?(String) && elt.match((/^\s*([(frame\([^\(]*?\)\.)]*)\.(locator\((.*)\))\s*$/)) obj=Scoutui::Base::QBrowser.getElement(@drv, elt, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout) else q=Scoutui::Base::Assertions.instance._parseFrameLocator(elt) if q.has_key?('frame') Scoutui::Commands::Utils.instance.setEnableFrameSearch(q['frame']) elt = q['locator'] end _loc = Scoutui::Base::UserVars.instance.normalize(elt) obj = Scoutui::Base::QBrowser.findElement(@drv, _loc, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout) end if !obj.is_a?(Selenium::WebDriver::Element) Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " highlight : unable to find #{_loc}" end if _color.nil? _rc = _highlight(obj, e) else _rc = _highlight(obj, { :color => _color }) end Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight(#{e}) : #{_rc}" if q && q.has_key?('frame') @drv.switch_to.default_content Scoutui::Commands::Utils.instance.resetFrameSearch end rc = rc && _rc Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ||| assert? => #{assert?.to_s} : _rc:#{_rc} rc:#{rc}" if assert? Testmgr::TestReport.instance.getReq(_req).testcase('highlight').add(!obj.nil?, "Verify object #{elt} to highlight exists : #{obj.class.to_s}") Testmgr::TestReport.instance.getReq(_req).testcase('highlight').add(_rc, "Verify highlight #{_rc} performed for #{elt}") else Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight(#{elt} : #{obj.class.to_s}" end Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight(#{elt.to_s} : #{_rc}" end rescue => ex Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Error during processing: #{$!}" Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}" end Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight.rc ==> #{rc}" setResult(rc) end