Nun fehlt nur noch das ich den Button klicken kann
Das ganze ist zwar innerhalt einer Form aber ich kann das nicht mit
webbrowser1.OleObject.document.forms.item(0).eleme nts.item('ccu-button ccu-parse').click;
auch wenn ich die 0 durch 1 oder ähnliches ersetze, bringt das nichts.
Klar, der Button hat genau wie das Eingabefeld keinen Namen (oder ID) sonder nur einen ClassName. Also selbes Problem wie beim input.
So müsste es gehen:
Delphi-Quellcode:
var
Document: IHTMLDocument2;
Body: IHTMLElement2;
Tags: IHTMLElementCollection;
Tag: IHTMLElement;
Button: IHtmlButtonElement;
I: Integer;
begin
Document := WebBrowser1.Document
as IHTMLDocument2;
Body := Document.Body
as IHTMLElement2;
Tags := Body.getElementsByTagName('
button');
// Nach <button> statt <input> Elementen suchen
for I := 0
to Tags.length - 1
do
begin
Tag := Tags.item(I, EmptyParam)
as IHTMLElement;
if Tag.className = '
ccu-button ccu-parseverify-accept'
then
begin
Button := Tag
as IHtmlButtonElement;
// Nach IHTMLButtonElement casten
Button.Click;
// laut MSDN hat IHTMLButtonElement keine Click-Methode, ein Versuch ist es aber wert ;-)
// Ansonsten auf das Form zugreifen:
Button.Form.Submit;
end;
end;
end;
Du kannst auch versuchen das Formular direkt abzusenden (wie ich schon schrieb) also ohne Zugriff auf den Button:
webbrowser1.OleObject.document.forms.item(0).submit; // evtl. OleObject weglassen und/oder Document auf IHTMLDocument2 casten
Wenn mehr als ein Formular im
HTML-Code stehen, musst du die 0 ggf. anpassen.
Wenn das alles nicht funktioniert wäre der
HTML-Code des Formulars hilfreich um eine Lösung zu finden....
Zitat:
Und die Sache mit dem IHtmlButtonElement funktioniert auch nicht.
Fehlermeldung?