Manipuler des formulaires Web à l'aide de TWebBrowser

Le contrôle TWebBrowser Delphi permet d'accéder à la fonctionnalité du navigateur Web à partir de vos applications Delphi - pour vous permettre de créer une application de navigation Web personnalisée ou d'ajouter des fonctionnalités de navigation Internet, de fichiers et de réseau, d'affichage de documents et de téléchargement de données à vos applications..

Formulaires Web

UNE formulaire web ou un formulaire sur une page web permet à un visiteur de page Web d'entrer des données qui, dans la plupart des cas, sont envoyées au serveur pour traitement.

Le formulaire Web le plus simple pourrait consister en un élément d'entrée (contrôle d'édition) et un soumettre bouton. La plupart des moteurs de recherche Web (comme Google) utilisent un tel formulaire Web pour vous permettre de rechercher sur Internet.

Des formulaires Web plus complexes incluraient des listes déroulantes, des cases à cocher, des boutons radio, etc. Un formulaire Web ressemble beaucoup à un formulaire Windows standard avec saisie de texte et contrôles de sélection.

Chaque formulaire comprendrait un bouton - un bouton d'envoi - qui indique au navigateur de prendre des mesures sur le formulaire Web (généralement pour l'envoyer à un serveur Web pour traitement).

Remplissage de formulaires Web par programme

Si, dans votre application de bureau, vous utilisez TWebBrowser pour afficher des pages Web, vous pouvez contrôler par programme les formulaires Web: manipuler, modifier, remplir, remplir les champs d'un formulaire Web et le soumettre.

Voici une collection de fonctions Delphi personnalisées que vous pouvez utiliser pour répertorier tous les formulaires Web sur une page Web, pour récupérer des éléments d'entrée, pour remplir des champs par programme et pour enfin soumettre le formulaire.

Pour suivre plus facilement les exemples, supposons qu'il existe un contrôle TWebBrowser nommé "WebBrowser1" sur un formulaire Delphi (Windows standard).

Remarque: vous devez ajouter mshtml à votre clause uses afin de compiler les méthodes listées ici.

Lister les noms des formulaires Web, obtenir un formulaire Web par index

Une page Web aurait dans la plupart des cas un seul formulaire Web, mais certaines pages Web pourraient avoir plusieurs formulaires Web. Voici comment obtenir les noms de tous les formulaires Web sur une page Web:

 une fonction WebFormNames (const document: IHTMLDocument2): TStringList; var   formulaires: IHTMLElementCollection; forme: IHTMLFormElement; idx: entier; commencer   forms: = document.Forms as IHTMLElementCollection; résultat: = TStringList.Create;   pour idx: = 0 à -1 + forme.longueur faire   commencer     form: = forms.item (idx, 0) as IHTMLFormElement; result.Add (form.name);   fin; fin; 

Une utilisation simple pour afficher la liste des noms de formulaires Web dans un TMemo:

 var   formulaires: TStringList; commencer   formulaires: = WebFormNames (WebBrowser1.Document COMME IHTMLDocument2);   essayer     memo1.Lines.Assign (formulaires);   enfin     formulaires.Gratuit;   fin; fin; 

Voici comment obtenir l'instance d'un formulaire Web par index. Pour une page de formulaire unique, l'index serait 0 (zéro).

 une fonction WebFormGet (const formNumber: entier; const document: IHTMLDocument2): IHTMLFormElement; var   formulaires: IHTMLElementCollection; commencer   formulaires: = document.Forms comme IHTMLElementCollection; résultat: = forms.Item (formNumber, ") comme IHTMLFormElement fin;