Hallo Leute,
hab Delphi7 auf einem WinXp Rechner
Dann im XP "Google Chrome Frame" installiert
https://developers.google.com/chrome/chrome-frame/
Dann von Progdigy den sourcecode für ChromeFrame installiert
http://www.progdigy.com/files/chrometab.zip
und anschließend einen kleinen Test gestartet...
In meiner Delphi Anwendung hab ich nun einen ChromeFrame ..
Aber es funktioniert kein Hyperlink im Frame und keine Weiterleitungen (nicht mal
http://www.google.de) - auch finde ich keine Events (Document geladen ect..)
Was will ich?: Gehen tuts hauptsächlich um Gastronomieseiten wie booking.com, hotel.de, feratel.at -
Eine Sekretärin klickt auf einen Button und die verschiedenen Schritte werden bis zu einem bestimmten Grad automatisch (mit teilweise Werten aus Datenbank) durchgeführt (Eingabe Benutzername, Kennwort, klick auf Menüpunkte ect..)
??? Hat jemand einen Vorschlag, wie ich folgendes Beispiel via Delphi & Chrome lösen könnte:
- Seite Aufrufen:
https://www.hotel.de/Customer/Profile?lng=DE
- finde Input-Field "EmailOrUserName" und schreib Wert rein
- finde Input-Field "UserPass" und schreibe Wert rein
- finde Button id="LoginFormButton" und simuliere Click
- Wenn neue Seite fertig geladen ist - mache ... u.s.w.
Vielen Dank
Erich
P.s:
Den TWEbBrowser von Delphi7 möchte ich nicht mehr verwenden - der ist schon zu alt...
Im TWebbrowser hab ich bis dato Seiten aufgerufen, diverse Felder ausgefüllt und klicks simuliert
TWebbrowser Klick simulieren
Delphi-Quellcode:
function WB_ClickLink(WB: TWebbrowser; const LinkText: string): Boolean;
var
HTMLDocument2: IHTMLDocument2;
Element: IHTMLElement;
I: Integer;
begin
HTMLDocument2 := WB.Document as IHTMLDocument2;
for I := 0 to HTMLDocument2.Links.Length - 1 do
begin
Element := HTMLDocument2.Links.Item(I, 0) as IHTMLElement;
if Element.GetAttribute('innerText', 0) = LinkText then
begin
Element.Click;
Break;
end;
end;
end;
TWebbrowser Texteingabe
Delphi-Quellcode:
Clipboard.SetTextBuf(PChar(edit1.text)); // in die Zwischenablage
Sleep(100);
Webbrowser1.OleObject.Document.All.Item('file1').Focus; // das Uploadfeld 1 finden
Sleep(100);
Webbrowser1.ExecWB(OLECMDID_PASTE, 0);
Hat eigentlich wunderbar funktioniert...
und hier die simple Chrome-
Unit, mit der ich bis dato nicht mal eine funktionstüchtige Seite reinladen kann
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ChromeTabLib, StdCtrls, Buttons, ToolWin, ComCtrls, ExtCtrls,
ActnList, Menus;
type
TForm1 =
class(TForm)
ChromeFrame1: TChromeFrame;
Panel1: TPanel;
SpeedButton6: TSpeedButton;
Edit1: TEdit;
procedure ChromeFrame1Message(ASender: TObject;
const event: OleVariant);
procedure Edit1KeyPress(Sender: TObject;
var Key: Char);
procedure SpeedButton6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Name: ChromeFrame1
// Properties: Privileged = true;
procedure TForm1.ChromeFrame1Message(ASender: TObject;
const event: OleVariant);
begin
MessageDlg(event.data, mtInformation, [mbOK], 0);
end;
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if Key = #13
then
begin
ChromeFrame1.Navigate(Edit1.Text);
Abort;
end;
end;
procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
ChromeFrame1.Navigate('
http://www.google.com');
end;
end.
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \