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

C++Builder Discussion :

Méthode pour simuler un clique sur un bouton d'une page HTML (Tcppwebbrowser)


Sujet :

C++Builder

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Méthode pour simuler un clique sur un bouton d'une page HTML (Tcppwebbrowser)
    Bonjour,

    Connaissez vous une méthode afin de pouvoir simuler un clique sur un bouton d'une page HTML en utilisant le composant "tcppwebbrowser".

    Par exemple sur un forum, je voudrais utiliser la page recherché.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Variant vDocument = WebBrowser->ControlInterface->Document;
    if (((IDispatch *)vDocument) != NULL)
    {
       Variant vForms = vDocument.OlePropertyGet("Forms");
       Variant vForm = vForms.OleFunction("item",0,0);
       Variant vContent = vForm.OlePropertyGet("All");
       Variant vSearchField = vContent.OleFunction("NamedItem","search"); //Je cherche le champ recherché
       vSearchField.OlePropertySet("Value","Le mot-clé à recherché"); // Je rentre le mot-clé que je veux recherché
        ??  // Fonction permettant de simuler un clique sur un bouton
     
    }
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Regarde autour de GetElementById, cela te renvoi une interface vers l'éléments, tu as théorique un IHTMLElement que tu peux caster IHTMLInputElement (voir MSHTML.hpp)
    Si la Propriété Type est égale à "button", tu peux invoquer la méthode "click"
    En Delphi, cela se fait automatiquement avec le LateBiding des OleVariant
    En C++Builder, je suppose que OleFunction devrait permettre d'y parvenir

    Click correspond au OnClick du JavaScript
    Sinon, il faut récupérer la propriété Form qui est un IHTMLFormElement qui possède une méthode submit !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Regarde autour de GetElementById, cela te renvoi une interface vers l'éléments, tu as théorique un IHTMLElement que tu peux caster IHTMLInputElement (voir MSHTML.hpp)
    Si la Propriété Type est égale à "button", tu peux invoquer la méthode "click"
    En Delphi, cela se fait automatiquement avec le LateBiding des OleVariant
    En C++Builder, je suppose que OleFunction devrait permettre d'y parvenir

    Click correspond au OnClick du JavaScript
    Sinon, il faut récupérer la propriété Form qui est un IHTMLFormElement qui possède une méthode submit !
    Merci pour ta réponse,
    Je vois pas comment faire
    Pour la méthode avec "submit" j'ai essayé avec le code que j'ai mis au début, il me met bien la valeur dans les champs mais ça me rafraichis la page.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Variant vDocument = WebBrowser->ControlInterface->Document;
    if (((IDispatch *)vDocument) != NULL)
    {
       Variant vForms = vDocument.OlePropertyGet("Forms");
       Variant vForm = vForms.OleFunction("item",0,0);
       Variant vContent = vForm.OlePropertyGet("All");
       Variant vSearchField = vContent.OleFunction("NamedItem","search"); //Je cherche le champ recherché
       vSearchField.OlePropertySet("Value","Le mot-clé à recherché"); // Je rentre le mot-clé que je veux recherché
        vForm.OleProcedure("Submit");
    }

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut pour simuler un click, il faut.... faire "click" !!!
    Variant vForms = vDocument.OlePropertyGet("All");
    Variant vBouton = vForms.OleFunction("NamedItem",WideString("nom du bouton").c_bstr());
    if (vBouton.VUnknown == NULL)
    {
    ShowMessage ("Problème avec le nom du bouton!");
    return;
    }
    vBouton.OleFunction("click");

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut

    Merci pour l'extrait de code qui traduisait mes propos sur l'utilisation en Late Binding des OleVariant, il est juste 7 mois en retard
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. [XL-2010] Cliquer sur un bouton d'une page HTML
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/05/2013, 21h43
  2. simuler un clique sur un bouton
    Par waldoun dans le forum Composants
    Réponses: 3
    Dernier message: 29/04/2008, 17h57
  3. Réponses: 5
    Dernier message: 26/09/2007, 16h07
  4. "simuler" un clique sur un bouton.
    Par Ekinoks dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 18/04/2007, 16h18
  5. Réponses: 14
    Dernier message: 25/06/2006, 19h18

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