Folgendes ist programiertechnisch über TWebBrowser möglich:
* einen Button auf der Webseite anklicken
* Eingabefelder mit Text befüllen
* Checkboxen an- oder abkreuzen
* Comboboxen auswählen
Nicht möglich ist z.B. ein Dateiupload durch Vorgabe eines Dateinamens. (aus Sicherheitsgründen)
Hier kommt mal ein grosses Stück Code, das zeigt wie man Editboxen in Webseiten mit TEXT befüllt.
Du musst aber schon selber etwas mitdenken und Forschungsarbeit betreiben.
Delphi-Quellcode:
function TFrmHTMLUpload.FillForm(WebBrowser: TWebBrowser; submit:Boolean) : Boolean;
var
i,j:Integer;
FormItem, Element : OleVariant;
document : OleVariant;
itemtype, itemname : string;
r, maxlen, selcount, postcount : Integer;
value2 : string;
begin
document := WebBrowser.OleObject.document;
//no form on document
If document.all.tags('FORM').length=0 then
begin
exit;
end;
postcount := 0;
//count forms on document
for I:=0 to document.forms.Length -1 do
begin
Result:=false;
FormItem := document.forms.Item(I);
For j:= 0 to FormItem.Length-1 do
begin
Element := FormItem.Item(j);
itemname := Element.Name;
itemtype := UpperCase(Element.Type);
value2 := '';
if itemname='USERNAME' then
value2 := 'administrator'
else if itemname='PASSWORT' then
value2 := 'geheim';
if value2 <> '' then
begin
if (itemtype = 'TEXT') then
begin
maxlen := Element.MaxLength;
Element.Value:= Copy(value2, 1, maxlen);
end else if (itemtype = 'RADIO') then
begin
Element.Checked := Copy(value2, 1, 1) = '*';
end
else
Element.value := value2;
Inc(postcount);
end;
if (itemtype = 'SELECT-ONE') and (value2 = '') then
begin
// TODO: check options.count
selcount := Element.options.Length;
Element.value := Element.options.Item(system.Random(selcount)).value;
end
else if itemtype = 'CHECKBOX' then
begin
if system.Random > 0.5 then
Element.Checked := True;
end;
end;
if (not submit) and (postcount > 0) then
Exit;
if submit and (postcount > 0) then
begin
SubmitWebForm(FormItem);
Exit;
end;
end;
end;