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

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 2
Всего онлайн: 2
Зарегистрировано юзеров: 7024
Комментариев на сайте: 656
Новый юзер: Alvinbag



Последние комментарии
c
Paulineodods прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Всем добрый день Заказывала вот такую модель смартфона на сайте https://sale-aliexpress.ru . Продавец проявил инициативу и сам отправил с помощью DHL потом еще у DHL какой то сбой прошел . так продавец еще интересовался отписывался получила я или нет. В придачу положил рыбку для наушников (чтобы провода не запутывались))) и стилус. Короче мне повезло с продавцом и покупкой. Очень [url=https://sale-aliexpress.ru] рекомендую данный сайт .
YuristFom прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[b]ЮристЪ онлайн.[/b] Наша юридическая компания [b]"ЮристЪ"[/b] профессионально занимается разрешением всех юридических вопросов на протяжении многих лет. Отличное знание российского законодательства и широкая юридическая практика позволяют нашим юристам и адвокатам добиться положительного разрешения дела даже в самых сложных случаях. Наш сайт: http://jurs.info/g/ Юридическая консультация 24 на 7 ежедневно. Телефон указан на сайте. [url=jurs.info/g]Получить юридическую консультацию прямо сейчас![/url]

Урок 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
Не получается . Вторая кнопка Вообще не работает