RazoR
08-10-2005, 05:00:32
Bueno, les paso a comentar mi duda. Debido a un programa que me habían solicitado necesito completar un formulario web con unos datos y luego apretar el botón submit. Logré completar el formulario web y apretar el botón submit en una página pero al intentar hacerlo donde debía no pude. El problema es que el "botón" submit es una imagen y el código que tenía no me sirve. Acá les muestro la función que uso para completar los campos y simular el click del botón Submit.
function TForm1.FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
//no form on document
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
begin
Exit;
end;
//count forms on document
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
try
//when the fieldname is found, try to fill out
if FormItem.Item(j).Name = FieldName then
begin
//FormItem.Item(j).Value := Value; //ESTO ES SI ES UN CAMPO
FormItem.Item(j).Click; //ESTO ES SI ES UN BOTON
Result := True;
end;
except
Exit;
end;
end;
end;
end;
Si alguien sabe cómo puedo hacer para simular el click de ésta imagen que funciona como botón, lo escucho atentamente :D
Debo aclarar que hacer un POST method no sirve en éste caso porque para que me valide la operación que estoy haciendo (un login a un sitio) le pasa un parámetro que es un valor hidden creado aleatoriamente al cargar la página.
La página donde está el formulario es ésta:
http://www.criminapolis.com/index.php?f=f
Fíjense que la imagen no tiene seteado un nombre.
Saludos, RazoR
PD: intenté buscar en el foro pero no encontré nada. Es posible que haya buscado mal.
function TForm1.FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
//no form on document
if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
begin
Exit;
end;
//count forms on document
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
try
//when the fieldname is found, try to fill out
if FormItem.Item(j).Name = FieldName then
begin
//FormItem.Item(j).Value := Value; //ESTO ES SI ES UN CAMPO
FormItem.Item(j).Click; //ESTO ES SI ES UN BOTON
Result := True;
end;
except
Exit;
end;
end;
end;
end;
Si alguien sabe cómo puedo hacer para simular el click de ésta imagen que funciona como botón, lo escucho atentamente :D
Debo aclarar que hacer un POST method no sirve en éste caso porque para que me valide la operación que estoy haciendo (un login a un sitio) le pasa un parámetro que es un valor hidden creado aleatoriamente al cargar la página.
La página donde está el formulario es ésta:
http://www.criminapolis.com/index.php?f=f
Fíjense que la imagen no tiene seteado un nombre.
Saludos, RazoR
PD: intenté buscar en el foro pero no encontré nada. Es posible que haya buscado mal.