Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > WebBrowser заполнение полей


Автор: ConstantinXXX 12.4.2008, 00:54
как в WebBrowser заполнить определенные поля? И отправить Enter? 
( Например login и password для того что б автоматически заходить в чат или форум. Если пароль типа - urehuteriutoieurhotwiehrituh что б его не вводить в ручную а программно. Или в поиск www.rambler.ru вписать определенный запрос и нажать enter)

Автор: December 12.4.2008, 14:15
В DRKB!

Автор: D1s0rd3r 22.4.2008, 08:25
Код

// Изменение
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
  var
    i, j: Integer;
    FormItem: Variant;
  begin
    Result := False;
    //Формы нет
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
    begin
      Exit;
    end;
    //Форм в документе
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
    begin
      FormItem := WebBrowser.OleObject.Document.forms.Item(I);
      for j := 0 to FormItem.Length - 1 do
      begin
        try
          //если найденно изменить.
        if FormItem.Item(j).Name = FieldName then
          begin
            FormItem.Item(j).Value := Value;
            Result := True;
          end;
        except
          Exit;
        end;
      end;
    end;
  end;

//Узнаем значение
function EntForm(WebBrowser: TWebBrowser; FieldName: string): String;
  var
    i, j: Integer;
    FormItem: Variant;
  begin
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
    begin
      Exit;
    end;
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
    begin
      FormItem := WebBrowser.OleObject.Document.forms.Item(I);
      for j := 0 to FormItem.Length - 1 do
      begin
        try
        if FormItem.Item(j).Name = FieldName  then
        begin
            FormItem.Item(j).Click;
            Result := FormItem.Item(j).Value;
           end;
        except
          Exit;
        end;
      end;
    end;
  end;

//Нажатие
function loxForm(WebBrowser: TWebBrowser; FieldName: string): Boolean;
  var
    i, j: Integer;
    FormItem: Variant;
  begin
    Result := FALSE;
    //Нет формы в документе
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
    begin
      ShowMessage('Нет формы...');
      Exit;
    end;
    //Найдена форма в документе
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
    begin
      FormItem := WebBrowser.OleObject.Document.forms.Item(I);
      for j := 0 to FormItem.Length - 1 do
      begin
        try
          //when the fieldname is found, try to fill out
        if FormItem.Item(j).Name = FieldName then
          begin
            FormItem.Item(j).Click;
            Result := True;
           end;
        except
          Exit;
        end;
      end;
    end;
  end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate('www.xxx.ru');
Caption := Webbrowser1.OleObject.Document.Title;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)