Здравствуйте.
Пишу программу, есть такой обработчик клика по кнопке:
Код:
procedure TForm2.Button11Click(Sender: TObject);
var
U,P : Variant;
form:olevariant;
f,i:Integer;
r: TRegExpr;
Doc : IHTMLDocument2;
s:string;
begin
WebBrowser1.Navigate('http://web.iqsms.ru/login/?next=/contacts/');
while WebBrowser1.ReadyState<>4 do
Application.ProcessMessages;
U:=webbrowser1.oleobject.document.getelementbyid('id_username');
U.value:=Edit3.Text;
P:=webbrowser1.oleobject.document.getelementbyid('id_password');
P.value:=Edit4.Text;
//U.style.display := 'block';
//P.style.display := 'block';
for f:=0 to WebBrowser1.OleObject.Document.forms.Length-1 do
begin
form:=WebBrowser1.OleObject.Document.forms.Item(f).elements;
for i:=0 to form.Length-1 do
if (form.item(i).type='submit') then
begin
form.item(i).click;
end;
end;
WebBrowser1.Navigate('http://web.iqsms.ru/contacts/');
while WebBrowser1.ReadyState<>4 do
Application.ProcessMessages;
Doc := WebBrowser1.Document as IHTMLDocument2; // получили hmtl код страницы
r := TRegExpr.Create;
s:=Doc.body.innerHTML;
r.InputString :=s; // во входяшую строку положили весь html код
memo3.Text:=s;
try
r.Expression :='<A href="/deliveries/add-delivery/">(.*?)</A>';
if r.Exec(s) then
begin
Groupbox8.Caption:='Отправить смс заказчику';
end
else ShowMessage('Авторизация не прошла');
finally
r.Free;
end;
end;
Суть кода: должна произойти авторизация на сайте
http://web.iqsms.ru/login/?next=/contacts/
Вот так вот происходит заполнение полей логина и пароля и нажимается кнопка "Войти":
Код:
procedure TForm2.Button11Click(Sender: TObject);
var
U,P : Variant;
form:olevariant;
f,i:Integer;
r: TRegExpr;
Doc : IHTMLDocument2;
s:string;
begin
WebBrowser1.Navigate('http://web.iqsms.ru/login/?next=/contacts/');
while WebBrowser1.ReadyState<>4 do
Application.ProcessMessages;
U:=webbrowser1.oleobject.document.getelementbyid('id_username');
U.value:=Edit3.Text;
P:=webbrowser1.oleobject.document.getelementbyid('id_password');
P.value:=Edit4.Text;
//U.style.display := 'block';
//P.style.display := 'block';
for f:=0 to WebBrowser1.OleObject.Document.forms.Length-1 do
begin
form:=WebBrowser1.OleObject.Document.forms.Item(f).elements;
for i:=0 to form.Length-1 do
if (form.item(i).type='submit') then
begin
form.item(i).click;
end;
end;
Но как только я пытаюсь проверить, зашли мы или нет, дописывая код:
Код:
WebBrowser1.Navigate('http://web.iqsms.ru/contacts/');
while WebBrowser1.ReadyState<>4 do
Application.ProcessMessages;
Doc := WebBrowser1.Document as IHTMLDocument2; // получили hmtl код страницы
r := TRegExpr.Create;
s:=Doc.body.innerHTML;
r.InputString :=s; // во входяшую строку положили весь html код
memo3.Text:=s;
try
r.Expression :='<A href="/deliveries/add-delivery/">(.*?)</A>';
if r.Exec(s) then
begin
Groupbox8.Caption:='Отправить смс заказчику';
end
else ShowMessage('Авторизация не прошла');
finally
r.Free;
end;
end;
То вылазит ошибка:
и подсвечивается строка:
Как я только не пробовал проверять, вошли мы или нет, получаю такую ошибку.
Помогите, пожалуйста.