如何调用网站的点击事件,或者更简单地说,通过POST和delphi登录网站?例如,我与PS4 / XBox1游戏Madden 15的一些朋友进行了特许经营联盟。他们在商店的伴侣应用程序实际上只是一个链接到网站,坦白说,网站很笨重,很难在移动设备上导航。我想复制网站 - 根据我的需要定制 - 使用移动应用程序形式的Delphi。我的第一个障碍是登录。我的计划是我只在应用程序的后台使用Web浏览器登录/加载HMTL,我可以从中评估HTML并根据我需要列出视觉数据来提取数据。
链接到网站我想模拟here
由于我想在webbrowser上显示更友好的GUI,我相信我可以用WebBrowser1.EvaluateJavaScript(ChangeElementByIDforPassandUsername_String);
修改浏览器的HTML
从表单上的TEdits中获取传递的字符串。
在此之后: http://blogs.embarcadero.com/nikolay/2014/04/17/exampleofusingjavascriptforgooglemapsinthedelphixe6/
但是,如何在网站上调用模拟按钮点击登录按钮?
答案 0 :(得分:1)
忘记劫持移动浏览器。使用Indy的TIdHTTP
组件根据需要向服务器发送HTTP POST
请求。使用普通的WebBrowser查看实时HTML,然后将相关字段编码到您的应用程序中。或者使用TIdHTTP
下载HTML并在代码中对其进行分析。但无论哪种方式,您都可以使用自己的UI。
例如:
var
PostData: TStringList;
Resp: String;
begin
PostData := TStringList.Create;
try
PostData.Add('email=...');
PostData.Add('password=...');
PostData.Add('_eventId=submit');
PostData.Add('facebookAuth=');
// make sure a TIdSSLIOHandlerSocketOpenSSL is assigned
// to the TIdHTTP.IOHandler property beforehand
Resp := IdHTTP1.Post(URL{'https://signin.ea.com/p/web/login?execution=...'}, PostData);
finally
PostData.Free;
end;
end;