Forum Discussion
* i don't know exactly what you want but i've made the following method to search by Xpath query inside web page.
  /**
   * <a id="web.findItWeb"></a>
   * Rechercher des objets via requête XPath sur une page web<br>
   * <br>
   * <font color=Red><i><b>Limitations<br>
   * - limitation technique, TestComplete ne gère que les requêtes XPath 1.0</b></i></font>
   * @function
   * @param {string} Property - Nom de la propriété à rechercher
   * @param {variant} Value - Valeur de la propriété à rechercher
   * @param {string} [Type=*] - Type de l'objet (<i>SELECT</i>, <i>INPUT</i>, <i>DIV</i>, etc..) pour réduire le champ de recherche
   * @param {object} [Page=current page] - Page/élément web à rechercher dedans
   * @param {number} [Timeout=0] - Si <b>>0</b> alors répéter la recherche pendant <i>Timeout</i> millisecondes
   * @param {boolean} [Refresh=false] - <b>true</b> alors rafraichir la page avant de faire la recherche
   * @param {boolean} [Parent=false] - <b>true</b> alors renvoyer l'objet parent de celui recherché
   * @param {boolean} [Partial=false] - <b>true</b> alors recherche sur <i>Property contient Value</i> et non pas <i>Property = Value</i>
   * @returns {object} Renvoie un <b>objet web TestComplete</b> si il a été trouvé ou <b>null</b> s'il n'a pas été trouvé
   */
  qa.web.findItWeb = function (Property, Value, Type, MyPage, Timeout, Refresh, Parent, Partial) {
    if ((Property == undefined) || (Value == undefined)) {
      if (qa.system.findDebug) {
        Log.Warning('Appel de qa.web.findItWeb() avec un paramètre obligatoire non renseigné (Property ou Value)');
      }
      return null;
    }
    MyPage  = qa.system.checkUndefined(MyPage, Sys.Browser().Page('*'));
    Type    = qa.system.checkUndefined(Type, "*");
    Refresh = qa.system.checkUndefined(Refresh);
    Parent  = qa.system.checkUndefined(Parent);
    Partial = qa.system.checkUndefined(Partial);
    Timeout = qa.system.checkUndefined(Timeout, 0);
    var toFind;
    if (qa.system.findDebug) {
      var TimeoutStr = (Timeout == 0 ? 'no time out' : Timeout.toString());
      Log.Message('qa.web.findItWeb(' + Property.toString() + ', ' + Value.toString() + ', ' + Type.toString() + ', [MyPage], ' + TimeoutStr + ', ' + Refresh.toString() + ', ' + Parent + ', ' + Partial + ')');
    }
    if (Partial) {
      toFind  = "//" + Type + "[contains(@" + Property + ', "' + Value + '")]';
    }
    else {
      toFind  = "//" + Type + "[@" + Property + ' ="' + Value + '"]';
    }
    if (Parent) {
      toFind = toFind + '/..';
    }
    var objectfind;
    try {
      if (Timeout == 0) {
        if (Refresh) {
          MyPage.Refresh();
        }
        objectfind = MyPage.EvaluateXPath(toFind);
        if (objectfind != null) {
          objectfind = (new VBArray(objectfind)).toArray();
        }
      }
      else {
        var finding = false;
        var chrono  = HISUtils.StopWatch;
        chrono.Start();
        while ((!finding) && (chrono.Split() < Timeout)) {
          if (Refresh) {
            MyPage.Refresh();
          }
          objectfind = MyPage.EvaluateXPath(toFind);
          if (objectfind != null) {
            objectfind = (new VBArray(objectfind)).toArray();
            finding = objectfind.Exists;
          }
        }
      }
    }
    catch(e) {
      objectfind = null;
    }
    finally {
      if (qa.system.findDebug) {
        if ((objectfind == undefined) || (objectfind == null)) {
          Log.Message('qa.web.findItWeb() renvoie un objet null ou undefined');
        }
        else {
          Log.Message('qa.web.findItWeb() a trouvé un objet');
        }
      }
    return objectfind;
    }
  };
Adapt it to your code (here it's a method part of my framework namespace qa.web so method signature is quite unusual)
For example to search a DIV item by it's html class (webobject could be the Sys.Browser('*').Page('*') or an object of a page):
item = qa.web.findItWeb('class', 'name_of_the_class_to_look_for', 'DIV', webobject;
Or searching a SELECT item by it's html name:
var Page = Sys.Browser().Page(_SHRoute);
var TypeRoute = qa.web.findItWeb("name", "name_to_look_for", "SELECT", Page);
TypeRoute[0].ClickItem(_SHRessources[pRouteType]);
Or searching an INPUT item ...
var FileRoute = qa.web.findItWeb("name", "name_to_look_for", "INPUT", Page);
Or searching an item only by it's id on the current page ...
var ItemToFind = qa.web.findItWeb("id", "id_to_look_for");
* To set text to an input i've made the following method, i let you dig inside a little and try it and if you still need help tell me.
  /**
   * <a id="web.setTextInput"></a>
   * Saisir un texte dans un champ de saisie d'un objet web
   * @function
   * @param {Object} TextInput - Objet web contenant une propriété texte acceptant la saisie
   * @param {string} Value - Texte à saisir
   * @param {boolean} [Validate=false] - <b>true</b> alors appuyer sur <i>ENTREE</i> après saisie
   * @param {string} [PropertyName=caption] - Nom de la propriété de <i>TextInput</i> à utiliser
   * @param {boolean} [Force=false] - <b>true</b> alors saisir et ignorer le contrôle de la valeur saisie
   * @param {boolean} [Autocomplete=false] - <b>true</b> alors vérifier à chaque saisie de caractère si par autocomplete la valeur du champ est bien renseignée (incompatible avec le paramètre <i>Force</i>)
   * @returns {boolean} <b>true</b> si l'opération s'est bien déroulée et, si <i>Force</i> est à <b>false</b>, que la valeur demandée est bien saisie
   */
  qa.web.setTextInput = function (TextInput, Value, Validate, PropertyName, Force, Autocomplete) {
    if ((TextInput == undefined) || (TextInput == null)) {
      return false;
    }
    Validate     = qa.system.checkUndefined(Validate);
    PropertyName = qa.system.checkUndefined(PropertyName, 'caption');
    Force        = qa.system.checkUndefined(Force);
    Autocomplete =  qa.system.checkUndefined(Autocomplete);
    var resultat = true;
    try {
      if (Force) {
        TextInput.Click();
        TextInput.Keys('^a');
        TextInput.Keys('[Del]');
        TextInput.Keys(Value);
        if (Validate) {
          TextInput.Keys('[Enter]');
        }
      }
      else {
        var i = 0;
        if (Autocomplete) {
          var j;
          while ((!(TextInput.WaitProperty(PropertyName, Value, qa.system.time.micro))) && (i<10)) {
            TextInput.Click();
            TextInput.Keys('^a');
            TextInput.Keys('[Del]');
            var tableau=Value.split("");
            for (var j=0; j<tableau.length; j++) {
              TextInput.Click();
              TextInput.Keys(tableau[j]);
              aqUtils.Delay(qa.system.time.smaller, 'Autocomplete text input');
              if (TextInput.WaitProperty(PropertyName, Value, qa.system.time.micro)) {
                break;
              }
            }
            i++;
          }
        }
        else {
          while ((!(TextInput.WaitProperty(PropertyName, Value, qa.system.time.micro))) && (i<10)) {
            TextInput.Click();
            TextInput.Keys('^a');
            TextInput.Keys('[Del]');
            TextInput.Keys(Value);
            i++;
          }
        }
        if (TextInput.WaitProperty(PropertyName, Value, 0)) {
          if (Validate) {
            TextInput.Keys('[Enter]');
          }
        }
        else {
          resultat = false;
        }
      }
    }
    catch(e) {
      resultat = false;
    }
    return resultat;
  };
Good morning - Bonjour bbl
Thank you very much, I will go through your code, implement it and update you.
Merci beaucoup