Manipular formularios web con TWebBrowser

El control TWebBrowser Delphi proporciona acceso a la funcionalidad del navegador web desde sus aplicaciones Delphi, para permitirle crear una aplicación de navegación web personalizada o agregar capacidades de Internet, navegación de archivos y redes, visualización de documentos y descarga de datos a sus aplicaciones.

Formularios web

UN formulario web o un formulario en una página web permite a un visitante de la página web ingresar datos que, en la mayoría de los casos, se envían al servidor para su procesamiento.

El formulario web más simple podría consistir en uno elemento de entrada (control de edición) y un enviar botón. La mayoría de los motores de búsqueda web (como Google) utilizan dicho formulario web para permitirle buscar en Internet.

Los formularios web más complejos incluirían listas desplegables, casillas de verificación, botones de opción, etc. Un formulario web es muy parecido a un formulario estándar de Windows con entrada de texto y controles de selección..

Cada formulario incluiría un botón, un botón de envío, que le indica al navegador que tome medidas en el formulario web (generalmente para enviarlo a un servidor web para su procesamiento).

Formularios web de formularios mediante programación

Si en su aplicación de escritorio utiliza TWebBrowser para mostrar páginas web, puede controlar mediante programación los formularios web: manipular, cambiar, rellenar, rellenar campos de un formulario web y enviarlo.

Aquí hay una colección de funciones de Delphi personalizadas que puede usar para enumerar todos los formularios web en una página web, recuperar elementos de entrada, rellenar campos mediante programación y finalmente enviar el formulario.

Para seguir más fácilmente los ejemplos, digamos que hay un control TWebBrowser llamado "WebBrowser1" en un formulario Delphi (Windows estándar).

Nota: deberías agregar mshtml a su cláusula de usos para compilar los métodos enumerados aquí.

Listar nombres de formularios web, obtener un formulario web por índice

En la mayoría de los casos, una página web solo tiene un formulario web, pero algunas páginas web pueden tener más de un formulario web. Aquí se explica cómo obtener los nombres de todos los formularios web en una página web:

 función WebFormNames (const documento: IHTMLDocument2): TStringList; var   formas: IHTMLElementCollection; formulario: IHTMLFormElement; idx: entero; empezar   formas: = document.Forms como IHTMLElementCollection; resultado: = TStringList.Create;   para idx: = 0 a -1 + formas.longitud hacer   empezar     form: = forms.item (idx, 0) como IHTMLFormElement; result.Add (form.name);   final; final; 

Un uso simple para mostrar la lista de nombres de formularios web en un TMemo:

 var   formas: TStringList; empezar   formularios: = WebFormNames (WebBrowser1.Document COMO IHTMLDocument2);   tratar     memo1.Lines.Assign (formularios);   finalmente     formas gratuitas;   final; final; 

Aquí se explica cómo obtener la instancia de un formulario web por índice. Para una sola página de formulario, el índice sería 0 (cero).

 función WebFormGet (const formNumber: entero; const documento: IHTMLDocument2): IHTMLFormElement; var   formas: IHTMLElementCollection; empezar   formularios: = documento. Formularios como IHTMLElementCollection; resultado: = formularios.Item (formNumber, ") como IHTMLFormElement final;