Wpisanie wartości w pole typu input pod TWebBrowser

0

Witam,
Piszę program, który jest nakładką na rejestrację na stronie GG. Problem polega na tym, że nie mogę wpisać wartości do pola input na stronie. Testowałem kilka rozwiązań znalezionych w internecie i niestety żadne z nich nie działa na tej stronie. Aktualnie mam taki kod:

procedure TForm1.Button1Click(Sender: TObject);
var
  col: IHTMLElementCollection;
  el: IHTMLInputElement;
begin
  col := (WebBrowser1.Document as IHTMLDocument3).getElementsByName('first_step[channel]');
  if col.length <> 0 then
  begin
    el := col.item(0, 0) as IHTMLInputElement;
    el.value := 'mytext';
  end;
end;

first_step[channel] jest nazwą pola input służącego do wpisywania loginu
Po kliknięciu przycisku nic się nie zmienia. Więc pytanie brzmi: Jak wpisać coś do tego pola?

2

Przecież tak napisałeś powinno działać pod warunkiem że w danym dokumencie istnieje Input z atrybutem name="first_step[channel]". Podkreślam danym dokumencie to nie znaczy na stronie, bo jeżeli strona zawiera ramki (iframe, frame) to każda ramka jest osobnym dokumentem.

0

Problem rozwiązany. Kod:

procedure TForm1.Button1Click(Sender: TObject);
begin
  web.OleObject.Document.frames.item(0).Document.GetElementByID('first_step_channel').setAttribute('value', 'test');
  web.OleObject.Document.frames.item(0).Document.GetElementByID('first_step_password').setAttribute('value', 'test1');
  web.OleObject.Document.frames.item(0).Document.GetElementByID('first_step_tos').setAttribute('checked', 'true');
  web.OleObject.Document.frames.item(0).Document.GetElementByID('first_step_save').click();
end;

Podziękowania dla użytkownika @kAzek za naprowadzenie mnie na rozwiązanie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1