class Scoutui::Commands::SelectObject

Public Instance Methods

execute(drv, e=nil) click to toggle source
# File lib/scoutui/commands/select_object.rb, line 9
def execute(drv, e=nil)

  _seekTime={ :start => 0, :end => 0 }

  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " SelectObject.execute(#{e})"
  @drv=drv if !drv.nil?

  _req = Scoutui::Utils::TestUtils.instance.getReq()
  obj=nil
  _rc=false

  begin

    if !@cmd.match(/select\(/).nil?

      _xpath = @cmd.match(/^\s*select\((.*),\s*/)[1].to_s
      _val   = @cmd.match(/^\s*select\(.*,\s*(.*)\)/)[1].to_s


      Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + "Process SELECT #{_val} into  #{_xpath}"  if Scoutui::Utils::TestUtils.instance.isDebug?


      if e.is_a?(Hash) && e.has_key?('page') && e['page'].has_key?('frames')
        Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " frames => #{e['page']['frames']}";
      end

      _seekTime[:start]=Time.now
      obj = Scoutui::Base::QBrowser.findElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(),  Scoutui::Commands::Utils.instance.getTimeout)
      _seekTime[:end]=Time.now


      if !obj.nil? && obj.tag_name.downcase.match(/(select)/)

        _opt = Selenium::WebDriver::Support::Select.new(obj)

        if _val.match(/\s*value:(.+)$/)
          _tVal = _val.match(/\s*value:(.+)$/)[1].to_s
          _opt.select_by(:value, Scoutui::Base::UserVars.instance.get(_tVal))
        else
          _opt.select_by(:text, Scoutui::Base::UserVars.instance.get(_val))
        end

        _rc=true

  #      obj.send_keys(Scoutui::Base::UserVars.instance.get(_val))
      else
        Scoutui::Logger::LogMgr.instance.warn  __FILE__ + (__LINE__).to_s + " Unable to process command SELECT => #{obj.to_s}"
      end
    end

  rescue => ex
    Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{$!}"
    Scoutui::Logger::LogMgr.instance.debug "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
  end

  Testmgr::TestReport.instance.getReq(_req).testcase('select').add(!obj.nil?, Scoutui::Base::UserVars.instance.normalize("Verify object to select exists #{_xpath} : #{obj.class.to_s}"), _seekTime[:end] - _seekTime[:start])
  Testmgr::TestReport.instance.getReq(_req).testcase('select').add(_rc, Scoutui::Base::UserVars.instance.normalize("Verify selected text #{_val}"))
  setResult(_rc)

end