IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Extraire le texte d'une option sélection de SELECT via twebbrowser


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Extraire le texte d'une option sélection de SELECT via twebbrowser
    J'ai développé une application pour remplir un formulaire pour l'envoyer automatiquement sur un site.
    Un ensemble d'options d'un SELECT varie au fur et à mesure et décale l'index de l'option visée.
    Actuellement je fais calibrer au lancement la sélection par l'utilisateur mais ce n'est pas très élégant.

    Quelqu'un connait-il une façon simple de récupérer le texte d'une option définie ou sélectionnée pour m'assurer rapidement de ce décalage et le rectifier?

  2. #2
    En attente de confirmation mail
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 17
    Points
    17

  3. #3
    En attente de confirmation mail
    Inscrit en
    Décembre 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 13
    Points : 17
    Points
    17
    Par défaut
    voici une petite demo...
    page de test
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
    <form name="form1" method="post" action="">
        <select name="select1"  size="4">
          <option value="1">elem1</option>
          <option value="2">elem2</option>
          <option value="3">elem3</option>
          <option value="4">elem4</option>
        </select>
    </form>
    </body>
    </html>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    uses mshtml;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       Webbrowser1.Navigate('C:\test.htm');
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    var
      Doc: IHTMLDocument3;
      elem:IHTMLSelectElement;
    begin
      Doc:=Webbrowser1.Document as IHTMLDocument3;
      elem := Doc.getElementById('select1') as IHTMLSelectElement;
     
      Showmessage(elem.value)
    end;

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Solution
    Après avoir lu les articles que vous m'avez conseillés et d'autres, j'ai élaboré cette solution fonctionnelle suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Uses MSHTML;
     
    procedure TForm1.BitBtn_CalibrageClick(Sender: TObject);
    var
    Doc: IHTMLDocument2;      // current HTML document
    HTMLWindow: IHTMLWindow2; // parent window of current HTML document
    begin
    // Get reference to current document
    Doc := form1.WebBrowser1.Document as IHTMLDocument2;
     
    if not Assigned(Doc) then
      Exit;
    // Get parent window of current document
    HTMLWindow := Doc.parentWindow;
    if not Assigned(HTMLWindow) then
      Exit;
    // Run JavaScript
    try
      form1.WebBrowser1.OleObject.Document.forms.Item(0).Item(26).selectedindex:=94; // sélection de l'option du "SELECT" visé
        HTMLWindow.execScript('window.status=window.document.getElementById(''lieu'').options[94].text', 'JavaScript'); // exécution du script
      HTMLWindow.execScript('window.status=''Terminée'';', 'JavaScript'); // exécution du script
    except
      // handle exception in case JavaScript fails to run
    end;
    end;
     
    procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
      const Text: WideString);
    begin
    showmessage(text);
    end;
     
    end.
    Merci

Discussions similaires

  1. Extraire le texte d'une ligne donnée à partir d'un memo
    Par dark_geek dans le forum Composants VCL
    Réponses: 2
    Dernier message: 10/07/2009, 13h11
  2. [RegEx] Extraire du texte d'une balise
    Par GouKen dans le forum Langage
    Réponses: 1
    Dernier message: 28/01/2008, 17h17
  3. texte d'une option de select et &nbsp;
    Par postb99 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/08/2007, 11h25
  4. Récupérer le texte d'une liste à sélection multiple
    Par alexandrebergercyr dans le forum IHM
    Réponses: 4
    Dernier message: 21/06/2007, 15h30
  5. récupérer le texte d'une option d'un select
    Par taka10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/10/2006, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo