Saludos cordiales,
hace bastante tiempo que no entro por aquí, y que no uso delphi, por lo que estoy bastante perdido.
Tengo un problema con un TWebBrowser, a la hora de mandar información a una página web por código.
Al pulsar un TButtom, meto la dirección de una página web, introduzco el usuario y el password que me piden y valido.
Sin problemas.
Al pulsar un segundo TButtom, me dirigo a un link determinado de la página anterior.
Sin problemas.
Al pulsar un tercer TButtom, edito un TEXAREA y hago un SUBMIT al servidor.
También sin problemas.
El PROBLEMA está cuando intento hacerlo todo seguido, sin recurrir a los TButtom.
Código Delphi:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
Var
ovElemento: OleVariant;
begin
WebBrowser1.Navigate('direccion pagina web');
while webBrowser1.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages;
ovElemento := WebBrowser1.OleObject.Document.forms.item(0).elements;
ovElemento.item(1).value:='usuario'; ovElemento.item(2).value:='contraseña'; ovElemento.item(3).click;
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
ovElemento: OleVariant;
begin
ovElemento:= WebBrowser1.OleObject.Document.links;
ovElemento.item(38).click; end;
procedure TForm1.Button3Click(Sender: TObject);
Var
ovElemento: OleVariant;
begin
ovElemento := WebBrowser1.OleObject.Document.forms.item(1).elements;
ovElemento.item(2).value := 'Texto a enviar'; ovElemento.item(5).click;
end;
Hasta aquí funciona correctamente. Pero cuando quiero hacerlo todo seguido, por ejemplo al pulsar también un TButtom, no me sale.
Código Delphi
[-]
procedure TForm1.Button4Click(Sender: TObject);
Var
ovElemento: OleVariant;
begin
WebBrowser1.Navigate(''direccion pagina web'');
while webBrowser1.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages;
ovElemento := WebBrowser1.OleObject.Document.forms.item(0).elements;
ovElemento.item(1).value:='usuario'; ovElemento.item(2).value:='contraseña'; ovElemento.item(3).click;
ovElemento:= WebBrowser1.OleObject.Document.links;
ovElemento.item(38).click;
ovElemento := WebBrowser1.OleObject.Document.forms.item(1).elements;
ovElemento.item(2).value := 'Texto a enviar''; ovElemento.item(5).click;
end;
Seguramente será una tontería, o incluso de la página en cuestión, pero llevo dándole vueltas varios días y no consigo dar con la solución.
He comprobado que si antes del fallo interrumpo el programa, por ejemplo con un showmessage() , si me funciona. ¿¿??, pero con un sleep() no.
Gracias anticipadas.