![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Доступ к полям страницы TWebBrowser с фреймами [D5, D6, D7, Win95/98, WinXP]
WebSQLNeeder © (2005-10-31 13:46:00)Есть страница с фреймами и нужно програмно кликнуть на кнопку или заполнить поле. делаю вот так, но выдает ошибку
WebBrowser1.OleObject.document.frames['input'].document.forms[0].message.value:='HellO';
Ошибка звучит так: Method 'frames' not supported by automation object
VENOM (2005-11-04 02:48:00) [1]WebSQLNeeder, ты вообще смотрел МСДН ?!
Я - смотрел, и вот до чего я дошел (коряво - но коротко и работает):
procedure TMainForm.FillForms(login, pass: string);
var
Document: VARIANT;
m: Integer;
ovElements: OleVariant;
i: Integer;
name_frame: OleVariant;
begin
Document := WB.Document;
if Document.frames.Length = 0 then exit;
name_frame := 'main';
Document := Document.frames.Item(name_frame).document;
name_frame := 'display';
Document := Document.frames.Item(name_frame).document;
// count forms on document and iterate through its forms
for m := 0 to Document.forms.Length - 1 do
begin
ovElements := Document.forms.Item(m).elements;
// iterate through elements
for i := 0 to ovElements.Length - 1 do
begin
// when input fieldname is found, try to fill out
try
if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and
(CompareText(ovElements.item(i).type, 'text') = 0) and
(CompareText(ovElements.item(i).name, 'username') = 0)then
begin
ovElements.item(i).Value := login;
end;
if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and
(CompareText(ovElements.item(i).type, 'password') = 0) and
(CompareText(ovElements.item(i).name, 'autentication') = 0) then
begin
ovElements.item(i).Value := pass;
end;
{if (CompareText(ovElements.item(i).tagName, 'input') = 0) and
(CompareText(ovElements.item(i).type, 'image') = 0) and
(CompareText(ovElements.item(i).src, 'files/entra.gif') = 0) then
begin
ovElements.item(i).Click;
end; }
except
end;
end;
end;
end;
Если у тебя по жизни есть мозги, то слушай кровосток и г. москвы... и больше кури... больше кури... больше кури... больше кури... больше кури...
Всем мира (-:
WebSQLNeeder (2005-11-02 10:47:00) [2]Кстати про тег <a
Как занести в Мемо все теги, которые присутствуют на этой странице, я пробую так но выдает ошибку Method 'value' not supported by automation object
procedure TForm1.Button3Click(Sender: TObject);
var anch:OleVariant;
i:integer;
begin
anch:=WebBrowser1.OleObject.document.frames.item(5).document.all.tags('a');
for i:=3 to anch.length-1 do
begin
memo1.Lines.Add(anch.item(i).value);
end;
WebSQLNeeder (2005-11-02 09:50:00) [3]Спасибо, сейчас протестирую.
По поводу ошибки - так это ошибка Delphi, а не ИЕ.
Кстати, какая версия Делфи у тебя?
SergP (2005-11-02 04:45:00) [4]Странно... Вроде бы правильно.... Например я у себя нашел нечто типа клика по ссылке в фрейме:
WebBrowser1.OleObject.document.frames.item(0).document.all.tags('a').item(1).click;
Все работает. Такой ошибки как у тебя, что frames не поддерживается, не выдает...
Может эксплорер у тебя старый?
Или WIN95, где эксплорер не поддерживал фреймов?
SergP. (2005-11-01 17:50:00) [5]Сталкивался. Знаю как... Но не помню... Если вспомню, то напишу...
WebSQLNeeder (2005-11-01 15:27:00) [6]Что, никто не сталкивался с проблемой??