Einzelnen Beitrag anzeigen

Andreas L.

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

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

  Alt 11. Apr 2013, 13:31
Da das Eingabefeld <input type="text" max="40" size="35" class="cc-parse-text"> weder einen Namen noch eine ID hat, musst du es über das Class-Attribut ausfindig machen. Leider gibt es keine GetElementByClass-Methode. Du musst also mit GetElementsByTagName alle <input>-Felder ausfindig machen und solange durch iterieren bist du das Feld mit cc-parse-text als Class findest.

Funktioniert folgender Code bei dir?
Delphi-Quellcode:
var
  Document: IHTMLDocument2;
  Body: IHTMLElement2;
  Tags: IHTMLElementCollection;
  Tag: IHTMLElement;
  I: Integer;
begin
  Document := WebBrowser1.Document as IHTMLDocument2;
  Body := Document.Body as IHTMLElement2;
  Tags := Body.getElementsByTagName('input');
  for I := 0 to Tags.length - 1 do
  begin
    Tag := Tags.item(I, EmptyParam) as IHTMLElement;
    if Tag.className = 'cc-parse-textthen
    begin
      IHtmlInputElement(Tag).Value := 'Dein neuer Text';
    end;
  end;
end;
Absenden des Eingabefelds:
Ist der von dir gepostete JavaScript- + HTML-Code von einem <form>-Element umschlossen? Wenn ja kannst du einfach Submit des Forms aufrufen:
  WebBrowser1.OleObject.document.forms.item(0).submit; Falls nicht, wäre es ein Versuch wert wie bei dem Eingabefeld durch alle <button>-Element zu iterieren, bis du auf ClassName = 'ccu-button ccu-parse' (Abschicken-Button) oder ClassName = 'ccu-button ccu-parseverify-accept' (Annehmen-Button) stößt, den Button castest du dann auf IHtmlButtonElement statt IHtmlInputElement und hoffst das es eine Methode .Click oder .Submit gibt.

Eine weitere Möglichkeit die mir einfällt, wäre einen eigenen JavaScript-Code mittels TWebBrowser in der Seite auszuführen der den Submit des im HTML vorhandenen Scripts anstößt bzw. ihn nachahmt / simuliert.
Andreas Lauß
Blog

Geändert von Andreas L. (11. Apr 2013 um 13:37 Uhr)
  Mit Zitat antworten Zitat