Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?
Поиск
L


Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 4
Всего онлайн: 4
Зарегистрировано юзеров: 5679
Комментариев на сайте: 619
Новый юзер: iwfrcc



Последние комментарии
c
baxodir прокомментировал "Урок 23 - Функции для работы с мышью":
Но Это мало можно ещё больше
pronin106 прокомментировал "Урок 27 - Создаем игру Ping-pong - часть(2/3)":
Все получилось! Спасибо за урок. У кого не получилось читайте внимательнее! Не делайте тупо копипаст



Мы в соцсетях
c
Delphi
Урок 36 - Взаимодействие с веб страницей

   В этом уроке мы попробуем авторизоваться на сайте yandex.ru.

   Мы программно отыщем поля для ввода логина и пароля и нажмем на кнопку входа. Нам понадобится компонент WedBrouser1 и 2 кнопки, кидаем все это на форму.

   На первой кнопке сделаем загрузку сайта:

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('www.yandex.ru'); //Открываем яндекс
end;
   Наша программа будет сканировать страницу на наличие полей и когда имя поля совпадет с искомым она подставит в него текст. Откроем исходный код страницы, и что мы видим, кашу, из всей этой каши нас интересует всего 3 строчки:

Поле для логина:
<input class="b-form-input__input" name="login" id="id001" value="" tabindex="3" /> Поле для пароля:
<input class="b-form-input__input" name="passwd" value="" id="id002" tabindex="4" type="password"/> Кнопка "Войти":
<input type="submit" hidefocus="true" tabindex="6" class="b-form-button__input" value="Войти">
   Теперь мы знаем имена полей и кнопки, а значит сможем их найти, создаем обработчик события OnClikc Button2 и заполним его вот таким кодом:
procedure TForm1.Button2Click(Sender: TObject);
var
  i:integer;
  s: String;
  html_tag: Variant;
begin
  html_tag:= WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i:=0 to (html_tag.Length-1) do
  begin
    if html_tag.item(i).name = 'login' then  //ищем элемент с именем "login" 
      html_tag.item(i).value:= 'thedelphi';  //и присваиваем ему значение
	  
    if html_tag.item(i).name = 'passwd' then  //ищем элемент с именем "passwd" 
      html_tag.item(i).value:= 'delphi';  //и присваиваем ему значение
	  
    if html_tag.item(i).value = 'Войти' then //ищем элемент со значением "Войти"
      html_tag.item(i).click;  // и нажимаем на него
  end;
end;
   Можно проверить, сначала загрузим страницу, нажав на первую кнопку, а потом на вторую, тем самым поля должны заполнится.

Страница


   Но как видно ничего не произошло, такое случилось из-за той кучи кода, страничка оказалась слишком сложной, но слава богу есть альтернатива по проще: https://mail.yandex.ru/, имена элементов совпадают, так что менять ничего не нужно, кроме самого адреса. Пробуем снова:

Страница




Страница


   И вуаля, все получилось!!!

   Таким способом можно например проверять новости еще что-нибудь. Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 10 Мая 2013
Просмотров:

Урок 35 - Создаем Веб браузер Урок 37 - Запись рабочего стола

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): nurbeksoft [Новичок] Дата: 2013-05-14




аватар Добавила: shukrona.normatova [Новичок] Дата: 2016-08-06
Не получается . Вторая кнопка Вообще не работает