Para acceder a los distintos elementos de la página, debes acceder al DOM (
document object model), y el punto de entrada a éste es la propiedad WebBrowser.Document.
Esta propiedad es una interfaz que tienes que moldear de acuerdo a lo que requieras. Por ejemplo, la interfaz
IHTMLDocument3 contiene el método
getElementsByName que te devuelve la lista de todos los elementos que lleven un nombre dado. Si sólo hay un elemento con ese nombre, la lista contendrá un sólo elemento (el de índice 0).
Tal elemento debes averiguar si es del tipo deseado, lo cual logras
preguntando a la interfaz si soporta la interfaz deseada, por ejemplo la de IHTMLInputElement. De ser así, podrias verificar si es del tipo adecuado (TEXT) y entonces tomar su propead value.
Te dejo un ejemplo, que carga la página de
búsqueda avanzada de Google y lee el valor del campo
Dominio que se llama as_sitesearch:
Código Delphi
[-]
uses MSHTML;
procedure TForm1.WebBrowser1DocumentComplete(
Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
var
Document: IHTMLDocument3;
Collection: IHTMLElementCollection;
Element: IHTMLElement;
InputElement: IHTMLInputElement;
begin
Document := (WebBrowser1.Document as IHTMLDocument3);
Collection := Document.getElementsByName('as_sitesearch');
if (Collection.length >= 0) then
begin
Element := Collection.item(0, 0) as IHTMLElement;
Element.QueryInterface(IHTMLInputElement, InputElement);
if Assigned(InputElement) and (InputElement.type_ = 'text') then
ShowMessage(InputElement.value);
end;
end;
Si te fijas, el código está en el evento OnDocumentComplete, para asegurarte que ya está descargado todo el documento al momento de buscar el elemento.
// Saludos