Einzelnen Beitrag anzeigen

Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Webbrowser eingabefeld füllen und abschicken, java script

  Alt 13. Apr 2013, 13:45
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-acceptthen
    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?
Andreas Lauß
Blog
  Mit Zitat antworten Zitat