Добрый день народ .Передомной встала такая проблема никак не мого обойти ее сам .Нашел в нете кучу статей но они мне не помогают.
Я пишу программу которая должна проверять баланнс на щету в нете.
Вот код этой нет страницы :
Код HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r" />
<title>.: мЙЮОЩК лБВЙОЕФ рПМШЪПЧБФЕМС уРБТЛ</title>
<link rel="stylesheet" type="text/css" href="/main_ru.css" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="/ie6.css" />
<![endif]-->
</head>
<body>
<h1 class="hide">мЙЮОЩК лБВЙОЕФ рПМШЪПЧБФЕМС</h1>
<form id="loginForm" action='/?lang=ru' method=post>
<p>мПЗЙО <input type="text" name="login" /></p>
<p>рБТПМШ <input type="password" name="password" /></p>
<button type="submit"><img class="hide" src="/img_ru/lkAuthBtn.png" alt="чПКФЙ" /></button>
<div id="loginShade"></div>
</form>
<div class="sparkenish" id="sparkenish">
<div id="sparkenishBalloon">
<img id="sparkenishBalloonLTC" src="/img_ru/lkSparkenishBalloonLTC.png" />
<img id="sparkenishBalloonRTC" src="/img_ru/lkSparkenishBalloonRTC.png" />
<img id="sparkenishBalloonLBC" src="/img_ru/lkSparkenishBalloonLBC.png" />
<img id="sparkenishBalloonRBC" src="/img_ru/lkSparkenishBalloonRBC.png" />
<img id="sparkenishBalloonArrow" src="/img_ru/lkSparkenishBalloonArrow.png" />
<a id="sparkenishBalloonClose" href="#"><img src="/img_ru/lkSparkenishBalloonClose.png" alt="ЪБЛТЩФШ РПНПЭОЙЛБ" /></a>
<p>
дПВТП РПЦБМПЧБФШ Ч МЙЮОЩК ЛБВЙОЕФ! <br>
</p>
</div>
<div id="sparkenishImgCont"><img id="sparkenishImg" src="/img_ru/lkSparkenish.png" alt="рПНПЭОЙЛ УРБТЛ" /></div>
</div>
<script language="javascript" src="/script.js"></script>
</body>
</html>
Вот алгоритм моей проги :
1) спомощью веб браузера зайти на сайт описанный выше (
https://stat.spark-com.ru/)
2)программно вбить в поля логини пороль
3)(какраз то что у меня не получается )
нужно нажать на единственную кнопку на странице в веббраузере которая должна сделать запрос .
вот то что я уже наколякал )
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,OleCtrls, MSHTML,SHDocVw,ActiveX, ShellAPI;
type
TForm1 = class(TForm)
Button1: TButton;
WebBrowser1: TWebBrowser;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Button2: TButton;
Edit3: TEdit;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); //вписывает в поля логина и пороля логин и пороль ) Это работает
var
i: integer;
ov: OleVariant;
iDisp: IDispatch;
iEl: IHTMLElement;
iDoc:IHtmlDocument2;
login_al,pwd_al: string;
iColl: IHTMLElementCollection;
iInputElement: IHTMLInputElement;
begin
if WebBrowser1.Document=nil
then Exit;
WebBrowser1.ControlInterface.Document.QueryInterface(IHtmlDocument2,iDoc);
if not Assigned(iDoc)
then
begin
ShowMessage('Nothing dowloaded ...');
Exit;
end;
ov:='INPUT';
IDisp:=iDoc.All.Tags(ov);
if Assigned(IDisp)
then
begin
IDisp.QueryInterface(IHTMLElementCollection,iColl);
if Assigned(iColl)
then
begin
for i:=1 to iColl.Get_Length do
begin
iDisp:=iColl.Item(pred(i),0);
iDisp.QueryInterface(IHTMLInputElement,iInputElement);
if Assigned(iInputElement)
then
begin
if iInputElement.Get_Name='login'
then iInputElement.Set_Value('E_103095');
if iInputElement.Get_Name='password'
then iInputElement.Set_Value('пароль');
if iInputElement.type_='submit' then
begin
iInputElement.QueryInterface(IHtmlElement,iEl);
iEl.click;
end;
end;
end;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject); // Это загрузка страницы
var
Flags: OLEVariant;
begin
Flags := 0;
WebBrowser1.Navigate(WideString(form1.Edit3.Text), Flags, Flags, Flags, Flags);
end;
procedure TForm1.Button3Click(Sender: TObject); {По нажатию этой кнопки как раз и должен произойти запрос . Вот этот код я взялс нета вроде коомпилируется но не работает}
var
ovElements: OleVariant;
i: Integer;
begin
ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
if (ovElements.item(i).tagName = 'submit')
then
ovElements.item(i).Click;
end;
end.
Пожалуйсто помогите мне дописать программку буду рад любым предложениям и даже другому способу реализации моей задачи.
Admin: Настоятельно советую пользоваться предварительным просмотром, и быть внимательнее при оформлении кода.
Бан: 5 дней.